2019-11-16 21:57 CET

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0000748Spring engineGeneralpublic2007-12-30 23:06
Reportertvo 
Assigned ToAuswaschbar 
PrioritynormalSeveritycrashReproducibilityalways
StatusresolvedResolutionfixed 
Product Version 
Target VersionFixed in Version 
Summary0000748: singlestep immediately crashes the game
DescriptionWhen pressing the o key with default keybinding setup, the game crashes to desktop immediately. By default, o is bound to 'singlestep'.

The game wasn't paused. Singlestep should probably be ignored altogether in this case.
Additional Information(0) _Deque_iterator
    /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/bits/stl_deque.h:132

(1) ??
    /var/lib/buildbot/spring_slave/mingw32-4.2/build/rts/Game/GameServer.cpp:803

(2) ??
    /var/lib/buildbot/spring_slave/mingw32-4.2/build/rts/Game/Game.cpp:1129

(3) ??
    /var/lib/buildbot/spring_slave/mingw32-4.2/build/rts/Game/Game.cpp:792

(4) ??
    /var/lib/buildbot/spring_slave/mingw32-4.2/build/rts/System/Main.cpp:1001

(5) Run(int, char**)
    /var/lib/buildbot/spring_slave/mingw32-4.2/build/rts/System/Main.cpp:1115

(6) WinMain@16
    /var/lib/buildbot/spring_slave/mingw32-4.2/build/rts/System/Main.cpp:1178



[22:43:15] <kleaut> else if (cmd == "singlestep") {
[22:43:16] <kleaut> gameServer->CreateNewFrame(false);
[22:43:16] <kleaut> }
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files

-Relationships
+Relationships

-Notes

~0001588

tvo (reporter)

This happens only for clients, not the host itself.

Probably the issue is just that there is no check for gameServer != NULL.

~0001589

Auswaschbar (reporter)

Should it print a warning ala "Singlestep can only be used when the game is paused" or just silently ignore?

~0001590

tvo (reporter)

Additionally, kleaut checked CreateNewFrame: it does not acquire a mutex, so race conditions are probably possible for the host.

~0001591

tvo (reporter)

> Should it print a warning ala "Singlestep can only be used when the game is paused" or just silently ignore?
Silently ignore IMHO.

~0001592

Kloot (developer)

"Additionally, kleaut checked CreateNewFrame: it does not acquire a mutex, so race conditions are probably possible for the host."

Didn't look closely enough, it does actually (but not right at the top).

~0001593

Auswaschbar (reporter)

Singlestep will get ignored when:
- not host
or
- not paused

And there was a mutex_lock in CreateNewFrame, but it locked too late.
+Notes

-Issue History
Date Modified Username Field Change
2007-12-30 22:51 tvo New Issue
2007-12-30 22:52 tvo Severity minor => crash
2007-12-30 22:54 tvo Note Added: 0001588
2007-12-30 22:57 Auswaschbar Note Added: 0001589
2007-12-30 22:58 tvo Note Added: 0001590
2007-12-30 22:59 tvo Note Added: 0001591
2007-12-30 23:03 Kloot Note Added: 0001592
2007-12-30 23:06 Auswaschbar Status new => resolved
2007-12-30 23:06 Auswaschbar Resolution open => fixed
2007-12-30 23:06 Auswaschbar Assigned To => Auswaschbar
2007-12-30 23:06 Auswaschbar Note Added: 0001593
+Issue History