2019-11-17 16:07 CET

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0000580Spring engineGeneralpublic2008-01-05 19:57
Reporterimbaczek 
Assigned Toimbaczek 
PrioritynormalSeveritymajorReproducibilityalways
StatusresolvedResolutionfixed 
Product Version 
Target VersionFixed in Version 
Summary0000580: area reclaim sometimes orders units to reclaim outside the defined circle
DescriptionHow I reproduced it:
- give 3 cons
- have two groups of flashes fight each other
- issue area reclaim over one group

Additional Informationin the demo, do a .team 3 after all 3 groups of flashes start fighting. or better, do a .skip 60 right after start.

replay is recorded in r4171.
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files

-Relationships
+Relationships

-Notes

~0001069

imbaczek (reporter)

it seems that features can get reordered and change their ids. here's some output from logging attached to SlowUpdate:

[snip]
rec feat: 236 treetype7
rec feat: 155 treetype12
Flash: Can't reach destination!
Flash: Can't reach destination!
Flash: Can't reach destination!
Flash: Can't reach destination!
rec feat: 236 armflash_dead
[snip]

~0001070

Pendrokar (reporter)

A lot of people have have had this, but no one knows how to reproduce it or when they happen!

~0001072

Kloot (developer)

Last edited: 2007-08-10 15:03

Possible workaround: save the reclaim position p and radius r in
each reclaim command queued in FindReclaimableFeatureAndReclaim(),
then check if a feature lies within r of p when the unit executes
that command in ExecuteReclaim().

~0001073

imbaczek (reporter)

That will work, but it's a pretty clumsy hack. IMO the root cause of this needs to be found and fixed. I'm investigating the issue for 4 hours now and thank God grep doesn't mind being abused.

~0001074

Kloot (developer)

It would be about as clumsy as r4170. ;) You're right
though, the solution should be more structural.

~0001075

imbaczek (reporter)

r4170 closes potential exploits (not tested this, hopefully trepan thought about it somewhere else) from LuaUI side and also is the definite safeguard against a very ugly cheat in case of a regression somewhere, so it's not that bad ;p

Anyway, the problem is somehow connected with CFeatureSet and free IDs, not sure what and where exactly, but for now it seems that a used feature ID gets freed... still hunting.

~0001076

imbaczek (reporter)

Got it. When the reclaim finishes, the reclaimed feature is put on a blacklist to delete it sometime later, but the reclaim command stays. If the reclaimed feature id is in the meantime recycled (presumably during the same Update or SlowUpdate or whatever, don't know too much about what happens when in spring yet), the reclaimer thinks that it didn't finish its job. I'll commit a fix soon.

~0001077

imbaczek (reporter)

fixed in r4174.

~0001721

tvo (reporter)

This still happens occasionally. Maybe the time before an ID is reused should be higher?

~0001727

imbaczek (reporter)

do you have a replay?

attached a replay that shows how to try to reproduce the bug. BA591, revision around 5260.

~0001728

NOiZE (reporter)

Uploaded a replay of a rather long game which shows the bug:

080105-Comet Catcher Redux-0.76b1.sdf

BA60
Spring 76b1

~0001730

imbaczek (reporter)

noize: any hints what to look after and when?

~0001732

NOiZE (reporter)

@ 18:00 you see a conveh in the middle of the map with the bug

~0001735

imbaczek (reporter)

Guess I didn't fix the issue, I just made the probability low enough for this to not happen in my tests. At least it's repeatable.

~0001736

imbaczek (reporter)

hopefully fixed again in r5275 (in the provided replay convehs don't wander anymore.)
+Notes

-Issue History
Date Modified Username Field Change
2007-08-10 12:55 imbaczek New Issue
2007-08-10 12:55 imbaczek File Added: 070810-SmallDivide-0.75b2+-2.sdf
2007-08-10 12:57 imbaczek Additional Information Updated
2007-08-10 13:04 imbaczek Additional Information Updated
2007-08-10 14:15 imbaczek Note Added: 0001069
2007-08-10 15:00 Pendrokar Note Added: 0001070
2007-08-10 15:02 Kloot Note Added: 0001072
2007-08-10 15:03 Kloot Note Edited: 0001072
2007-08-10 15:03 Kloot Note Edited: 0001072
2007-08-10 15:24 imbaczek Note Added: 0001073
2007-08-10 15:43 Kloot Note Added: 0001074
2007-08-10 16:02 imbaczek Note Added: 0001075
2007-08-10 16:23 imbaczek Note Added: 0001076
2007-08-11 00:33 imbaczek Status new => resolved
2007-08-11 00:33 imbaczek Resolution open => fixed
2007-08-11 00:33 imbaczek Assigned To => imbaczek
2007-08-11 00:33 imbaczek Note Added: 0001077
2008-01-05 12:12 tvo Status resolved => feedback
2008-01-05 12:12 tvo Resolution fixed => reopened
2008-01-05 12:12 tvo Note Added: 0001721
2008-01-05 14:07 imbaczek Note Added: 0001727
2008-01-05 14:08 imbaczek File Added: reproducing-howto.sdf
2008-01-05 15:20 NOiZE File Added: 080105-Comet Catcher Redux-0.76b1.sdf
2008-01-05 15:21 NOiZE Note Added: 0001728
2008-01-05 16:14 imbaczek Note Added: 0001730
2008-01-05 16:28 NOiZE Note Added: 0001732
2008-01-05 18:22 imbaczek Note Added: 0001735
2008-01-05 19:57 imbaczek Status feedback => resolved
2008-01-05 19:57 imbaczek Resolution reopened => fixed
2008-01-05 19:57 imbaczek Note Added: 0001736
+Issue History