Author Topic: v3.6.0: Segmentation fault in ServerInterface::checkForLaggingClients  (Read 1164 times)

tomreyn

  • MegaGlest Team
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
We were playing a Japanese games, 3 humans against 3 CPU, and I was hosting.
Code: [Select]
$ head ~/.megaglest/lastCustomGamSettings.mgg
Description=Ally Resist Clone
MapFilterIndex=8
Map=ally_resist_clone
Tileset=desert2
TechTree=japanese
DefaultUnits=1
DefaultResources=1
DefaultVictoryConditions=1
FogOfWar=1
AdvancedIndex=0
$

Suddenly, the game screen froze, then segfaulted (it may have segfaulted immediately, and the frozen screen was just due to the system dumping the core).

Code: [Select]
[2011-12-18 19:09:58] *ERROR* In [/home/softcoder/Code/megaglest/trunk/source/shared_lib/sources/graphics/model.cpp::loadMeshTexture Line: 438] Error v4 model is missing texture [/home/tomreyn/.megaglest/techs/japanese/factions/japanese/units/teppo_ashigaru/../castle/models/muzzleflash.tga] textureFlags = 1 meshIndex = 0 textureIndex = 0
In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 651] Error detected: signal 11:
Error saved to logfile [/home/tomreyn/.megaglest/error.log]
[2011-12-18 19:19:19] *ERROR* In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleRuntimeError Line: 416] [In [/home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp::handleSIGSEGV Line: 651] Error detected: signal 11:
] gameInitialized = 1, program = 0x2d93090
Segmentation fault (core dumped)

error.log only contains the last but one line, so I'm not copying it here.

Stack trace:
Code: [Select]
tomreyn@desktop:~/megaglest-3.6.0$ gdb -q -n -ex bt -batch megaglest core
[..]
[Thread debugging using libthread_db enabled]
Core was generated by `./megaglest'.
Program terminated with signal 11, Segmentation fault.
#0  0x00007f22855bc046 in ?? () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#0  0x00007f22855bc046 in ?? () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#1  0x00007f22855bcd5d in _Unwind_Backtrace () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#2  0x00007f2285306950 in __GI___backtrace (array=<optimized out>, size=15) at ../sysdeps/x86_64/../ia64/backtrace.c:91
#3  0x00000000006e9610 in Glest::Game::ExceptionHandler::handleRuntimeError(char const*) ()
#4  0x00000000006d1b32 in Glest::Game::handleSIGSEGV (sig=<optimized out>) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp:655
#5  <signal handler called>
#6  0x0000002b0000ffff in ?? ()
#7  0x00000000008444b2 in Glest::Game::ServerInterface::checkForLaggingClients (this=<optimized out>, mapSlotSignalledList=<optimized out>, eventList=<optimized out>, socketTriggeredList=<optimized out>, errorMsgList=...) at /home/softcoder/Code/megaglest/trunk/source/glest_game/network/server_interface.cpp:929
#8  0x0000000000849afb in Glest::Game::ServerInterface::update (this=0x7f227405cff0) at /home/softcoder/Code/megaglest/trunk/source/glest_game/network/server_interface.cpp:1090
#9  0x00000000006ece06 in Glest::Game::Program::loopWorker (this=0x2d93090) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/program.cpp:397
#10 0x00000000006e3939 in Glest::Game::glestMain (argc=<optimized out>, argv=<optimized out>) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp:3581
#11 0x00000000006e60c3 in Glest::Game::glestMainWrapper (argc=1, argv=0x7fff5282b0f8) at /home/softcoder/Code/megaglest/trunk/source/glest_game/main/main.cpp:3737
#12 0x00007f228522f30d in __libc_start_main (main=0x6e61c0 <main(int, char**)>, argc=1, ubp_av=0x7fff5282b0f8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff5282b0e8) at libc-start.c:226
#13 0x00000000005be0a9 in _start () at ../sysdeps/x86_64/elf/start.S:113

I just realized that one of the CPUs (the last one, on the 8th slot) was set to '*Random* instead of 'Japanese'. And TotalNoob has an extra faction installed on the Japanese techtree. This was already the case on the game which segfaulted, but not reported by the server then. He also installed Japanese from the forums, not from the mod menu, which may mean he has different data (though there was no warning saying so). Atze says he pressed the 'i' key when the game crashed and that this may have triggered it to do so.
« Last Edit: 18 December 2011, 18:38:53 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 · · ·