Update of bug #22230 (project freeciv):
Status: None => Confirmed
Release: => SVN r25188
Follow-up Comment #4:
I played whack-a-mole with this a bit today. Returning PF_IMPOSSIBLE_MC as I
described in comment #2 removes some cases, but I found others in further
autogame testing. Changing pf_*_node_iterate_until() to return FALSE if ptile
== NULL, and only initialise node when it is provided seems to avoid crashes
in the core pathfinding code, but causes assertion failures in other parts of
the code (and occasional crashes). The specific problem chunks from patch
#4678 are related to the case where the starting position for the path is to
be ignored (either set TB_IGNORE or cannot invade), causing the initial node
to have the tile set to NULL (to indicate no path is possible).: reverting
these chunks resulted in a lack of crashes on the model of those in the
original report and comment #1, but I don't believe this to be the correct
solution, as it means that the pathfinding code proceeds with a known invalid
node (for which the invalidity is not being tracked).
I've attached a patch that removes the symptom, but won't apply it to trunk,
rather hoping someone else with better understanding will investigate further
(perhaps using my results as a starting point).
Note that I do not believe the backtrace in comment #3 is directly related:
the call path is sufficiently different that I can't understand how the change
in my patch could cause this not to occur.
Additional Item Attachment:
File name: revert-selected-parts-of-patch-4768.patch Size:2 KB
Reply to this item at:
Message sent via/by Gna!
Freeciv-dev mailing list