Hi,

sorry for very very late answer...

I think you were right and there was a problem of locking (a list of 
DistantComputer) in network game. It is normally fixed in the branch 
0.8.4 that is not yet released. It would be really great if you can test 
it!!

You can get the code using this instructions :
http://www.wormux.org/wiki/howto/en/subversion.php

replacing http://svn.gna.org/svn/wormux/trunk by 
http://svn.gna.org/svn/wormux/branches/wormux-0.8.4

Regards,

Matt (gentildemon)
 


Matthieu Fertré a écrit :
> Hi,
>
> Stefan Sperling a écrit :
>   
>> Hi,
>>
>> wormux is a great game :)
>>   
>>     
>
> thanks :)
>
>   
>> I got the following crash from wormux-0.8.2 while playing a networking
>> game on OpenBSD. I don't know how to reproduce, but the crash has happened
>> mulitple times, not just once. It seems to occur randomly, I suspect
>> a threading issue. The core dump shows that STL code is running into
>> a bad pointer, see below.
>>
>> Is this a known problem?
>>   
>>     
>
> No, it is not a known problem, thanks a lot for reporting it !!!
>
> >From what I see in the dump, it is related to the body (skin)
> management. Could you reproduce the game in local game ? Could you try
> 0.8.1 to see if the bug was already there ?
>
> I will have a further look in the next few days :)
>
> Regards,
>
> Matt (gentildemon)
>
>   
>> (gdb warns that the binary is newer than the core file. This is because
>> I rebuilt the binary with debug symbols to be able to read a meaningful
>> trace from the core file.)
>>
>> $ gdb `which wormux` wormux.core
>> GNU gdb 6.3
>> Copyright 2004 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 "i386-unknown-openbsd4.4"...
>>
>> warning: exec file is newer than core file.
>> Core was generated by `wormux'.
>> Program terminated with signal 11, Segmentation fault.
>> Reading symbols from /usr/lib/libpthread.so.11.1...done.
>> Loaded symbols for /usr/lib/libpthread.so.11.1
>> Reading symbols from /usr/local/lib/libSDL_net.so.1.1...done.
>> Loaded symbols for /usr/local/lib/libSDL_net.so.1.1
>> Reading symbols from /usr/local/lib/libSDL_ttf.so.7.0...done.
>> Loaded symbols for /usr/local/lib/libSDL_ttf.so.7.0
>> Reading symbols from /usr/local/lib/libSDL_mixer.so.3.0...done.
>> Loaded symbols for /usr/local/lib/libSDL_mixer.so.3.0
>> Reading symbols from /usr/local/lib/libSDL_image.so.2.0...done.
>> Loaded symbols for /usr/local/lib/libSDL_image.so.2.0
>> Reading symbols from /usr/local/lib/libpng.so.8.0...done.
>> Loaded symbols for /usr/local/lib/libpng.so.8.0
>> Reading symbols from /usr/local/lib/libSDL_gfx.so.13.0...done.
>> Loaded symbols for /usr/local/lib/libSDL_gfx.so.13.0
>> Reading symbols from /usr/local/lib/libSDL.so.8.0...done.
>> Loaded symbols for /usr/local/lib/libSDL.so.8.0
>> Reading symbols from /usr/X11R6/lib/libX11.so.11.1...done.
>> Loaded symbols for /usr/X11R6/lib/libX11.so.11.1
>> Reading symbols from /usr/lib/libz.so.4.1...done.
>> Loaded symbols for /usr/lib/libz.so.4.1
>> Reading symbols from /usr/local/lib/libxml2.so.10.0...done.
>> Loaded symbols for /usr/local/lib/libxml2.so.10.0
>> Reading symbols from /usr/lib/libm.so.5.0...done.
>> Loaded symbols for /usr/lib/libm.so.5.0
>> Reading symbols from /usr/local/lib/libintl.so.4.0...done.
>> Loaded symbols for /usr/local/lib/libintl.so.4.0
>> Reading symbols from /usr/local/lib/libiconv.so.5.0...done.
>> Loaded symbols for /usr/local/lib/libiconv.so.5.0
>> Reading symbols from /usr/local/lib/libcurl.so.12.0...done.
>> Loaded symbols for /usr/local/lib/libcurl.so.12.0
>> Reading symbols from /usr/local/lib/libidn.so.16.30...done.
>> Loaded symbols for /usr/local/lib/libidn.so.16.30
>> Reading symbols from /usr/lib/libssl.so.12.0...done.
>> Loaded symbols for /usr/lib/libssl.so.12.0
>> Reading symbols from /usr/lib/libcrypto.so.15.0...done.
>> Loaded symbols for /usr/lib/libcrypto.so.15.0
>> Reading symbols from /usr/lib/libstdc++.so.46.0...done.
>> Loaded symbols for /usr/lib/libstdc++.so.46.0
>> Symbols already loaded for /usr/lib/libpthread.so.11.1
>> Reading symbols from /usr/lib/libc.so.50.0...done.
>> Loaded symbols for /usr/lib/libc.so.50.0
>> Reading symbols from /usr/lib/libsndio.so.3.2...done.
>> Loaded symbols for /usr/lib/libsndio.so.3.2
>> Reading symbols from /usr/X11R6/lib/libXau.so.9.0...done.
>> Loaded symbols for /usr/X11R6/lib/libXau.so.9.0
>> Reading symbols from /usr/X11R6/lib/libXdmcp.so.9.0...done.
>> Loaded symbols for /usr/X11R6/lib/libXdmcp.so.9.0
>> Reading symbols from /usr/X11R6/lib/libXext.so.10.0...done.
>> Loaded symbols for /usr/X11R6/lib/libXext.so.10.0
>> Reading symbols from /usr/X11R6/lib/libXrender.so.5.0...done.
>> Loaded symbols for /usr/X11R6/lib/libXrender.so.5.0
>> Reading symbols from /usr/X11R6/lib/libXrandr.so.6.0...done.
>> Loaded symbols for /usr/X11R6/lib/libXrandr.so.6.0
>> Reading symbols from /usr/lib/libusbhid.so.3.0...done.
>> Loaded symbols for /usr/lib/libusbhid.so.3.0
>> Reading symbols from /usr/X11R6/lib/libfreetype.so.16.1...done.
>> Loaded symbols for /usr/X11R6/lib/libfreetype.so.16.1
>> Reading symbols from /usr/local/lib/libmikmod.so.2.4...done.
>> Loaded symbols for /usr/local/lib/libmikmod.so.2.4
>> Reading symbols from /usr/local/lib/libsmpeg.so.2.0...done.
>> Loaded symbols for /usr/local/lib/libsmpeg.so.2.0
>> Reading symbols from /usr/local/lib/libogg.so.5.3...done.
>> Loaded symbols for /usr/local/lib/libogg.so.5.3
>> Reading symbols from /usr/local/lib/libvorbis.so.6.0...done.
>> Loaded symbols for /usr/local/lib/libvorbis.so.6.0
>> Reading symbols from /usr/local/lib/libvorbisfile.so.5.0...done.
>> Loaded symbols for /usr/local/lib/libvorbisfile.so.5.0
>> Reading symbols from /usr/local/lib/libjpeg.so.62.0...done.
>> Loaded symbols for /usr/local/lib/libjpeg.so.62.0
>> Reading symbols from /usr/local/lib/libtiff.so.38.2...done.
>> Loaded symbols for /usr/local/lib/libtiff.so.38.2
>> Reading symbols from /usr/libexec/ld.so...done.
>> Loaded symbols for /usr/libexec/ld.so
>> Reading symbols from /usr/X11R6/lib/libXcursor.so.4.0...done.
>> Loaded symbols for /usr/X11R6/lib/libXcursor.so.4.0
>> Reading symbols from /usr/X11R6/lib/libXfixes.so.5.0...done.
>> Loaded symbols for /usr/X11R6/lib/libXfixes.so.5.0
>> #0  std::_Rb_tree<std::string, std::pair<std::string const, member_mvt>, 
>> std::_Select1st<std::pair<std::string const, member_mvt> >, 
>> std::less<std::string>, std::allocator<std::pair<std::string const, 
>> member_mvt> > >::find (
>>     this=0x700032, _...@0x8a6feac0) at stl_tree.h:648
>> 648        _M_root() const { return (_Link_type&) _M_header->_M_parent; }
>> (gdb) p _M_header 
>> Cannot access memory at address 0x700032
>> (gdb) bt
>> #0  std::_Rb_tree<std::string, std::pair<std::string const, member_mvt>, 
>> std::_Select1st<std::pair<std::string const, member_mvt> >, 
>> std::less<std::string>, std::allocator<std::pair<std::string const, 
>> member_mvt> > >::find (
>>     this=0x700032, _...@0x8a6feac0) at stl_tree.h:648
>> #1  0x1c012634 in Body::ApplyMovement (this=0x89ade280, mvt=0x8732f500, 
>> frame=1) at stl_map.h:468
>> #2  0x1c013279 in Body::Build (this=0x89ade280) at character/body.cpp:401
>> #3  0x1c01be38 in Character::Draw (this=0x87335008) at 
>> character/character.cpp:400
>> #4  0x1c03ead8 in Game::Draw (this=0x8bae7f80) at game/game.cpp:356
>> #5  0x1c03ecf6 in Game::CallDraw (this=0x8bae7f80) at game/game.cpp:406
>> #6  0x1c03f23c in Game::MainLoop (this=0x8bae7f80) at game/game.cpp:522
>> #7  0x1c042c29 in GameClassic::EndOfGame (this=0x8bae7f80) at 
>> game/game_classic.cpp:59
>> #8  0x1c03ee4f in Game::Run (this=0x8bae7f80) at game/game.cpp:446
>> #9  0x1c03d643 in Game::Start (this=0x8bae7f80) at game/game.cpp:128
>> #10 0x1c0dc0ce in NetworkMenu::signal_ok (this=0xcfbc6790) at 
>> menu/network_menu.cpp:267
>> #11 0x1c0d3cd4 in Menu::mouse_ok (this=0xcfbc6790) at menu/menu.cpp:100
>> #12 0x1c0d3d8c in Menu::BasicOnClickUp (this=0xcfbc6790, 
>> mousepositi...@0xcfbc6738) at menu/menu.cpp:117
>> #13 0x1c0d40ec in Menu::Run (this=0xcfbc6790) at menu/menu.cpp:266
>> #14 0x1c0d91b6 in NetworkConnectionMenu::signal_ok (this=0xcfbc6790) at 
>> menu/network_connection_menu.cpp:441
>> #15 0x1c0d3cd4 in Menu::mouse_ok (this=0xcfbc6950) at menu/menu.cpp:100
>> #16 0x1c0d3d8c in Menu::BasicOnClickUp (this=0xcfbc6950, 
>> mousepositi...@0xcfbc68f8) at menu/menu.cpp:117
>> #17 0x1c0d40ec in Menu::Run (this=0xcfbc6950) at menu/menu.cpp:266
>> #18 0x1c08b820 in AppWormux::Main (this=0x80f8e040) at main.cpp:130
>> #19 0x1c08dd8b in main (argc=1, argv=0xcfbc6b4c) at main.cpp:435
>> (gdb) info frame
>> Stack level 0, frame at 0xcfbc5f40:
>>  eip = 0x1c015ff6
>>     in std::_Rb_tree<std::string, std::pair<std::string const, member_mvt>, 
>> std::_Select1st<std::pair<std::string const, member_mvt> >, 
>> std::less<std::string>, std::allocator<std::pair<std::string const, 
>> member_mvt> > >::find(std::string const&) (stl_tree.h:648); saved eip 
>> 0x1c012634
>>  called by frame at 0xcfbc60c0
>>  source language c++.
>>  Arglist at 0xcfbc5f38, args: this=0x700032, _...@0x8a6feac0
>>  Locals at 0xcfbc5f38, Previous frame's sp is 0xcfbc5f40
>>  Saved registers:
>>   ebx at 0xcfbc5f2c, ebp at 0xcfbc5f38, esi at 0xcfbc5f30, edi at 
>> 0xcfbc5f34, eip at 0xcfbc5f3c
>> (gdb) 
>>
>>
>> I'll happily test patches.
>>
>> Thanks,
>> Stefan
>>
>>     


_______________________________________________
Wormux-dev mailing list
Wormux-dev@gna.org
https://mail.gna.org/listinfo/wormux-dev

Répondre à