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:
~/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.