Bug 456844
Summary: | game crashes for no apparent reason | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Michael Smith-Sardior <linux> |
Component: | 8Kingdoms | Assignee: | Hans de Goede <hdegoede> |
Status: | CLOSED WONTFIX | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | high | Docs Contact: | |
Priority: | low | ||
Version: | 8 | CC: | kevin, trevin |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2008-07-29 19:45:32 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Michael Smith-Sardior
2008-07-28 03:00:42 UTC
Hmm, 8Kingdoms is no longer under active development I'm afraid, but lets see if we can fix this. Can you do the following next time you play: In a terminal first give the following command: ulimit -c unlimited Before starting 8Kingdoms, now you should get a core.xxxxx file next time 8Kingdoms segfaults. Then after the segfault do: gdb /usr/bin/8Kingdoms core.xxxxx At the (gdb) prompt type "bt" and paste the output here. Thanks! This doesn't look very helpful but here it is. This is the second crash. this evening. The first one left me without a mouse and an expanded screen (looked like a 640x480 screen). I had a lot of information on the terminal screen, but I couldn't select it to copy it. If you have a fix for that, or a workaround to re-enable my mouse that would be helpful. Or another way to capture the output. I will try to do my part to help get this fixed. Thanks [sardior@crystalpalace ~]$ ulimit -c unlimited Segmentation fault (core dumped) [sardior@crystalpalace ~]$ gdb /usr/bin/8Kingdoms core.xxxxx GNU gdb Red Hat Linux (6.6-45.fc8rh) Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu"... Using host libthread_db library "/lib64/libthread_db.so.1". /home/sardior/core.xxxxx: No such file or directory. (gdb) bt No stack. (gdb) Uh oh... I see what you mean. Sorry, didn't realize I needed to find the file name of "core.xxxxx". There is also one with only 4 digits that is over a Gig. But here's the right information. [sardior@crystalpalace ~]$ gdb /usr/bin/8Kingdoms core.14170 GNU gdb Red Hat Linux (6.6-45.fc8rh) Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu"... Using host libthread_db library "/lib64/libthread_db.so.1". warning: Can't read pathname for load map: Input/output error. Reading symbols from /usr/lib64/libSDL-1.2.so.0...done. Loaded symbols for /usr/lib64/libSDL-1.2.so.0 Reading symbols from /lib64/libpthread.so.0...done. Loaded symbols for /lib64/libpthread.so.0 Reading symbols from /usr/lib64/libSDL_mixer-1.2.so.0...done. Loaded symbols for /usr/lib64/libSDL_mixer-1.2.so.0 Reading symbols from /usr/lib64/nvidia/libGL.so.1...done. Loaded symbols for /usr/lib64/nvidia/libGL.so.1 Reading symbols from /usr/lib64/libGLU.so.1...done. Loaded symbols for /usr/lib64/libGLU.so.1 Reading symbols from /lib64/libexpat.so.1...done. Loaded symbols for /lib64/libexpat.so.1 Reading symbols from /usr/lib64/libtcl8.4.so...done. Loaded symbols for /usr/lib64/libtcl8.4.so Reading symbols from /usr/lib64/libstdc++.so.6...done. Loaded symbols for /usr/lib64/libstdc++.so.6 Reading symbols from /lib64/libm.so.6...done. Loaded symbols for /lib64/libm.so.6 Reading symbols from /lib64/libgcc_s.so.1...done. Loaded symbols for /lib64/libgcc_s.so.1 Reading symbols from /lib64/libc.so.6...done. Loaded symbols for /lib64/libc.so.6 Reading symbols from /lib64/libdl.so.2...done. Loaded symbols for /lib64/libdl.so.2 Reading symbols from /lib64/ld-linux-x86-64.so.2...done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 Reading symbols from /usr/lib64/libmikmod.so.2...done. Loaded symbols for /usr/lib64/libmikmod.so.2 Reading symbols from /usr/lib64/nvidia/libGLcore.so.1...done. Loaded symbols for /usr/lib64/nvidia/libGLcore.so.1 Reading symbols from /usr/lib64/nvidia/tls/libnvidia-tls.so.1...done. Loaded symbols for /usr/lib64/nvidia/tls/libnvidia-tls.so.1 Reading symbols from /usr/lib64/libXext.so.6...done. Loaded symbols for /usr/lib64/libXext.so.6 Reading symbols from /usr/lib64/libX11.so.6...done. Loaded symbols for /usr/lib64/libX11.so.6 Reading symbols from /usr/lib64/libXau.so.6...done. Loaded symbols for /usr/lib64/libXau.so.6 Reading symbols from /usr/lib64/libxcb-xlib.so.0...done. Loaded symbols for /usr/lib64/libxcb-xlib.so.0 Reading symbols from /usr/lib64/libxcb.so.1...done. Loaded symbols for /usr/lib64/libxcb.so.1 Reading symbols from /usr/lib64/libXdmcp.so.6...done. Loaded symbols for /usr/lib64/libXdmcp.so.6 Reading symbols from /lib64/librt.so.1...done. Loaded symbols for /lib64/librt.so.1 Reading symbols from /usr/lib64/libesd.so.0...done. Loaded symbols for /usr/lib64/libesd.so.0 Reading symbols from /lib64/libasound.so.2.0.0...Reading symbols from /usr/lib/debug/lib64/libasound.so.2.0.0.debug...done. done. Loaded symbols for /lib64/libasound.so.2.0.0 Reading symbols from /usr/lib64/libaudiofile.so.0...done. Loaded symbols for /usr/lib64/libaudiofile.so.0 Reading symbols from /usr/lib64/libXrender.so.1...done. Loaded symbols for /usr/lib64/libXrender.so.1 Reading symbols from /usr/lib64/libXrandr.so.2...done. Loaded symbols for /usr/lib64/libXrandr.so.2 Reading symbols from /usr/lib64/libXcursor.so.1...done. Loaded symbols for /usr/lib64/libXcursor.so.1 Reading symbols from /usr/lib64/libXfixes.so.3...done. Loaded symbols for /usr/lib64/libXfixes.so.3 Core was generated by `8Kingdoms'. Program terminated with signal 6, Aborted. #0 0x0000003c97430ec5 in raise () from /lib64/libc.so.6 (gdb) bt #0 0x0000003c97430ec5 in raise () from /lib64/libc.so.6 #1 0x0000003c97432970 in abort () from /lib64/libc.so.6 #2 0x0000003c9746b0db in __libc_message () from /lib64/libc.so.6 #3 0x0000003c97472832 in _int_free () from /lib64/libc.so.6 #4 0x0000003c97475f2c in free () from /lib64/libc.so.6 #5 0x00000000004c4570 in gui::Destroy3DObject (obj=0x2f71860) at gui/engine/SceneGeom.cpp:637 #6 0x00000000004cf62c in gui::TModel::freeModel (this=0x2f71780) at gui/model/ModelRep.cpp:77 #7 0x00000000004d094e in ~TModel (this=0x375a) at gui/model/ModelRep.cpp:48 #8 0x00000000004dc7e7 in ~THex (this=0x3934960) at gui/model/hexy.cpp:157 #9 0x00000000004d282a in gui::TguiMap::done (this=0x1624730) at gui/model/guimap.cpp:785 #10 0x00000000004886d5 in gui::TGame::deactivateContext (this=0x1623e20) at gui/contexts/Game.cpp:417 #11 0x000000000046ebe5 in gui::TScreen::enterMainLoop (this=0x1464cb0) at gui/common/Screen.cpp:101 #12 0x000000000046179c in gui::TGUI::main (this=<value optimized out>) at gui/GUI.cpp:199 #13 0x0000000000407f69 in main (argc=<value optimized out>, argv=<value optimized out>) at 8Kingdoms.cpp:515 #14 0x0000003c9741e074 in __libc_start_main () from /lib64/libc.so.6 #15 0x00000000004068c9 in _start () Missing separate debuginfos, use: debuginfo-install SDL.x86_64 SDL_mixer.x86_64 audiofile.x86_64 esound.x86_64 expat.x86_64 gcc.x86_64 glibc.x86_64 libX11.x86_64 libXau.x86_64 libXcursor.x86_64 libXdmcp.x86_64 libXext.x86_64 libXfixes.x86_64 libXrandr.x86_64 libXrender.x86_64 libxcb.x86_64 mesa.x86_64 mikmod.x86_64 tcl.x86_64 (gdb) Ok, now I get it, this following data is from the first crash... looked at time stamps. [sardior@crystalpalace ~]$ gdb /usr/bin/8Kingdoms core.3267 GNU gdb Red Hat Linux (6.6-45.fc8rh) Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu"... Using host libthread_db library "/lib64/libthread_db.so.1". warning: Can't read pathname for load map: Input/output error. Reading symbols from /usr/lib64/libSDL-1.2.so.0...done. Loaded symbols for /usr/lib64/libSDL-1.2.so.0 Reading symbols from /lib64/libpthread.so.0...done. Loaded symbols for /lib64/libpthread.so.0 Reading symbols from /usr/lib64/libSDL_mixer-1.2.so.0...done. Loaded symbols for /usr/lib64/libSDL_mixer-1.2.so.0 Reading symbols from /usr/lib64/nvidia/libGL.so.1...done. Loaded symbols for /usr/lib64/nvidia/libGL.so.1 Reading symbols from /usr/lib64/libGLU.so.1...done. Loaded symbols for /usr/lib64/libGLU.so.1 Reading symbols from /lib64/libexpat.so.1...done. Loaded symbols for /lib64/libexpat.so.1 Reading symbols from /usr/lib64/libtcl8.4.so...done. Loaded symbols for /usr/lib64/libtcl8.4.so Reading symbols from /usr/lib64/libstdc++.so.6...done. Loaded symbols for /usr/lib64/libstdc++.so.6 Reading symbols from /lib64/libm.so.6...done. Loaded symbols for /lib64/libm.so.6 Reading symbols from /lib64/libgcc_s.so.1...done. Loaded symbols for /lib64/libgcc_s.so.1 Reading symbols from /lib64/libc.so.6...done. Loaded symbols for /lib64/libc.so.6 Reading symbols from /lib64/libdl.so.2...done. Loaded symbols for /lib64/libdl.so.2 Reading symbols from /lib64/ld-linux-x86-64.so.2...done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 Reading symbols from /usr/lib64/libmikmod.so.2...done. Loaded symbols for /usr/lib64/libmikmod.so.2 Reading symbols from /usr/lib64/nvidia/libGLcore.so.1...done. Loaded symbols for /usr/lib64/nvidia/libGLcore.so.1 Reading symbols from /usr/lib64/nvidia/tls/libnvidia-tls.so.1...done. Loaded symbols for /usr/lib64/nvidia/tls/libnvidia-tls.so.1 Reading symbols from /usr/lib64/libXext.so.6...done. Loaded symbols for /usr/lib64/libXext.so.6 Reading symbols from /usr/lib64/libX11.so.6...done. Loaded symbols for /usr/lib64/libX11.so.6 Reading symbols from /usr/lib64/libXau.so.6...done. Loaded symbols for /usr/lib64/libXau.so.6 Reading symbols from /usr/lib64/libxcb-xlib.so.0...done. Loaded symbols for /usr/lib64/libxcb-xlib.so.0 Reading symbols from /usr/lib64/libxcb.so.1...done. Loaded symbols for /usr/lib64/libxcb.so.1 Reading symbols from /usr/lib64/libXdmcp.so.6...done. Loaded symbols for /usr/lib64/libXdmcp.so.6 Reading symbols from /lib64/librt.so.1...done. Loaded symbols for /lib64/librt.so.1 Reading symbols from /usr/lib64/libXrender.so.1...done. Loaded symbols for /usr/lib64/libXrender.so.1 Reading symbols from /usr/lib64/libXcursor.so.1...done. Loaded symbols for /usr/lib64/libXcursor.so.1 Reading symbols from /usr/lib64/libXfixes.so.3...done. Loaded symbols for /usr/lib64/libXfixes.so.3 Core was generated by `8Kingdoms'. Program terminated with signal 11, Segmentation fault. #0 World::TStructHolder<World::LIVING_UNIT>::data (this=0x8) at world/struct_holder.h:99 99 if (_data == NULL) (gdb) bt #0 World::TStructHolder<World::LIVING_UNIT>::data (this=0x8) at world/struct_holder.h:99 #1 0x000000000048a50d in gui::TGame::updateActionsPanel (this=0x28e6c40) at gui/contexts/Game.cpp:1109 #2 0x000000000048fc18 in gui::TGame::unitSelected (this=0x28e6c40, unit=0x7f9bc89213b0) at gui/contexts/Game.cpp:2094 #3 0x0000000000491ba3 in gui::TGame::hexClicked (this=0x28e6c40, indx=847) at gui/contexts/Game.cpp:1886 #4 0x00000000004d2526 in gui::TguiMap::workInput (this=0x28e7550, input=0x2727d04) at gui/model/guimap.cpp:1388 #5 0x000000000046aa30 in gui::TFrame::workInput (this=0x28e6c40, input=0x2727d04) at gui/common/ActiveObjects.cpp:1799 #6 0x0000000000490d57 in gui::TGame::workInput (this=0x8, input=0x2d0b260) at gui/contexts/Game.cpp:513 #7 0x000000000046ea58 in gui::TScreen::processInput (this=0x7343c30) at gui/common/Screen.cpp:210 #8 0x000000000046ed2b in gui::TScreen::enterMainLoop (this=0x2727cb0) at gui/common/Screen.cpp:161 #9 0x000000000046179c in gui::TGUI::main (this=<value optimized out>) at gui/GUI.cpp:199 #10 0x0000000000407f69 in main (argc=<value optimized out>, argv=<value optimized out>) at 8Kingdoms.cpp:515 #11 0x0000003c9741e074 in __libc_start_main () from /lib64/libc.so.6 Missing separate debuginfos, use: debuginfo-install SDL.x86_64 SDL_mixer.x86_64 expat.x86_64 gcc.x86_64 glibc.x86_64 libX11.x86_64 libXau.x86_64 libXcursor.x86_64 libXdmcp.x86_64 libXext.x86_64 libXfixes.x86_64 libXrender.x86_64 libxcb.x86_64 mesa.x86_64 mikmod.x86_64 tcl.x86_64 ---Type <return> to continue, or q <return> to quit--- #12 0x00000000004068c9 in _start () (gdb) Hmm, 2 completely different backtraces what fun. As said 8Kingdoms is no longer under active development I'm afraid, so there is no upstream to ask to look into this, and at the moment I currently do not have the time for this I'm afraid. So I'm going to close this as wontfix and I'll be orphaning 8KingDoms as, as said, I don't have the time to go and hunt down all the bugs is has, and it seems to be a dead end with regards to future developments. *** Bug 452432 has been marked as a duplicate of this bug. *** * comment #3 is probably a double-free. Could also be a memory corruption though. There's a backtrace which might help figuring out what's wrong, but not necessarily. (A valgrind log would be very useful, though I don't know how well, if at all, valgrind works with OpenGL stuff and it might not find anything if the bug isn't reproducible.) * comment #4 is obvious: gui::TGame::updateActionsPanel (this=0x28e6c40) at gui/contexts/Game.cpp:1109 calls World::TStructHolder<World::LIVING_UNIT>::data (this=0x8) with a NULL this pointer (well, almost NULL, so it must be NULL plus some offset, usually this means the offending class is a (non-pointer) member of a class or structure and the pointer to that class or structure is NULL). Of the 4 reported crashes, this one is probably the easiest to fix (with the information we have). * crash A in bug 452432 is a stack overflow, probably from infinite recursion, but we don't know where so there's no way to tell * crash B in bug 452432 is a buffer overflow, but we don't have a backtrace with debugging information, so there too it's hard to figure ou where it crashes. Trevin Beattie, the reporter of bug 452432, says he can reproduce the crashes every time. Any chance you can obtain some usable backtraces? See https://fedoraproject.org/wiki/StackTraces . Of course, I can't guarantee a maintainer will be willing to debug this (given that Hans just gave up), but it would at least increase the chances, for example I might try to fix this. However, with no backtrace or only the glibc backtrace with no debugging information, it is almost impossible to fix the bug, and not everybody can reproduce it. Yesterday I followed the instructions, got the program to exit normally, found all the missing debug modules and loaded them. Then I started a terminal window and loaded the program with "gdb 8Kingdoms", then typed "run". I spent a long time playing the game trying to get the crash to happen (Skirmish). Towards the end of the game my whole system froze. Lost mouse and keyboard control and so I had to reboot my computer with the dreaded 5 second power button. It seems that sometimes the game leaves dead bodies on the playfield. When you click on a hex with the debris the game crashes. I think what happened last night is I had 2 hexes with debris left on the field. I'll try again sometime today. Any ideas of how to get the report even when the computer dies? You could check if a new core.xxxxx is present after the reboot, that *might* be the case, otherwise getting a backtrace will be close to impossible. yea... That's what I thought. Let's close it. I've tried all last night and good part of today trying to get it to crash and leave my computer in tact. There are no core.xxxx files. Every time it crashes now it is a hard crash... everything locked. Wish I knew how to program. All I can do is find bugs. lol. If no one can come up with any better suggestions I'll just take it off my system. Too bad too. It is a lot of fun. |