Page 1 of 1

[boskid][1.1.101] Train incorrectly reports "Destination full"

Posted: Sun Jan 07, 2024 4:13 pm
by husnikadam
Hi again,
I have an available train station and a train scheduled to go there reports "destination full" even though there is a valid path to it. I need to set the train to manual and back to automatic to make it go there. Same-ish issue as here: viewtopic.php?f=11&t=98310

Details regarding my setup: 40 trains with two stops - 39 outpost stations and 1 outpost source station:
factorio_Ky7wdNizg8.png
factorio_Ky7wdNizg8.png (7.49 KiB) Viewed 1402 times
factorio_4oAhVIHXr1.png
factorio_4oAhVIHXr1.png (4.99 KiB) Viewed 1402 times
I have build a last outpost containing a train and send the trail to source station. At that point I expect a train, which was already waiting at the outpost source station, to automatically go to latest outpost, yet it reports destination full. This happened to me for the second time yet. Unable to reproduce the issue on demand. Here I attach my savefile containing the bug https://drive.google.com/file/d/1axuXJE ... JOvjG/view

Latest 1.1.101 game version, windows, steam. No mods other than rate calculator and flib. More images here:
factorio_XHjrjaNdxi.png
factorio_XHjrjaNdxi.png (2.23 MiB) Viewed 1402 times
factorio_vYIPcteaFS.png
factorio_vYIPcteaFS.png (1.1 MiB) Viewed 1402 times
Footnote: This is my 2nd atempt posting this. I am doing my best to help improve the game, but my first post got deleted, likely because I replied in the linked post above in the resolved bugs section. Next time I am begging you - consider moving the reply into a new post. Or just notify me, that I need to do it myself rather than deleting it. Thank you from the bottom of my hearth.

Re: [boskid][1.1.101] Train incorrectly reports "Destination full"

Posted: Mon Jan 08, 2024 8:19 am
by boskid
Thanks for the report. Issue is now fixed for 1.1.102.

I was able to reproduce the issue consistently, it is related to train stop being built from a blueprint (it has a station name already when a ghost is revived) and it is related to entities build order (a train stop was built before a rail next to that train stop).

Because train stop was built before a rail next to it, fault was that it was not triggering limit logic that would try to bring a train, for obvious reasons: since it is not attached to a rail, it would be a no_path, however in this case it is important to temporarily force related trains into no_path state because in this state a train will actively try to search paths when rails are placed compared to a destination_full state in which case train was not woken up by rails being built because in that state it is expected to be notified by the train stop itself when it becomes not full. Since the train stop was not full at the beginning and it was not raising any notifications when rails were later built, a train was never told there is a non full train stop that is reachable.

Re: [boskid][1.1.101] Train incorrectly reports "Destination full"

Posted: Tue Jan 09, 2024 10:27 pm
by robot256
boskid wrote:
Mon Jan 08, 2024 8:19 am
in this case it is important to temporarily force related trains into no_path state because in this state a train will actively try to search paths when rails are placed compared to a destination_full state in which case train was not woken up by rails being built because in that state it is expected to be notified by the train stop itself when it becomes not full. Since the train stop was not full at the beginning and it was not raising any notifications when rails were later built, a train was never told there is a non full train stop that is reachable.
Does the fix have any effect on performance if there is a trainstop with no rails for a long period of time? Just curious.

Re: [boskid][1.1.101] Train incorrectly reports "Destination full"

Posted: Tue Jan 09, 2024 11:04 pm
by boskid
robot256 wrote:
Tue Jan 09, 2024 10:27 pm
Does the fix have any effect on performance if there is a trainstop with no rails for a long period of time? Just curious.
Given how this question is stated: No.

This additional limit logic trigger will just cause some trains to switch from destination_full state into no_path state, but as long as a train stop is not attached to any rails it will be skipped by the trains pathfinder searches and so if there are no valid goals (train stop not connected to a rail is not a valid goal) the trains pathfinder will early return and will have no measurable effect.

If that train stop becomes attached to a rail then it would be a different story because in that case every time a rail is built but without making that train stop reachable it will trigger trains pathfinder to try find a path to a now valid goal but if there is no path it will fail only after visiting entire network which is expensive.