Jammy, Virgo and I (all players from Europe) were playing a game on summoner, the thai headless server. We were playing on the modified Conflict map for 6 players (still sized 64x64). Two of use were playing Romans, Virgo was playing Persian, the opponents were 2 CPUs (I forgot at which difficulty). This error occurred exactly when we started our first common counter attack. We were just about to cross the river.
My client ran into a connection timeout, which resulted in a human friendly error message discplaying on my clients' screen. I assume it was the same for Jammy and Virgo.
This server has 836 MB RAM available for MG (1 GB total). It's a KVM instance running Ubuntu 12.04 with its dedicated 3.2.0 kernel on two (virtual) CPU cores.
It should be noted that this server operates under severe restrictions regarding international traffic (traffic shaping/limiting is applied on its upstream router). This may be what triggered the error, it may also be that it caused the connectivity to fail temporarily (I am now running a traffic analysis tool and it shows no indication of ICMP ping packet loss nor unstable latencies on the route to play.mg (jitter is 0.9 ms, average latency is 218.3 ms). Still, I would expect the server process not to segfault as a result.
Terminal output:
In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 4934] Error detected: signal 11:
Error saved to logfile [/home/megaglest/.megaglest/error.log]
[2012-12-08 23:49:02] *ERROR* In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 390] [In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 4934] Error detected: signal 11:
] gameInitialized = 1, program = 0x27c6df0
[2012-12-08 23:49:03] *ERROR* In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 409] [In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 4934] Error detected: signal 11:
Stack Trace:
./megaglest:Glest::Game::ExceptionHandler::handleRuntimeError(char const*, bool)address [0x771217] line: 0
./megaglest:Glest::Game::handleSIGSEGV(int)address [0x743aff] line: 4939
/lib/x86_64-linux-gnu/libc.so.6:()address [0x7f91524854a0] line: 0
./megaglest:Glest::Game::ServerInterface::update()address [0x91659b] line: 1381
./megaglest:Glest::Game::Program::loopWorker()address [0x77674a] line: 449
./megaglest:Glest::Game::glestMain(int, char**)address [0x768ff6] line: 4793
./megaglest:Glest::Game::glestMainWrapper(int, char**)address [0x76c703] line: 4973
/lib/x86_64-linux-gnu/libc.so.6:__libc_start_main()address [0x7f915247076d] line: 0
./megaglest() [0x5db3e9]address [0x5db3e9]
]
Message:
In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 4934] Error detected: signal 11:
Stack Trace:
./megaglest:Glest::Game::ExceptionHandler::handleRuntimeError(char const*, bool)address [0x771217] line: 0
./megaglest:Glest::Game::handleSIGSEGV(int)address [0x743aff] line: 4939
/lib/x86_64-linux-gnu/libc.so.6:()address [0x7f91524854a0] line: 0
./megaglest:Glest::Game::ServerInterface::update()address [0x91659b] line: 1381
./megaglest:Glest::Game::Program::loopWorker()address [0x77674a] line: 449
./megaglest:Glest::Game::glestMain(int, char**)address [0x768ff6] line: 4793
./megaglest:Glest::Game::glestMainWrapper(int, char**)address [0x76c703] line: 4973
/lib/x86_64-linux-gnu/libc.so.6:__libc_start_main()address [0x7f915247076d] line: 0
./megaglest() [0x5db3e9]address [0x5db3e9]
Aborted (core dumped)
I'm not sure why it would print two stack traces there (is this something which could/should be improved upon, too)?
error.log:
[2012-12-08 23:49:03] Runtime Error information:
======================================================
In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 4934] Error detected: signal 11:
Stack Trace:
./megaglest:Glest::Game::ExceptionHandler::handleRuntimeError(char const*, bool)address [0x771217] line: 0
./megaglest:Glest::Game::handleSIGSEGV(int)address [0x743aff] line: 4939
/lib/x86_64-linux-gnu/libc.so.6:()address [0x7f91524854a0] line: 0
./megaglest:Glest::Game::ServerInterface::update()address [0x91659b] line: 1381
./megaglest:Glest::Game::Program::loopWorker()address [0x77674a] line: 449
./megaglest:Glest::Game::glestMain(int, char**)address [0x768ff6] line: 4793
./megaglest:Glest::Game::glestMainWrapper(int, char**)address [0x76c703] line: 4973
/lib/x86_64-linux-gnu/libc.so.6:__libc_start_main()address [0x7f915247076d] line: 0
./megaglest() [0x5db3e9]address [0x5db3e9]
gdb backtrace:
$ gdb -q -n -ex bt -batch ./megaglest ./core
[New LWP 23775]
warning: Can't read pathname for load map: Input/output error.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `./megaglest --ini-path=./ --data-path=./ --headless-server-mode=exit'.
Program terminated with signal 6, Aborted.
#0 0x00007f9152485425 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#0 0x00007f9152485425 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007f9152488b8b in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2 0x00000000007713d7 in Glest::Game::ExceptionHandler::handleRuntimeError(char const*, bool) ()
#3 0x0000000000743aff in Glest::Game::handleSIGSEGV (sig=<optimized out>) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp:4938
#4 <signal handler called>
#5 0x000000000091659b in setMasterserver_admin (value=<optimized out>, this=<optimized out>) at /home/softcoder/Code/megaglest/trunk/source/glest_game/game/game_settings.h:453
#6 Glest::Game::ServerInterface::update (this=0x2862940) at /home/softcoder/Code/megaglest/trunk/source/glest_game/network/server_interface.cpp:1381
#7 0x000000000077674a in Glest::Game::Program::loopWorker (this=0x27c6df0) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/program.cpp:448
#8 0x0000000000768ff6 in Glest::Game::glestMain (argc=1, argv=0x0) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp:4793
#9 0x000000000076c703 in Glest::Game::glestMainWrapper (argc=4, argv=0x7fffaf574068) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp:4971
#10 0x00007f915247076d in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#11 0x00000000005db3e9 in _start ()
$
Thanks for investigating.