OpenParsec / openparsec

GNU General Public License v2.0
52 stars 8 forks source link

Client/Server ASSERT issues #10

Open uberlinuxguy opened 11 years ago

uberlinuxguy commented 11 years ago

The client and server have plenty of ASSERT traps to stop the game and tell you when something that shouldn't occur occurred. Please place any assert messages into this ticket and describe what you did or had happened immediately before the crash If an ASSERT for your issue is already listed please post a me too. If your situation occurred differently please describe it.

uberlinuxguy commented 11 years ago

Dumping previous ticket contents here...

Changed 2 months ago by crazy-spence

Server: Assertion failed: e_simplayerinfo.cpp, line 239 Situation: Slime and uber were killing eachother in reply to: ↑ 1 ; follow-up: ↓ 10 Changed 2 months ago by crazy-spence

Replying to crazy-spence: Server: Assertion failed: e_simplayerinfo.cpp, line 239

Situation: Slime and uber were killing eachother ASSERT( m_pShip != NULL) was the line Most likely someone joined too fast while dieing follow-up: ↓ 7 Changed 2 months ago by crazy-spence

Server: Assertion failed: net_stream.cpp, line 408

Happened when joining multiple bots follow-up: ↓ 5 Changed 2 months ago by crazy-spence

Assertion failed: net_pckt_gmsv.cpp, line 192 Joining 13th bot to game test server in reply to: ↑ 4 Changed 2 months ago by crazy-spence

Replying to crazy-spence: Assertion failed: net_pckt_gmsv.cpp, line 192

Joining 13th bot to game test server Packet size issue, continued troubleshooting in server 6 player limit ticket Changed 2 months ago by abortretryfail

Client: Assertion failed: con_kmap.cpp, line 508 Type /listgamefunckeys at the console. in reply to: ↑ 3 ; follow-up: ↓ 11 Changed 8 weeks ago by crazy-spence

Replying to crazy-spence: Server: Assertion failed: net_stream.cpp, line 408

Happened when joining multiple bots Odd duck here, the code below it will just ignore these, only seems to happen very rarely when joining multiple clients. May just remove the ASSERT Changed 7 weeks ago by crazy-spence

Assertion failed: g_player.cpp, line 478 Killed by mines Changed 7 weeks ago by abortretryfail

Assertion failed: m_main.cpp, line 573 Aborted Pressed 'esc' to exit the menu. I can't reproduce this though so... dunno. r142 on Linux 32bit in reply to: ↑ 2 Changed 6 weeks ago by crazy-spence

Replying to crazy-spence: Replying to crazy-spence: Server: Assertion failed: e_simplayerinfo.cpp, line 239

Situation: Slime and uber were killing eachother

ASSERT( m_pShip != NULL) was the line

Most likely someone joined too fast while dieing I had switched these with the line below it which was an Unjoined check, the player was already unjoined in this case so I corrected the fault with if unjoined return Solved. in reply to: ↑ 7 Changed 6 weeks ago by crazy-spence

Replying to crazy-spence: Replying to crazy-spence: Server: Assertion failed: net_stream.cpp, line 408

Happened when joining multiple bots

Odd duck here, the code below it will just ignore these, only seems to happen very rarely when joining multiple clients. May just remove the ASSERT Removed ASSERT, server seems to handle correctly and doesn't fault on bursts of connections any longer Solved.

uberlinuxguy commented 11 years ago

New server assert logged while in combat with bot, one on one.

e_world.cpp:1129: void E_World::CalcLightningAnimation(lightning_pcluster_s*): Assertion `( ( (shippo)->ObjectType & 0x00000f00 ) == 0x00000000 )' failed.

CrazySpence commented 11 years ago

yea i believe that happens when someone firing lightning dies

CrazySpence commented 11 years ago

This might be fixed now, I was able to recreate the problem which was caused when a lightning player is firing when they die, it actually cause a secondary issue as well where i had invisible lightning cannons forever, when the round ended or if i were to leave the server would assert as you showed.

I added several ensure_inactive functions to the particle weapons these functions make sure the firing flag is off when the player is killed on all the particle weapons and in lightnings case it deletes the attached particles.

I was unable to recreate the problem after adding this and I committed the changes

uberlinuxguy commented 11 years ago

parsec_server: ../libparsec/include/net_defs.h:945: dword CreateGlobalObjId(dword, dword): Assertion `( ( dwOwner >= 0 ) && ( dwOwner < 16 ) ) || ( dwOwner == 128 )' failed.

Not sure what caused it, but noticed it this morning.

uberlinuxguy commented 11 years ago

GDB Backtrace and new assert in the server

unjoined client 2

jboty was shot down by jbotx's laser

::parsec_server: ../../../../src/parsec_server/g_main_sv.cpp:490: void G_Main::RecordDeath(int, int): Assertion `( nClientID >= 0 ) && ( nClientID < TheServer->GetMaxNumClients() )' failed.

Program received signal SIGABRT, Aborted. 0xb7fff402 in kernel_vsyscall () (gdb) bt 0 0xb7fff402 in __kernel_vsyscall () 1 0x49604e30 in raise () from /lib/libc.so.6 2 0x49606741 in abort () from /lib/libc.so.6 3 0x495fe2ab in assert_fail () from /lib/libc.so.6 4 0x08072066 in G_Main::RecordDeath (this=0x80fd3a0, nClientID=65535, nClientID_Killer=1) at ../../../../src/parsec_server/g_main_sv.cpp:490 5 0x0807ecbf in G_CollDet::_CollisionResponse_LaserShip (this=0x80fd460, curlaser=0x8147a80) at ../../../../src/parsec_server/e_colldet_sv.cpp:682 6 0x0807ef00 in G_CollDet::_CheckShipLaserCollision (this=0x80fd460) at ../../../../src/parsec_server/e_colldet_sv.cpp:459 7 0x0807f415 in G_CollDet::OBJ_CheckCollisions (this=0x80fd460) at ../../../../src/parsec_server/e_colldet_sv.cpp:1234 8 0x080830d8 in E_Simulator::DoSim (this=0x80fd6d8, CurSimRefFrame=22380440) at ../../../../src/parsec_server/e_simulator.cpp:829 9 0x0809180b in E_GameServer::_MaintainSimulation (this=0x80e32c0) at ../../../../src/parsec_server/e_gameserver.cpp:496 10 0x08091870 in E_GameServer::ServerFrame (this=0x80e32c0) at ../../../../src/parsec_server/e_gameserver.cpp:680 11 0x08091900 in E_GameServer::MainLoop (this=0x80e32c0) at ../../../../src/parsec_server/e_gameserver.cpp:727 12 0x08080dd4 in main (argc=1, argv=0xbfffedc4) at ../../../../src/parsec_server/sv_main.cpp:84