2025-07-19 13:12 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0004467Spring engineAIpublic2014-07-03 16:12
ReporterAnarchid 
Assigned Toabma 
PrioritynormalSeveritymajorReproducibilityalways
StatusresolvedResolutionfixed 
Product Version97.0.1+git 
Target VersionFixed in Version 
Summary0004467: Spring crashes when multiple AI's are sent SkirmishAIMessages and at least one does implement.
DescriptionI've implemented LuaMessage in Shard, and in using it, discovered that Spring crashes under the following conditions:

1) At least one AI that implements LuaMessage is added to a game that sends SkirmishAIMessage.
2) At least one other AI **of any sort** is added.
3) The issue does NOT happen when game only sends SkirmishAIMessages to only one of the AI teams.

Playing against just one Shard works fine.

This is not a Shard issue however: it also plagues Java AI's, which do not even need to manually implement LuaMessage - the wrapper does it for them.
Additional InformationCrash infolog with Shard on self-compiled Spring: http://paste.springfiles.com/view/5f6efcf3
Crash infolog with Shard on buildbot-compiled 97.0.1-135: http://paste.springfiles.com/view/4905f904
Crash infolog with (java) FreundAI on buildbot-compiled 97.0.1-135: http://paste.springfiles.com/view/890071e7

On attempt to run replay: "Demofile /home/anarchid/.spring/demos/20140702_223612_Avalanche_97.0.1-135-gf161bef develop.sdf corrupt or created by a different version of Spring, expects version ."

Corrupt replay occurs both on -135 and on locally compiled -129.

Game: Zero-K 1.2.7.3 (sends a LuaMessage with json-encoded list of metal spots to each local AI on game start).
Git version of Shard (https://github.com/Tarendai/Shard).
Used FreundAI as representative of the JavaAI kind (https://github.com/DeinFreund/FreundAI).

Replay attached.
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files

-Relationships
+Relationships

-Notes

~0013405

Anarchid (reporter)

Replay not attached because it doesn't let me for some reason.

Some extra info: Crash happens exactly when second AI receives the SkirmishAIMessage. Adding any amount of delay between SAMs of different AI's doesn't prevent the crash, but postpones it until the second AI gets the SAM.

Second AI which crashes on SAM doesn't have to implement the SAM. In fact, it can be ZK's CAI or even Chickens.

~0013406

DeinFreund (reporter)

Tried it on Win7(autobuilds) and as expected the result is the same(crash).

97.0.1-122-gbab82d5
http://paste.springfiles.com/view/3eba9d21

97.0.1-135-gf161bef
http://paste.springfiles.com/view/7779b66b

~0013407

abma (administrator)

translated:

C:\\Users\\User\\Documents\\My Games\\Spring\\engine\\97.0.1-135-gf161bef\\spring.exe 0x0091C134 rts/ExternalAI/EngineOutHandler.cpp:532
C:\\Users\\User\\Documents\\My Games\\Spring\\engine\\97.0.1-135-gf161bef\\spring.exe 0x005D77F7 rts/Lua/LuaUnsyncedCtrl.cpp:2756
C:\\Users\\User\\Documents\\My Games\\Spring\\engine\\97.0.1-135-gf161bef\\spring.exe 0x0099F6C0 ldo.cpp:0
C:\\Users\\User\\Documents\\My Games\\Spring\\engine\\97.0.1-135-gf161bef\\spring.exe 0x009A2AA9 lvm.cpp:0
C:\\Users\\User\\Documents\\My Games\\Spring\\engine\\97.0.1-135-gf161bef\\spring.exe 0x0099F980 ldo.cpp:0

~0013408

abma (administrator)

https://github.com/spring/spring/blob/develop/rts/ExternalAI/EngineOutHandler.cpp#L532

crash because wrapperAI is NULL!
+Notes

-Issue History
Date Modified Username Field Change
2014-07-02 23:32 Anarchid New Issue
2014-07-02 23:48 Anarchid Note Added: 0013405
2014-07-03 00:44 DeinFreund Note Added: 0013406
2014-07-03 15:29 abma Note Added: 0013407
2014-07-03 15:34 abma Note Added: 0013408
2014-07-03 16:12 abma Changeset attached => spring develop 4238d1cf
2014-07-03 16:12 abma Assigned To => abma
2014-07-03 16:12 abma Status new => resolved
2014-07-03 16:12 abma Resolution open => fixed
+Issue History