Author Topic: [fixed] r4337: Rejoin: Linux-64 client segfault on rejoin  (Read 522 times)

tomreyn

  • Local Moderator
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
Tonight, Atze, Filux and I were testing the rejoin feature. We played an entire game without using the feature, and won against 3 CPUs. Then (I hosting on atibox) asked Atze and Filux to quit and reconnect. They did, and at the same time. Filux said he got a timeout, however the game announced he had rejoined. Atze got back in, too, taking the slot of a CPU which had already been dead (all units and structures removed). He told me on in-game chat that he had a black screen (apparently the chat was not), so I unpaused the game (it did not unpause automatically). The game continued, and Atze could see the game, but a second or two later the game paused itself again. I unpaused again, and it paused itself again.

Atze then ran into a segfault:

Code: [Select]
~/Programme/Spiele/repos/megaglest> gdb -q -n -ex "bt" -batch mk/linux/megaglest core
[some stuff removed here by tomreyn]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `mk/linux/megaglest --ini-path=mk/linux/ --data-path=mk/linux/'.
Program terminated with signal 6, Aborted.
#0  0x00007ff66f8bdd25 in raise () from /lib64/libc.so.6
#0  0x00007ff66f8bdd25 in raise () from /lib64/libc.so.6
#1  0x00007ff66f8bf1a8 in abort () from /lib64/libc.so.6
#2  0x00007ff66f8b6c22 in __assert_fail_base () from /lib64/libc.so.6
#3  0x00007ff66f8b6cd2 in __assert_fail () from /lib64/libc.so.6
#4  0x0000000000820abe in Glest::Game::NetworkManager::getServerInterface (this=<optimized out>, throwErrorOnNull=<optimized out>) at /home/aufgehts/Programme/Spiele/repos/megaglest/source/glest_game/network/network_manager.cpp:111
#5  0x00000000005ba7fe in Glest::Game::Game::setPaused (this=0x227d04e0, value=false, forceAllowPauseStateChange=true, clearCaches=false, joinNetworkGame=false) at /home/aufgehts/Programme/Spiele/repos/megaglest/source/glest_game/game/game.cpp:5661
#6  0x0000000000596e27 in Glest::Game::Commander::giveNetworkCommand (this=this@entry=0x227d1928, networkCommand=0x1e7f3e10) at /home/aufgehts/Programme/Spiele/repos/megaglest/source/glest_game/game/commander.cpp:889
#7  0x000000000059973b in Glest::Game::Commander::updateNetwork (this=0x227d1928, game=<optimized out>) at /home/aufgehts/Programme/Spiele/repos/megaglest/source/glest_game/game/commander.cpp:642
#8  0x00000000005c9013 in Glest::Game::Game::update (this=0x227d04e0) at /home/aufgehts/Programme/Spiele/repos/megaglest/source/glest_game/game/game.cpp:2180
#9  0x00000000006ab221 in Glest::Game::Program::loopWorker (this=0x2d9ee00) at /home/aufgehts/Programme/Spiele/repos/megaglest/source/glest_game/main/program.cpp:458
#10 0x0000000000699590 in Glest::Game::glestMain (argc=argc@entry=3, argv=argv@entry=0x7fffd9aab608) at /home/aufgehts/Programme/Spiele/repos/megaglest/source/glest_game/main/main.cpp:5110
#11 0x000000000069d689 in Glest::Game::glestMainSEHWrapper (argc=3, argv=0x7fffd9aab608) at /home/aufgehts/Programme/Spiele/repos/megaglest/source/glest_game/main/main.cpp:5355
#12 0x00007ff66f8aa455 in __libc_start_main () from /lib64/libc.so.6
#13 0x0000000000510309 in _start () at ../sysdeps/x86_64/elf/start.S:113

I assume this can be hard to reproduce, so I hope the stack trace is useful.
atibox: Ryzen 1800X (8 cores @3.6GHz), 32 GB RAM, MSI Radeon RX 580 Gaming X 8G, PCI subsystem ID [1462:3417], (Radeon RX 580 chipset, POLARIS10) @3440x1440; latest stable Ubuntu release, (open source) radeon (amdgpu) / mesa video driver
atibox (old): Core2Quad Q9400 (4 cores @2.66GHz), 8 GB RAM, XFX HD-467X-DDF2, PCI subsystem ID [1682:2931], (Radeon HD 4670, RV730 XT) @1680x1050; latest stable Ubuntu release, (open source) radeon / mesa video driver
notebook: HP envy13d020ng
internet access: VDSL2+

· · · How YOU can contribute to MG · Latest development snapshot · How to build yourself · Megapack techtree · Currently hosted MG games · · ·

softcoder

  • MegaGlest Team
  • Battle Machine
  • ********
  • Posts: 2,239
    • View Profile
Re: r4337: Rejoin: Linux-64 client segfault on rejoin
« Reply #1 on: 30 May 2013, 06:28:28 »
The segfault should be fixed in svn rev#: 4338

tomreyn

  • Local Moderator
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
Re: r4337: Rejoin: Linux-64 client segfault on rejoin
« Reply #2 on: 30 May 2013, 21:05:22 »
Thanks. Since I assume this will be difficult to reproduce, I'll just tag this [fixed] and keep and reopen should it occur again.

The pausing behavior will need further testing and deserves a separate bug report (which I would then file) if this can be reproduced.
atibox: Ryzen 1800X (8 cores @3.6GHz), 32 GB RAM, MSI Radeon RX 580 Gaming X 8G, PCI subsystem ID [1462:3417], (Radeon RX 580 chipset, POLARIS10) @3440x1440; latest stable Ubuntu release, (open source) radeon (amdgpu) / mesa video driver
atibox (old): Core2Quad Q9400 (4 cores @2.66GHz), 8 GB RAM, XFX HD-467X-DDF2, PCI subsystem ID [1682:2931], (Radeon HD 4670, RV730 XT) @1680x1050; latest stable Ubuntu release, (open source) radeon / mesa video driver
notebook: HP envy13d020ng
internet access: VDSL2+

· · · How YOU can contribute to MG · Latest development snapshot · How to build yourself · Megapack techtree · Currently hosted MG games · · ·

 

anything