Page 1 of 2

[16.18][Linux] Crash on map load: "Error RobotWithLogisticInterface.cpp:125 ..."

Posted: Tue Jan 23, 2018 12:55 pm
by joihoin
The game crashes every time I try to load my game which was saved in 0.16.16.

Snippets from log. (See full log in attachments).
#4 0x0000000000aedebd in RobotWithLogisticInterface::checkConsistency() const at /tmp/factorio-W0iWJ0/src/Entity/RobotWithLogisticInterface.cpp:125
32.160 Error RobotWithLogisticInterface.cpp:125: !this->stationingStateNeedsRoboportTarget() || this->getPortTarget() != nullptr was not true
I had noticed earlier that some bots would get stuck after completing their mission. Might be caused by mods. My suspicion is that they get stuck when a player moved the target roboport using the PickerExtended mod.

I attached a "good" save file where the game isn't crashing, and a "bad" save file, which is the first to crash when loading.

My mods folder is too large to upload so I will only upload mod-list.json.

Mods can be downloaded here:
https://drive.google.com/file/d/1UifLf4 ... sp=sharing

EDIT: Link to mods.zip.

Re: [16.18][Linux] Crashes when loading game

Posted: Tue Jan 23, 2018 1:06 pm
by joihoin
I am seeing some other reports about failed validation on save. I guess devs started validating on save/load, which is nice but it won't magically repair my now broken saves. :(

Re: [16.18][Linux] Crash on map load: "Error RobotWithLogisticInterface.cpp:125 ..."

Posted: Tue Jan 23, 2018 1:54 pm
by Rseding91
It looks like this is the same issue as here: viewtopic.php?f=182&t=56471

Do you remember using the upgrade planner between when the save worked and when it doesn't work now? I'm still looking for how it's possible to have a logistic robot charging at a roboport that's not in any logistic network.

Re: [16.18][Linux] Crash on map load: "Error RobotWithLogisticInterface.cpp:125 ..."

Posted: Tue Jan 23, 2018 1:56 pm
by joihoin
Hmm. I can also reproduce it in 16.16 if I disable the mod Robot_Battery_Research_0.1.1 and try to load the same save file.

Re: [16.18][Linux] Crash on map load: "Error RobotWithLogisticInterface.cpp:125 ..."

Posted: Tue Jan 23, 2018 1:58 pm
by Rseding91
joihoin wrote:Hmm. I can also reproduce it in 16.16 if I disable the mod Robot_Battery_Research_0.1.1 and try to load the same save file.
Can you reproduce it on a small sample map (50x50) with just that mod? If so, that would be great.

Re: [16.18][Linux] Crash on map load: "Error RobotWithLogisticInterface.cpp:125 ..."

Posted: Tue Jan 23, 2018 2:00 pm
by joihoin
Do you remember using the upgrade planner between when the save worked and when it doesn't work now? I'm still looking for how it's possible to have a logistic robot charging at a roboport that's not in any logistic network.
I use the upgrade planner all the time but not with roboports. The current playthrough only has one tier of roboports.

I have seen roboports lose logistic coverage during power outages though.

Re: [16.18][Linux] Crash on map load: "Error RobotWithLogisticInterface.cpp:125 ..."

Posted: Tue Jan 23, 2018 2:03 pm
by joihoin
Can you reproduce it on a small sample map (50x50) with just that mod? If so, that would be great.
I can try tonight but it's still a question of how the bots get stuck in the first place.

To summarize findings:
Given a save game where bots are stuck
0.16.16: I can load the game iff i have Robot_Battery_Research_0.1.1 enabled.
0.16.18: Can't load the game at all.

Re: [16.18][Linux] Crash on map load: "Error RobotWithLogisticInterface.cpp:125 ..."

Posted: Tue Jan 23, 2018 2:07 pm
by Rseding91
The game performs the consistency check when prototype data changes (removing a mod is changing it).

Re: [16.18][Linux] Crash on map load: "Error RobotWithLogisticInterface.cpp:125 ..."

Posted: Tue Jan 23, 2018 2:17 pm
by joihoin
[16.16]
Hehe. I got a save for you where bots are stuck. No mods at all.
I ordered the bots to deconstruct solar panels at the bottom of the map and now the roboport lost it's power.
Enabling power again doesn't even help them get back.

EDIT: It doesn't crash the game though when loading in 16.18. Neither does the mod seem to have any effect. Will try some more later with logistic bots.

Re: [16.18][Linux] Crash on map load: "Error RobotWithLogisticInterface.cpp:125 ..."

Posted: Tue Jan 23, 2018 2:23 pm
by joihoin
The game performs the consistency check when prototype data changes (removing a mod is changing it).
Oh I see. So it might have nothing to do with that mod in particular.

Re: [16.18][Linux] Crash on map load: "Error RobotWithLogisticInterface.cpp:125 ..."

Posted: Tue Jan 23, 2018 2:23 pm
by joihoin
I can load Bots Stuck.zip in 0.16.18 and the bots are still stuck.

Re: [16.18][Linux] Crash on map load: "Error RobotWithLogisticInterface.cpp:125 ..."

Posted: Tue Jan 23, 2018 2:29 pm
by Rseding91
joihoin wrote:[16.16]
Hehe. I got a save for you where bots are stuck. No mods at all.
I ordered the bots to deconstruct solar panels at the bottom of the map and now the roboport lost it's power.
Enabling power again doesn't even help them get back.

EDIT: It doesn't crash the game though when loading in 16.18. Neither does the mod seem to have any effect. Will try some more later with logistic bots.
They're stuck because you have no storage chests. The game is even telling you so with the alert :P If it doesn't crash on loading then it's not the original issue here.

Re: [16.18][Linux] Crash on map load: "Error RobotWithLogisticInterface.cpp:125 ..."

Posted: Tue Jan 23, 2018 2:45 pm
by joihoin
Sorry I'm rushing things. I had to leave rhe computer when I "accidentally" got them stuck and called it a day.

Re: [16.18][Linux] Crash on map load: "Error RobotWithLogisticInterface.cpp:125 ..."

Posted: Tue Jan 23, 2018 7:34 pm
by joihoin
I'm having a hard time reproducing it. I've started considering race conditions around autosave. I'ts interesting that my bad save has both logistic AND construction bots stuck...

Re: [16.18][Linux] Crash on map load: "Error RobotWithLogisticInterface.cpp:125 ..."

Posted: Tue Jan 23, 2018 7:38 pm
by Rseding91
Auto-save pauses processing any game logic while it runs so there won't be any kind of race condition involved.

My current theory is something with the upgrade planner and how it works we haven't accounted for in the robot code which leaves them broken.

Re: [16.18][Linux] Crash on map load: "Error RobotWithLogisticInterface.cpp:125 ..."

Posted: Tue Jan 23, 2018 8:53 pm
by joihoin
My current theory is something with the upgrade planner and how it works we haven't accounted for in the robot code which leaves them broken.
OK, let's try that. In my current game I only use upgrade planner to upgrade belts, splitters, underground belts and loaders (from Loaders Redux).

Out of those, Loaders seem like the best candidates to investigate. Maybe they interrupt the current robot path somehow when attached to a logistics chest and upgraded. Seems far fetched though.

I noticed that robots are always stuck very close to roboports. What happens when they are waiting in line for roboports for a very long time?

Re: [16.18][Linux] Crash on map load: "Error RobotWithLogisticInterface.cpp:125 ..."

Posted: Tue Jan 23, 2018 9:18 pm
by joihoin
I'm still entertaining the idea of moving roboports with PickerExtended. I get bots to get stuck if they I move the roboport just as a bot is leaving it. I'll try to make a demo save.

Re: [16.18][Linux] Crash on map load: "Error RobotWithLogisticInterface.cpp:125 ..."

Posted: Tue Jan 23, 2018 10:06 pm
by Rseding91
joihoin wrote:I'm still entertaining the idea of moving roboports with PickerExtended. I get bots to get stuck if they I move the roboport just as a bot is leaving it. I'll try to make a demo save.
Why would a picker mod let you teleport entities? That seems completely outside the realm of what the mod name would suggest it does.

Re: [16.18][Linux] Crash on map load: "Error RobotWithLogisticInterface.cpp:125 ..."

Posted: Tue Jan 23, 2018 10:06 pm
by joihoin
bots_stuck.png
bots_stuck.png (759.74 KiB) Viewed 7391 times
I can't reproduce the crash but I definitely have bots stuck this time.
1. Bots may get stuck when leaving the roboport while I am moving it.
2. Bots may get stuck when going in for charging. In this case the bots still had work to do.

My hypothesis is that since the logistic work they are doing is in one network and I move the roboport out of range, they are charging in a separate network.

I don't exactly understand the assertion that is failing but perhaps one of the networks may not exist anymore in the save file. What happens when I move the roboport back in range while the bot is stuck? There will be only one logistic network again since they merge. Perhaps the bot still has a pointer to the newly created network?

Re: [16.18][Linux] Crash on map load: "Error RobotWithLogisticInterface.cpp:125 ..."

Posted: Tue Jan 23, 2018 10:33 pm
by Rseding91
Ok, teleporting the roboport was what caused it. Any robots charging or waiting to charge would break in that case.

It's now fixed for the next version of 0.16. Existing saves with the problem are broken - you'll need to load previous saves.