VGOEmulator.net

A Development Project for the Vanguard:Saga of Heroes MMO

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • Portal
  • Project Manager
  • Bug Tracker
  • Server List
  • Wiki
  • Donate
  • Login
  • Register
  • Board index Bugs Server Bugs Server Bugs (Closed)
  • Search

Packet Spam = World Crash now

Closed Server Bugs

Moderators: Community Managers, Developers

Locked
  • Print view
Advanced search
4 posts • Page 1 of 1
User avatar
John Adams
Retired
Posts: 4582
Joined: Wed Aug 28, 2013 9:40 am
Location: Phoenix, AZ.
Contact:
Contact John Adams
Website
Packet Spam = World Crash now
  • Quote

Post by John Adams » Tue Jan 13, 2015 4:53 pm

I know, didn't see that one coming. Never tore down the server before.

Code: Select all

>	WorldServer.exe!std::_Fetch_add_seq_cst_2(volatile unsigned short * _Tgt, unsigned short _Value) Line 1166	C++
 	WorldServer.exe!std::_Atomic_fetch_add_2(volatile unsigned short * _Tgt, unsigned short _Value, std::memory_order _Order) Line 1188	C++
 	WorldServer.exe!std::atomic_fetch_add_explicit(std::atomic_ushort * _Atom, unsigned short _Value, std::memory_order _Order) Line 1175	C++
 	WorldServer.exe!std::atomic_ushort::fetch_add(unsigned short _Value, std::memory_order _Order) Line 1394	C++
 	WorldServer.exe!Client::GetAndIncrementServerSequence() Line 230	C++
 	WorldServer.exe!Client::PushOutgoing(SOEProtocolData * data, bool dump_packet) Line 359	C++
 	WorldServer.exe!Client::QueuePacket(SOEProtocolData * data, bool dump_packet) Line 293	C++
 	WorldServer.exe!CommandProcess::CommandSummon(std::shared_ptr<Client> & client, Separator * sep, unsigned char command_index, bool world_client) Line 1283	C++
 	WorldServer.exe!CommandProcess::Process(std::shared_ptr<Client> & client, Separator * sep, unsigned char command_index, bool world_client) Line 224	C++
 	WorldServer.exe!Net::HandleWorldChatPacket(std::shared_ptr<Client> & client, PacketStruct * packet_struct) Line 605	C++
 	WorldServer.exe!Net::Process() Line 219	C++
 	WorldServer.exe!main(int argc, char * * argv) Line 197	C++
 	WorldServer.exe!__tmainCRTStartup() Line 241	C
 	WorldServer.exe!mainCRTStartup() Line 164	C
 	kernel32.dll!7689338a()	Unknown
 	[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]	
 	ntdll.dll!76f99f72()	Unknown
 	ntdll.dll!76f99f45()	Unknown
Nice and deep in a place we never had issues before, GetAndIncrementServerSequence -- server_sequence is unreadable.

Code: Select all

-		server_sequence	{...}	std::atomic<unsigned short>
-		std::atomic_ushort	{_My_val=??? }	std::atomic_ushort
		_My_val	<Unable to read memory>	
+		this	0x00000000 {outgoing={ size=??? } outgoing_noseq={ size=??? } sent_packets={ size=??? } ...}	Client *
Happened when Moldew tried .summon, while the other client was barfing.

Code: Select all

		// This is needed to send a message from the Chunk Server to a client other than the calling client.
==>		chunk->GetClient(pawn_casted->GetAccountID())->QueuePacket(out->Serialize());
		delete out;
Top

User avatar
Moldew
Content Designer
Content Designer
Posts: 670
Joined: Sat May 24, 2014 10:51 am
Location: Seattle, WA
Re: Packet Spam = World Crash now
  • Quote

Post by Moldew » Tue Jan 13, 2015 4:55 pm

I did it...
Haiku is easy -
But sometimes it makes no sense.
Refridgerator.
Top

Lokked
Principle Developer
Principle Developer
Posts: 600
Joined: Wed Aug 06, 2014 3:15 pm
Re: Packet Spam = World Crash now
  • Quote

Post by Lokked » Tue Jan 13, 2015 5:20 pm

Ok, so the other client was spewing unknown opcodes and Moldew used a command on it? We can add checks in those commands to prevent a crash. Specifically, the server crashed in that function because there was no Client object (it had somehow been removed).

I *think* (not at home) that chunk->GetClient returns a weak_ptr<>.lock(), meaning wherever we have a chunk->GetClient(), we need to:

Code: Select all

auto other_client = chunk->GetClient(...)
If (!other_client) {
    return;
}
// continue code using other_client
This was likely an oversight on my part and just never came up until now (if this indeed is a weak_ptr.lock() issue).
Meaning, this is a separate issue from the packet spam issue.
Top

User avatar
John Adams
Retired
Posts: 4582
Joined: Wed Aug 28, 2013 9:40 am
Location: Phoenix, AZ.
Contact:
Contact John Adams
Website
Re: Packet Spam = World Crash now
  • Quote

Post by John Adams » Tue Jan 13, 2015 6:11 pm

I'm not sure he used a .summon command ON the other player, but it's a good thing to check. Wait until you see SpammyConsole4.txt, coming soon.
Top


Locked
  • Print view

4 posts • Page 1 of 1

Return to “Server Bugs (Closed)”

Jump to
  • Information
  • ↳   Announcements
  • ↳   Dev Chats
  • ↳   Events
  • Community
  • ↳   General Discussions
  • ↳   VGO Team Help Requests
  • ↳   Introductions
  • ↳   Game Features
  • ↳   Wish List
  • ↳   Off-Topic
  • Support
  • ↳   How-To's
  • ↳   General Support
  • ↳   Windows
  • ↳   Linux
  • Bugs
  • ↳   Server Bugs
  • ↳   Server Bugs (Closed)
  • ↳   Content Bugs
  • ↳   Content Bugs (Closed)
  • ↳   Database Bugs
  • ↳   Tools Bugs
  • Board index
  • All times are UTC-07:00
  • Delete cookies
  • Contact us
Powered by phpBB® Forum Software © phpBB Limited
*Original Author: Brad Veryard
*Updated to 3.2 by MannixMD