Author Topic: [fixed] r4357: Host SegF when client disconnects during pause  (Read 556 times)

tomreyn

  • Local Moderator
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
When I was testing rejoining games with Atze (who was hosting) tonight on r4357, I joined his running game, remained connected for roughly a minute while we were chatting. I don't think I gave any orders at that time. Then I disconnected again. Doing so apparently triggered some bug on Atze's end, and he ran into a segmentation fault. Sadly all that's available is an error.log file, so I'm posting this in case it can be of use:

Code: [Select]
[2013-06-02 02:58:03] Runtime Error information:
======================================================
In [/home/atze/Programme/Spiele/repos/megaglest/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5270] Error detected: signal 11:

Stack Trace:
mk/linux/megaglest:Glest::Game::ExceptionHandler::handleRuntimeError(char const*, bool)address [0x68e3a9] line: 653
mk/linux/megaglest() [0x68e5d9]address [0x68e5d9]
/lib64/libpthread.so.0:()address [0x7fcb212c5140] line: 0
/usr/lib64/libstdc++.so.6:std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&)address [0x7fcb1e1e8dcb] line: 0
mk/linux/megaglest:Glest::Game::Game::ReplaceDisconnectedNetworkPlayersWithAI(bool, Glest::Game::NetworkRole)address [0x5c4179] line: 2967
mk/linux/megaglest:Glest::Game::Game::update()address [0x5c5942] line: 1913
mk/linux/megaglest:Glest::Game::Program::loopWorker()address [0x6ac5a1] line: 459
mk/linux/megaglest:Glest::Game::glestMain(int, char**)address [0x69b427] line: 5121
mk/linux/megaglest:Glest::Game::glestMainSEHWrapper(int, char**)address [0x69ebc9] line: 5368
/lib64/libc.so.6:__libc_start_main()address [0x7fcb1d897455] line: 0
mk/linux/megaglest() [0x50f6c9]address [0x50f6c9]
« Last Edit: 2 June 2013, 02:29:50 by tomreyn »
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 · · ·

tomreyn

  • Local Moderator
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
Re: r4357: Host SegF when client disconnects during pause
« Reply #1 on: 2 June 2013, 02:33:12 »
I forgot to provide some relevant information here, which also allows me to reproduce this issue. So here's an updated description of this bug:

When a server pauses the game, and a connected client quits during the pause, the server will run into a segmentation fault.

Logs:
Code: [Select]
megaglest v3.8-dev
Compiled using: GNUC: 40703 [64bit] on: Jun  2 2013 02:41:13 platform: Linux-X64 endianness: little
SVN: [Rev: 4357] - using STREFLOP [SSE] - [no-denormals]
radeon: Acquired access to Hyper-Z.
Trying to set map to [conflict]. Current map is [conflict]
Trying to set map to [conflict]. Current map is [conflict]
Trying to set map to [conflict]. Current map is [conflict]
In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5270] Error detected: signal 11:
Error saved to logfile [/home/tomreyn/.megaglest/error.log]
[2013-06-02 04:25:56] *ERROR* In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 643] [In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5270] Error detected: signal 11:
] gameInitialized = 1, program = 0x2d02560
[2013-06-02 04:25:57] *ERROR* In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 662] [In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5270] Error detected: signal 11:

Stack Trace:
./megaglest:Glest::Game::ExceptionHandler::handleRuntimeError(char const*, bool)address [0x683837] line: 653
./megaglest() [0x683aaf]address [0x683aaf]
/lib/x86_64-linux-gnu/libc.so.6:()address [0x7fa3387a40b0] line: 0
/usr/lib/x86_64-linux-gnu/libstdc++.so.6:std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&)address [0x7fa33910d58b] line: 0
./megaglest:Glest::Game::Game::ReplaceDisconnectedNetworkPlayersWithAI(bool, Glest::Game::NetworkRole)address [0x5b5297] line: 2967
./megaglest:Glest::Game::Game::update()address [0x5b6aec] line: 1913
./megaglest:Glest::Game::Program::loopWorker()address [0x6acd30] line: 459
./megaglest:Glest::Game::glestMain(int, char**)address [0x690b00] line: 5121
./megaglest:Glest::Game::glestMainSEHWrapper(int, char**)address [0x6945e6] line: 5368
./megaglest:Glest::Game::glestMainWrapper(int, char**)address [0x69477e] line: 5440
/lib/x86_64-linux-gnu/libc.so.6:__libc_start_main()address [0x7fa33878eea5] line: 0
./megaglest() [0x514bc9]address [0x514bc9]
]
Waiting for the following threads to exit [1]:
Thread index: 0 ptr [0x37287f0] isBaseThread: 1, Name: [SimpleTaskThread]
Waiting for the following threads to exit [1]:
Thread index: 0 ptr [0x37287f0] isBaseThread: 1, Name: [SimpleTaskThread]
Waiting for the following threads to exit [1]:
Thread index: 0 ptr [0x37287f0] isBaseThread: 1, Name: [SimpleTaskThread]
Waiting for the following threads to exit [1]:
Thread index: 0 ptr [0x37287f0] isBaseThread: 1, Name: [SimpleTaskThread]
Waiting for the following threads to exit [1]:
Thread index: 0 ptr [0x37287f0] isBaseThread: 1, Name: [SimpleTaskThread]
Waiting for the following threads to exit [1]:
Thread index: 0 ptr [0x37287f0] isBaseThread: 1, Name: [SimpleTaskThread]
Waiting for the following threads to exit [1]:
Thread index: 0 ptr [0x37287f0] isBaseThread: 1, Name: [SimpleTaskThread]
Waiting for the following threads to exit [1]:
Thread index: 0 ptr [0x37287f0] isBaseThread: 1, Name: [SimpleTaskThread]
Waiting for the following threads to exit [1]:
Thread index: 0 ptr [0x37287f0] isBaseThread: 1, Name: [SimpleTaskThread]
radeon: Released access to Hyper-Z.

======= In MinidumpCallback...

***ERROR details captured:
Crash minidump folder: /home/tomreyn/.megaglest/
file: /home/tomreyn/.megaglest//72c04165-b8a3-bb89-62d1aa51-25a589a0.dmp
Succeeded: 1
******************************************************
    An unhandled error was detected.

A crash dump file has been created in the folder:
/home/tomreyn/.megaglest/
Crash dump filename is: /home/tomreyn/.megaglest//72c04165-b8a3-bb89-62d1aa51-25a589a0.dmp
******************************************************

Segmentation fault detected, analyzing...

warning: Can't read pathname for load map: Eingabe-/Ausgabefehler.
[New LWP 6291]
[New LWP 6301]
[New LWP 6300]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7fff579fe000
Core was generated by `./megaglest --starthost'.
Program terminated with signal 6, Aborted.
#0  0x00007fa3387a4037 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56    ../nptl/sysdeps/unix/sysv/linux/raise.c: Datei oder Verzeichnis nicht gefunden.
#0  0x00007fa3387a4037 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007fa3387a7698 in __GI_abort () at abort.c:90
#2  0x00000000006835dd in Glest::Game::ExceptionHandler::handleRuntimeError (msg=msg@entry=0x7fff578b6000 "In [/home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 5270] Error detected: signal 11:\n", getStackTraceString=getStackTraceString@entry=true) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp:776
#3  0x0000000000683aaf in Glest::Game::handleSIGSEGV (sig=<optimized out>) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp:5274
#4  <signal handler called>
#5  0x00007fa33910d58b in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x00000000005b5297 in Glest::Game::Game::ReplaceDisconnectedNetworkPlayersWithAI (this=this@entry=0x4b34a30, isNetworkGame=isNetworkGame@entry=true, role=role@entry=Glest::Game::nrServer) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/game/game.cpp:2967
#7  0x00000000005b6aec in Glest::Game::Game::update (this=0x4b34a30) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/game/game.cpp:1912
#8  0x00000000006acd30 in Glest::Game::Program::loopWorker (this=this@entry=0x2d02560) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/program.cpp:458
#9  0x00000000006aeb85 in Glest::Game::Program::loop (this=this@entry=0x2d02560) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/program.cpp:369
#10 0x0000000000690b00 in Glest::Game::glestMain (argc=argc@entry=2, argv=argv@entry=0x7fff578c9f08) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp:5121
#11 0x00000000006945e6 in Glest::Game::glestMainSEHWrapper (argc=argc@entry=2, argv=argv@entry=0x7fff578c9f08) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp:5366
#12 0x000000000069477e in Glest::Game::glestMainWrapper (argc=2, argv=0x7fff578c9f08) at /home/tomreyn/SCM/megaglest-trunk/source/glest_game/main/main.cpp:5439
#13 0x00007fa33878eea5 in __libc_start_main (main=0x50e280 <main(int, char**)>, argc=2, ubp_av=0x7fff578c9f08, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff578c9ef8) at libc-start.c:260
#14 0x0000000000514bc9 in _start ()
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: r4357: Host SegF when client disconnects during pause
« Reply #2 on: 2 June 2013, 05:08:59 »
Should be fixed in 4359

tomreyn

  • Local Moderator
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
Re: r4357: Host SegF when client disconnects during pause
« Reply #3 on: 2 June 2013, 23:41:07 »
Based on testing with Titi I'm inclined to agree this is [fixed].
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