Closed cleanrock closed 7 years ago
Raw-move is kinda new. Apparantly the way Pathing::GetApproximateLength() works was changed. Circuit uses engine-pathfinder only on Init-event and only for pairs of metal spots, should be reproducible. Which map was it?
Nuclear_Winter_v1
assert failed with 103.0.1-1492-g0067dfb (that is newer than 7a4aad)
spring: /home/evgenij/games/spring/spring/rts/Sim/MoveTypes/MoveMath/MoveMath.cpp:138: static CMoveMath::BlockType CMoveMath::IsBlockedNoSpeedModCheckThreadUnsafe(const MoveDef&, int, int, const CSolidObject*): Assertion `Threading::IsMainThread()' failed.
Didn't get to error in OP, or it was fixed in engine. Anyway, those are engine quirks/bugs.
Can't reproduce with latest engine commit, all returned values of path lengths seems fine in "relwithdebinfo" mode, as "debug" mode gives Assertion `Threading::IsMainThread()' failed... maybe because Loading_MT is true in springsettings.cfg. Circuit doesn't do separate threads on Init event.
I see same problem with 104.0.1-0-g0067dfb39, i always run with default LoadingMT (0).
I can confirm that LoadingMT=1 is the cause of
spring: /home/evgenij/games/spring/spring/rts/Sim/MoveTypes/MoveMath/MoveMath.cpp:138: static CMoveMath::BlockType CMoveMath::IsBlockedNoSpeedModCheckThreadUnsafe(const MoveDef&, int, int, const CSolidObject*): Assertion `Threading::IsMainThread()' failed.
But still can't reproduce SIGFPE. Will try to update tools and test with new boost...
My script:
[GAME]
{
HostIP=127.0.0.1;
IsHost=1;
MyPlayerName=Host;
GameType=Zero-K v1.5.9.4;
Mapname=Nuclear_Winter_v1;
GameID=00000000000000000000000000000000;
startpostype=0;
[modoptions]
{
enableunlocks=0;
MinSpeed=1;
MaxSpeed=30;
//factorycostmult=0.5;
//pathfinder=qtpfs;
}
[PLAYER1]
{
Name=Host;
Team=0;
spectator=1;
}
[AI0]
{
Name=CircuitAI1;
ShortName=CircuitAI;
Version=stable;
Team=0;
IsFromDemo=0;
Host=1;
[Options]
{
}
}
[AI1]
{
Name=CAI1;
ShortName=CAI;
Version=<not-versioned>;
Team=1;
IsFromDemo=0;
Host=1;
[Options]
{
}
}
[AI2]
{
Name=CircuitAI2;
ShortName=CircuitAI;
Version=stable;
Team=2;
IsFromDemo=0;
Host=1;
[Options]
{
}
}
[AI3]
{
Name=CAI2;
ShortName=CAI;
Version=<not-versioned>;
Team=3;
IsFromDemo=0;
Host=1;
[Options]
{
}
}
[AI4]
{
Name=CAI3;
ShortName=CAI;
Version=<not-versioned>;
Team=4;
IsFromDemo=0;
Host=1;
[Options]
{
}
}
[TEAM0]
{
TeamLeader=1;
AllyTeam=0;
RGBColor=0.976471 1 0;
Side=Robots;
Handicap=0;
}
[TEAM1]
{
TeamLeader=1;
AllyTeam=1;
RGBColor=0.509804 0.498039 1;
Side=Robots;
Handicap=0;
}
[TEAM2]
{
TeamLeader=1;
AllyTeam=0;
RGBColor=0.976471 1 0;
Side=Robots;
Handicap=0;
}
[TEAM3]
{
TeamLeader=1;
AllyTeam=1;
RGBColor=0.509804 0.498039 1;
Side=Robots;
Handicap=0;
}
[TEAM4]
{
TeamLeader=1;
AllyTeam=1;
RGBColor=0.976471 1 0;
Side=Robots;
Handicap=0;
}
[ALLYTEAM0]
{
NumAllies=0;
}
[ALLYTEAM1]
{
NumAllies=0;
}
}
Finally updated my rig. Compiled spring 104.0.1-55-g5d0ff28 maintenance with CMAKE_BUILD_TYPE=DEBUG, tested script above with ZK 1.5.10.3. And was unable to reproduce assert hit.
I am not sure this is circuits fault. spring version: 7a4aad71b20cdf2e407070eaecb119f8e2b3d1f2 Backtrace: