Page 1 of 1

rev744 issue

Posted: Tue Nov 04, 2014 12:16 pm
by Blackstorm
Hello,

I posted that on the IRC but i think no one check it or see it because i didn't have any return... so i reporting it here.

Since the rev744 (svn 746), when i want to chunk in the Cragwind Ridge zone, my server crash each time.

i have completely recompiled the binary with the official sources, deleted all the svn repo and redownloaded it, install the official DB (i just reimported the characters infos) and nothing change...

If someone have a Worldserver on a linux server can you confirm that please ? actually the server break without sigfault or error messages...

Re: rev744 issue

Posted: Tue Nov 04, 2014 12:52 pm
by John Adams
I found an issue in Linux (only) with the logger Lokked uses to report more than a 100% spawn total for placements (linux doesn't like single % signs in a string). Not sure if this is your issue, but how I discovered the problem was to run the vgemu-world in debug. Do so like this:

Code: Select all

gdb vgemu-world
When the sigfault happens, type:

Code: Select all

bt
and hit enter, then copy/paste that whole stack here to we can see exactly what breaks.

Re: rev744 issue

Posted: Tue Nov 04, 2014 1:10 pm
by Blackstorm
Hum... first time i am using gdb...

i need to start the server before, running the gdb command ? or gdb vgemu-world should run the worldserver process ?

otherwise actually, if the server already run and i use the gdb command, the bt return say : "No stack" after the crash.

Re: rev744 issue

Posted: Tue Nov 04, 2014 1:13 pm
by John Adams
Yes, sorry. Thought you were a Linux debugger Yes, you have to "run" after gdb vgemu-world (just the 'r' key).

If you have "no stack", then there is nothing I can do to help. Ensure your code is not modified from Public SVN, and that the data you use is vgo_world.sql. If there are still crashes, then do an OS update (aptitude update / safe-upgrade) maybe. I cannot think of anything else.

Re: rev744 issue

Posted: Tue Nov 04, 2014 2:22 pm
by Blackstorm

Code: Select all

22:20:56.615 D Command  Player 'Blackstorm Shogun' used command '.rift' (1)
22:20:56.615 D Command  Player 'Blackstorm' .rift to chunk 'Cragwind Ridge' (58)
[New Thread 0x7fffd7fff700 (LWP 9415)]
[New Thread 0x7fffd77fe700 (LWP 9416)]
[New Thread 0x7fffd6ffd700 (LWP 9417)]
[New Thread 0x7fffd67fc700 (LWP 9418)]
[New Thread 0x7fffd5ffb700 (LWP 9419)]
22:20:56.620 D Chunk    Starting chunk 'Cragwind Ridge' (58)

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffee7fc700 (LWP 9381)]
0x00007ffff64d1e70 in vfprintf () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0  0x00007ffff64d1e70 in vfprintf () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff64fc209 in vsnprintf () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007ffff64da5d2 in snprintf () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x0000000000452fbe in LogWrite(LogType, LogCategory, int, char const*, char const*, unsigned int, char const*, ...) ()
#4  0x00000000004d5ba5 in MasterSpawnList::InitChunkNPCs(unsigned int, NpcList&) () at MasterSpawnList.cpp:146
#5  0x00000000004d5ea1 in MasterSpawnList::InitAllChunkEntities(unsigned int, NpcList&, PPOList&, _3dsList&, MoverList&) ()
    at MasterSpawnList.cpp:223
#6  0x000000000047179e in ChunkServer::LoadChunkSpawns() () at ChunkServer.cpp:1202
#7  0x000000000047278a in ChunkServer::Start() () at ChunkServer.cpp:289
#8  0x00000000004863db in Net::SendClientChunkInfo(std::shared_ptr<Client>&, int, int) () at Net.cpp:553
#9  0x00000000004b32de in CommandProcess::CommandRift(std::shared_ptr<Client>&, Separator*, unsigned char, bool) () at Commands.cpp:404
#10 0x00000000004b83b5 in CommandProcess::Process(std::shared_ptr<Client>&, Separator*, unsigned char, bool) () at Commands.cpp:207
#11 0x0000000000470a80 in ChunkServer::HandleChatSay(std::shared_ptr<Client>&, PacketStruct*) () at ChunkServer.cpp:905
#12 0x0000000000478088 in ChunkServer::ProcessPackets() () at ChunkServer.cpp:334
#13 0x0000000000478c79 in ChunkPacketThread(void*) () at ChunkServer.cpp:128
#14 0x000000000045dd03 in ThreadRun(void*) ()
#15 0x00007ffff767f0a4 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#16 0x00007ffff656fc2d in clone () from /lib/x86_64-linux-gnu/libc.so.6
this work better, when i have the good command :p

Re: rev744 issue

Posted: Tue Nov 04, 2014 4:25 pm
by Lokked
As John mentioned, try removing the % sign that I've put into the Log* statement in InitChunkNPCs of MasterSpawnList class and let me know if that works.

How does one include a % in a string that's gcc friendly??

Re: rev744 issue

Posted: Tue Nov 04, 2014 4:26 pm
by John Adams

Code: Select all

100%%
My committed fix was removing % and replacing with the word "percent". It's just a logger.

Re: rev744 issue

Posted: Tue Nov 04, 2014 5:00 pm
by Blackstorm
yop ^^

Thanks guys ^^ like you said, the only "%" is the cause ^^ if you delete it, it's working fine and if you protect it "%%" it's also works ^^