bugGlobulation 2 - Bugs: bug #25217, Crash later on in a game after...

 
 

bug #25217: Crash later on in a game after placing clearing flags

Submitter:  Kieran <k776>
Submitted:  Wed 31 Dec 2008 05:28:26 PM UTC
   
 
Severity:  5 - Blocker Status:  Fixed
Assigned to:  giszmo Open/Closed:  Closed
Release:  0.9.4 (Beta 4) Operating System:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Tue 06 Jan 2009 03:32:33 PM UTC, comment #5: 

the failing assert was replaced by a conditional "return false". i consider this a hack but this method is not clear to me so i hope somebody cleans it up later.

in isInLocalGradient there is a distinction of distance to the left and distance to the right. if distance is 15 but to the wrong direction the crash occured but it is totally unclear to my what this code is all about. please when you fix it, document it in some way ;)

Leo Wandersleb <giszmo>
Group Member
Tue 06 Jan 2009 03:38:27 AM UTC, comment #4: 

will continue here tomorrow ...

(gdb) bt full 5
#0  0x00007fee36303ed5 in raise () from /lib/libc.so.6
No symbol table info available.
#1  0x00007fee363053f3 in abort () from /lib/libc.so.6
No symbol table info available.
#2  0x00007fee362fcdc9 in __assert_fail () from /lib/libc.so.6
No symbol table info available.
#3  0x000000000054511b in Map::pathfindLocalRessource (this=0x7fff405913d0, building=0x7fee2cd77690, canSwim=true, x=57, y=40, dx=0x7fee2cd42168, dy=0x7fee2cd4216c) at src/Map.cpp:4556
        bx = 72
        by = 41
        teamMask = 1
        gradient = (Uint8 *) 0x7fee2d377570 ""
        lx = 6757137
        ly = 0
        max = 1079554096
        currentg = 127 '\177'
        found = false
        gradientUsable = false
        _PRETTY_FUNCTION_ = "bool Map::pathfindLocalRessource(Building*, bool, int, int, int*, int*)"
#4  0x000000000066c6dc in Unit::handleMovement (this=0x7fee2cd42120) at src/Unit.cpp:1772
        bx = 72
        usr2 = 196
        map = (class Map *) 0x7fff405913d0
        by = 41
        usr = 14
        canSwim = true
        _PRETTY_FUNCTION_ = "void Unit::handleMovement()"
        dxTab = {-4, -2, 2, 4, 4, 2, -2, -4}
        dyTab = {-2, -4, -4, -2, 2, 4, 4, 2}

Leo Wandersleb <giszmo>
Group Member
Wed 31 Dec 2008 07:19:59 PM UTC, comment #3: 

another big game crashed width that one:
http://test.leowandersleb.de/glob2/Auto_save.game.tar.gz

Leo Wandersleb <giszmo>
Group Member
Wed 31 Dec 2008 07:17:00 PM UTC, comment #2: 

Crashed again. Here is another backtrace.

------------

Assertion failed: (isInLocalGradient(x, y, bx, by)), function pathfindLocalRessource, file src/Map.cpp, line 4556.

Program received signal SIGABRT, Aborted.
0x90766e42 in __kill ()
(gdb) bt
#0  0x90766e42 in __kill ()
#1  0x90766e34 in kill$UNIX2003 ()
#2  0x907d923a in raise ()
#3  0x907e5679 in abort ()
#4  0x907da3db in __assert_rtn ()
#5  0x001208ea in Map::pathfindLocalRessource (this=0xbfff4178, building=0x1f269200, canSwim=false, x=348, y=280, dx=0x1edb562c, dy=0x1edb5630) at src/Map.cpp:4556
#6  0x0020f4a2 in Unit::handleMovement (this=0x1edb5600) at src/Unit.cpp:1772
#7  0x00212a3a in Unit::endOfAction (this=0x1edb5600) at src/Unit.cpp:2296
#8  0x00212f47 in Unit::syncStep (this=0x1edb5600) at src/Unit.cpp:526
#9  0x001fdfe3 in Team::syncStep (this=0x14a3c000) at src/Team.cpp:949
#10 0x000ac31c in Game::syncStep (this=0xbfff347c, localTeam=2) at src/Game.cpp:1208
#11 0x0009e27e in Engine::run (this=0xbfff3440) at src/Engine.cpp:373
#12 0x00175e6f in MultiplayerGame::startEngine (this=0x17ac2000) at src/MultiplayerGame.cpp:638
#13 0x00177652 in MultiplayerGame::recieveMessage (this=0x17ac2000, message=@0xbfffa794) at src/MultiplayerGame.cpp:506
#14 0x00223c51 in YOGClient::update (this=0x14c88b20) at src/YOGClient.cpp:264
#15 0x00235c14 in YOGClientLobbyScreen::onTimer (this=0xbfffab54, tick=1064802) at src/YOGClientLobbyScreen.cpp:251
#16 0x002ccfd7 in GAGGUI::TabScreen::onTimer (this=0xbfffaa50, tick=1064802) at libgag/src/GUITabScreen.cpp:246
#17 0x0029df43 in GAGGUI::Screen::dispatchTimer (this=0xbfffaa50, tick=1064802) at libgag/src/GUIBase.cpp:627
#18 0x0029e609 in GAGGUI::Screen::execute (this=0xbfffaa50, gfx=0x14cae990, stepLength=40) at libgag/src/GUIBase.cpp:445
#19 0x00245832 in YOGLoginScreen::handleYOGClientEvent (this=0xbfffb048, event=@0xbfffac48) at src/YOGLoginScreen.cpp:177
#20 0x00221de7 in YOGClient::sendToListeners (this=0x14c88b20, event=@0xbfffad90) at src/YOGClient.cpp:537
#21 0x00222cfa in YOGClient::update (this=0x14c88b20) at src/YOGClient.cpp:161
#22 0x00245425 in YOGLoginScreen::onTimer (this=0xbfffb048, tick=4395) at src/YOGLoginScreen.cpp:144
#23 0x0029df43 in GAGGUI::Screen::dispatchTimer (this=0xbfffb048, tick=4395) at libgag/src/GUIBase.cpp:627
#24 0x0029e609 in GAGGUI::Screen::execute (this=0xbfffb048, gfx=0x14cae990, stepLength=40) at libgag/src/GUIBase.cpp:445
#25 0x000f54a2 in Glob2::mutiplayerYOG (this=0xbfffe6b3) at src/Glob2.cpp:110
#26 0x000f5d4f in Glob2::run (this=0xbfffe6b3, argc=1, argv=0xe15ad0) at src/Glob2.cpp:334
#27 0x000f6100 in SDL_main (argc=1, argv=0xe15ad0) at src/Glob2.cpp:409
#28 0x002d104c in -[SDLMain applicationDidFinishLaunching:] (self=0x0, _cmd=0x916cd944, note=0xe16af0) at SDLMain.m:302
#29 0x90c7be1a in _nsnote_callback ()
#30 0x949108da in __CFXNotificationPost ()
#31 0x94910bb3 in _CFXNotificationPostNotification ()
#32 0x90c79080 in -[NSNotificationCenter postNotificationName:object:userInfo:] ()
#33 0x90c828c8 in -[NSNotificationCenter postNotificationName:object:] ()
#34 0x94ed349a in -[NSApplication _postDidFinishNotification] ()
#35 0x94ed33a9 in -[NSApplication _sendFinishLaunchingNotification] ()
#36 0x94e4cec3 in -[NSApplication(NSAppleEventHandling) _handleAEOpen:] ()
#37 0x94e4c6bc in -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] ()
#38 0x90ca143f in -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] ()
#39 0x90ca114f in _NSAppleEventManagerGenericHandler ()
#40 0x915a5648 in aeDispatchAppleEvent ()
#41 0x915a557e in dispatchEventAndSendReply ()
#42 0x915a5425 in aeProcessAppleEvent ()
#43 0x9292c9a5 in AEProcessAppleEvent ()
#44 0x94e49f91 in _DPSNextEvent ()
#45 0x94e49630 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#46 0x94e4266b in -[NSApplication run] ()
#47 0x002d17e0 in main (argc=1, argv=0xbffff4f4) at SDLMain.m:229
(gdb) frame 5
#5  0x001208ea in Map::pathfindLocalRessource (this=0xbfff4178, building=0x1f269200, canSwim=false, x=348, y=280, dx=0x1edb562c, dy=0x1edb5630) at src/Map.cpp:4556
4556 assert(isInLocalGradient(x, y, bx, by));
(gdb) print x
$8 = 348
(gdb) print y
$9 = 280
(gdb) print bx
$10 = 349
(gdb) print by
$11 = 295
(gdb) frame 6
#6  0x0020f4a2 in Unit::handleMovement (this=0x1edb5600) at src/Unit.cpp:1772
1772 if (map->pathfindLocalRessource(attachedBuilding, canSwim, posX, posY, &dx, &dy))
(gdb) print canSwim
$12 = false
(gdb) print posX  
$13 = 348
(gdb) print posY
$14 = 280
(gdb) frame 7
#7  0x00212a3a in Unit::endOfAction (this=0x1edb5600) at src/Unit.cpp:2296
2296 handleMovement();
(gdb) frame 8
#8  0x00212f47 in Unit::syncStep (this=0x1edb5600) at src/Unit.cpp:526
526 endOfAction();
(gdb)

Kieran <k776>
Group administrator
Wed 31 Dec 2008 07:16:28 PM UTC, comment #1: 

set severity to blocker as the autosavegame does not allow to continue the game.

Leo Wandersleb <giszmo>
Group Member
Wed 31 Dec 2008 05:28:26 PM UTC, original submission:  

Giszmo and I got the following later on in a network game. The latency had increased to 10s, and I'd just placed about 20 clearing flags. Heres the BT (the Mac backtrace contains a lot more useless info than linux).






Assertion failed: (isInLocalGradient(x, y, bx, by)), function pathfindLocalRessource, file src/Map.cpp, line 4556.

Program received signal SIGABRT, Aborted.
0x90766e42 in __kill ()
(gdb) bt
#0  0x90766e42 in __kill ()
#1  0x90766e34 in kill$UNIX2003 ()
#2  0x907d923a in raise ()
#3  0x907e5679 in abort ()
#4  0x907da3db in __assert_rtn ()
#5  0x001208ea in Map::pathfindLocalRessource (this=0xbfff4178, building=0x18836c00, canSwim=true, x=57, y=40, dx=0x14c4563c, dy=0x14c45640) at src/Map.cpp:4556
#6  0x0020f4a2 in Unit::handleMovement (this=0x14c45610) at src/Unit.cpp:1772
#7  0x00212a3a in Unit::endOfAction (this=0x14c45610) at src/Unit.cpp:2296
#8  0x00212f47 in Unit::syncStep (this=0x14c45610) at src/Unit.cpp:526
#9  0x001fdfe3 in Team::syncStep (this=0x176d6000) at src/Team.cpp:949
#10 0x000ac31c in Game::syncStep (this=0xbfff347c, localTeam=1) at src/Game.cpp:1208
#11 0x0009e27e in Engine::run (this=0xbfff3440) at src/Engine.cpp:373
#12 0x00175e6f in MultiplayerGame::startEngine (this=0x16e2000) at src/MultiplayerGame.cpp:638
#13 0x00177652 in MultiplayerGame::recieveMessage (this=0x16e2000, message=@0xbfffa794) at src/MultiplayerGame.cpp:506
#14 0x00223c51 in YOGClient::update (this=0x14c88b20) at src/YOGClient.cpp:264
#15 0x00235c14 in YOGClientLobbyScreen::onTimer (this=0xbfffab54, tick=135619) at src/YOGClientLobbyScreen.cpp:251
#16 0x002ccfd7 in GAGGUI::TabScreen::onTimer (this=0xbfffaa50, tick=135619) at libgag/src/GUITabScreen.cpp:246
#17 0x0029df43 in GAGGUI::Screen::dispatchTimer (this=0xbfffaa50, tick=135619) at libgag/src/GUIBase.cpp:627
#18 0x0029e609 in GAGGUI::Screen::execute (this=0xbfffaa50, gfx=0x14cae990, stepLength=40) at libgag/src/GUIBase.cpp:445
#19 0x00245832 in YOGLoginScreen::handleYOGClientEvent (this=0xbfffb048, event=@0xbfffac48) at src/YOGLoginScreen.cpp:177
#20 0x00221de7 in YOGClient::sendToListeners (this=0x14c88b20, event=@0xbfffad90) at src/YOGClient.cpp:537
#21 0x00222cfa in YOGClient::update (this=0x14c88b20) at src/YOGClient.cpp:161
#22 0x00245425 in YOGLoginScreen::onTimer (this=0xbfffb048, tick=5288) at src/YOGLoginScreen.cpp:144
#23 0x0029df43 in GAGGUI::Screen::dispatchTimer (this=0xbfffb048, tick=5288) at libgag/src/GUIBase.cpp:627
#24 0x0029e609 in GAGGUI::Screen::execute (this=0xbfffb048, gfx=0x14cae990, stepLength=40) at libgag/src/GUIBase.cpp:445
#25 0x000f54a2 in Glob2::mutiplayerYOG (this=0xbfffe6b3) at src/Glob2.cpp:110
#26 0x000f5d4f in Glob2::run (this=0xbfffe6b3, argc=1, argv=0xe15ad0) at src/Glob2.cpp:334
#27 0x000f6100 in SDL_main (argc=1, argv=0xe15ad0) at src/Glob2.cpp:409
#28 0x002d104c in -[SDLMain applicationDidFinishLaunching:] (self=0x0, _cmd=0x916cd944, note=0xe16af0) at SDLMain.m:302
#29 0x90c7be1a in _nsnote_callback ()
#30 0x949108da in __CFXNotificationPost ()
#31 0x94910bb3 in _CFXNotificationPostNotification ()
#32 0x90c79080 in -[NSNotificationCenter postNotificationName:object:userInfo:] ()
#33 0x90c828c8 in -[NSNotificationCenter postNotificationName:object:] ()
#34 0x94ed349a in -[NSApplication _postDidFinishNotification] ()
#35 0x94ed33a9 in -[NSApplication _sendFinishLaunchingNotification] ()
#36 0x94e4cec3 in -[NSApplication(NSAppleEventHandling) _handleAEOpen:] ()
#37 0x94e4c6bc in -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] ()
#38 0x90ca143f in -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] ()
#39 0x90ca114f in _NSAppleEventManagerGenericHandler ()
#40 0x915a5648 in aeDispatchAppleEvent ()
#41 0x915a557e in dispatchEventAndSendReply ()
#42 0x915a5425 in aeProcessAppleEvent ()
#43 0x9292c9a5 in AEProcessAppleEvent ()
#44 0x94e49f91 in _DPSNextEvent ()
#45 0x94e49630 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#46 0x94e4266b in -[NSApplication run] ()
#47 0x002d17e0 in main (argc=1, argv=0xbffff4f4) at SDLMain.m:229
(gdb) frame 5
#5  0x001208ea in Map::pathfindLocalRessource (this=0xbfff4178, building=0x18836c00, canSwim=true, x=57, y=40, dx=0x14c4563c, dy=0x14c45640) at src/Map.cpp:4556
4556 assert(isInLocalGradient(x, y, bx, by));
Current language:  auto; currently c++
(gdb) print x
$1 = 57
(gdb) print y
$2 = 40
(gdb) print bx
$3 = 72
(gdb) print by
$4 = 41
(gdb) frame 6
#6  0x0020f4a2 in Unit::handleMovement (this=0x14c45610) at src/Unit.cpp:1772
1772 if (map->pathfindLocalRessource(attachedBuilding, canSwim, posX, posY, &dx, &dy))
(gdb) print canSwim
$5 = true
(gdb) print posX  
$6 = 57
(gdb) print posY
$7 = 40
(gdb) frame 7
#7  0x00212a3a in Unit::endOfAction (this=0x14c45610) at src/Unit.cpp:2296
2296 handleMovement();
(gdb) frame 8
#8  0x00212f47 in Unit::syncStep (this=0x14c45610) at src/Unit.cpp:526
526 endOfAction();
(gdb)

Kieran <k776>
Group administrator

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #17182:  Auto_save.game.tar.gz added by giszmo (70KiB - application/x-gzip)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by giszmo (Updated the item)
  • -email is unavailable- added by k776 (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 10 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2009-01-06 giszmo StatusNone Fixed
        Assigned togenixpro giszmo
        Open/ClosedOpen Closed
        Operating SystemMac OS None
    2008-12-31 giszmo StatusConfirmed None
        Operating SystemNone Mac OS
    2008-12-31 k776 StatusNone Confirmed
        Operating SystemMac OS None
    2008-12-31 giszmo Severity4 - Important 5 - Blocker
    2008-12-31 giszmo Attached File- Added Auto_save.game.tar.gz, #17182

    Back to the top

    Powered by Savane 3.13-4b48.
    Corresponding source code