SphereCommunity
Crash on logoff - Printable Version

+- SphereCommunity (https://forum.spherecommunity.net)
+-- Forum: Sphere 0.56d (/Forum-Sphere-0-56d)
+--- Forum: General Help (/Forum-General-Help)
+--- Thread: Crash on logoff (/Thread-Crash-on-logoff)



Crash on logoff - Technoghost - 03-15-2019 08:58 AM

Hi everyone
I have a big problem in my shard and I need help
Eventually, when a player logout, your char crash

PHP Code:
DEBUGthread (9892)  |  # |  function  |  ticks passed from previous function start 
19:42:DEBUG:>>         9892     |  |                       CWorld::OnTick | +
19
:42:DEBUG:>>         9892     |  |                  CGObList::DeleteAll | +
19
:42:DEBUG:>>         9892     |  |            CGObList::RemoveAtSpecial | +
19
:42:DEBUG:>>         9892     |  |                 CGObList::OnRemoveOb | +
19
:42:CRITICAL:"Access Violation" (0x120a2f), in Sphere::Tick() #3 "world" 


After this, he can't login anymore, except if the sphere is reboot

If player try login after the crash, sphere show this error
PHP Code:
19:42:DEBUGthread (9892)  |  # | __ function __ |  ticks passed from previous function start 
19:42:DEBUG:>>         9892     |  |                 NetworkManager::tick | +
19
:42:DEBUG:>>         9892     |  |                  NetworkThread::tick | +
19
:42:DEBUG:>>         9892     |  |           NetworkInput::processInput | +
19
:42:DEBUG:>>         9892     |  |            NetworkInput::processData | +
19
:42:DEBUG:>>         9892     |  |            NetworkInput::processData | +
19
:42:DEBUG:>>         9892     |  |  NetworkInput::processGameClientData | +<-- exception catch point (below is guessed and could be incorrect!)
19:42:DEBUG:>>         9892     |  |            PacketCharPlay::onReceive | +
19
:42:DEBUG:>>         9892     |  |                  CClient::Setup_Play | +
19
:42:DEBUG:>>         9892     |  |                 CClient::Setup_Start | +
19
:42:DEBUG:>>         9892     |  |              CClient::addPlayerStart | +16 
19
:42:DEBUG:>>         9892     10 |              CClient::CharDisconnect | +
19
:42:DEBUG:>>         9892     11 |                    CClient::Announce | +
19
:42:DEBUG:>>         9892     12 |                    CGObList::GetHead | +
19
:42:CRITICAL:Assert pri=2:'purecall' file 'unknown'line 1in SUBNetworkInput::Message::ProcessMessage()
19:42:DEBUG:c8:Parsing Packet len=73 id=0x5d [2019/03/14 19:42:15]
        
0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
       
-- -- -- -- -- -- -- --  -- -- -- -- -- -- -- --
0000   5d ed ed ed ed 54 65 63  68 6e 6f 67 68 6f 73 74   ]....Technoghost
0010   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   
................
0020   00 00 00 00 00 00 00 00  1f 00 00 00 00 00 00 00   ................
0030   13 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
0040   00 00 00 00 00 c0 a8 00  06                        ......... 

What could be causing this?
I'm using Sphere 56d
The funny thing is that the player is still ingame, but is not online in the panel .admin

Thanks


RE: Crash on logoff - Coruja - 03-24-2019 05:29 PM

NetworkInput::Message::ProcessMessage() means that sphere found an error while parsing an message arguments, so try check if your sphere_msgs.scp is updated

also note that messages on sphere_msgs.scp must have exactly the same % args in the same order as the original file


RE: Crash on logoff - golfin - 03-25-2019 05:53 AM

(03-24-2019 05:29 PM)Coruja Wrote:  also note that messages on sphere_msgs.scp must have exactly the same % args in the same order as the original file

Coruja, does it mean that I cannot add or rename the sphere_msgs.scp with additional data?


RE: Crash on logoff - Coruja - 03-25-2019 07:16 AM

you can change the text, but it must keep the % args (in the same order)

so on an message like "You have %d stones in your %s" sphere will fill the 1st argument with a decimal value (%d) and 2nd with an string (%s). You can change the text but it must keep these same args on this same order, otherwise sphere will return error if it try to fill decimal args with string, or string args with decimal, or fill args on a message without args, etc


RE: Crash on logoff - golfin - 03-25-2019 04:09 PM

That's interesting, thank you for the explanation.