Page 1 of 1

[boskid] [0.18.34] Crash on saving (Build check failed) after adding train signal to 'Cargo Ship' bridge

Posted: Sat Jun 27, 2020 2:25 pm
by VicencRus
Game crush when I save it or when autosave.
It happens only after I place rail signal on bridge of 'Cargo Ship' mod.

Saves was successfull many times in this game before.
Nothing strange happens at the moment of placing the signal, only in next saving (manual or autosave)

After crush the save file is corrupted

Error BuildCheckResult.cpp:94: Build check failed: 2, cant-build-reason.entity-in-the-way(entity-name.rail-signal), name=rail-signal, type=rail-signal, position={321.5000000000, 849.5000000000}, setup=true, owned-by-ghost=false, simulation=false.

Re: [0.18.34] Crash on saving, supposedly because of 'Cargo Ship' mod

Posted: Sat Jun 27, 2020 2:56 pm
by Loewchen
The log does not show a crash.
Post the latest loadable save file. Can you reproduce the crash with that file?

Re: [0.18.34] Crash on saving, supposedly because of 'Cargo Ship' mod

Posted: Sat Jun 27, 2020 3:06 pm
by VicencRus
Sorry, It was wrong log
Here is new one with error and good save

If you will add signal to any bridge and try to save - game will crush
Crash always recurs under these conditions

Re: [0.18.34] Crash on saving (Build check failed) after adding train signal to 'Cargo Ship' bridge

Posted: Wed Aug 05, 2020 11:59 pm
by Reika
I just got an error which seems like the same issue, from my having just added rail chain signals as technical entities to add glow to plants (which worked in a testing save, no less):

It also corrupted the save, though it appears to have put the corruption in a "tmp" file instead, with the original zip remaining functional, which I attached.

Code: Select all

Factorio crashed. Generating symbolized stacktrace, please wait ...
c:\cygwin64\tmp\factorio-build-blwuai\src\entity\railsignalbase.cpp (381): RailSignalBase::checkConsistency
c:\cygwin64\tmp\factorio-build-blwuai\src\entity\railsignalbase.cpp (67): RailSignalBase::save
c:\cygwin64\tmp\factorio-build-blwuai\src\entity\railchainsignal.cpp (48): RailChainSignal::save
c:\cygwin64\tmp\factorio-build-blwuai\src\surface\chunk.cpp (93): Chunk::save
c:\cygwin64\tmp\factorio-build-blwuai\src\surface\surface.cpp (907): Surface::save
c:\cygwin64\tmp\factorio-build-blwuai\src\map\map.cpp (1520): Map::save
c:\cygwin64\tmp\factorio-build-blwuai\src\scenario\scenario.cpp (1005): Scenario::saveMap
c:\cygwin64\tmp\factorio-build-blwuai\src\scenario\scenario.cpp (901): Scenario::saveAs
c:\cygwin64\tmp\factorio-build-blwuai\src\scenario\parallelscenariosaver.cpp (99): ParallelScenarioSaver::doSave
c:\program files (x86)\microsoft visual studio\2017\buildtools\vc\tools\msvc\14.15.26726\include\thr\xthread (230): std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl RazerChromaController::*)(void),RazerChromaController *>,std::default_delete<std::tuple<void (__cdecl RazerChromaController::*)(void),RazerChromaController *> > > >::_Go
c:\program files (x86)\microsoft visual studio\2017\buildtools\vc\tools\msvc\14.15.26726\include\thr\xthread (209): std::_Pad::_Call_func
minkernel\crts\ucrt\src\appcrt\startup\thread.cpp (115): thread_start<unsigned int (__cdecl*)(void * __ptr64)>
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 0000000076CD556D)
0000000076CD556D (kernel32): (filename not available): BaseThreadInitThunk
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 0000000076E3385D)
0000000076E3385D (ntdll): (filename not available): RtlUserThreadStart
Stack trace logging done
6088.949 Error RailSignalBase.cpp:381: connection.rail->segment->hasSignal(this) was not true
Logger::writeStacktrace skipped.
6088.949 Error CrashHandler.cpp:189: Map tick at moment of crash: 16290176
Image

Re: [boskid] [0.18.34] Crash on saving (Build check failed) after adding train signal to 'Cargo Ship' bridge

Posted: Mon Oct 19, 2020 10:10 am
by boskid
Ok its "fixed" for 1.1.0. Rails logic is not happy when there are multiple rail signals binding to the same rail end on the same side. I am just adding the check to prevent multiple rail signals from being defined that do not collide with each other.

Code: Select all

  10.333 Error ModManager.cpp:1510: entity prototype "invisible_chain_signal" (rail-chain-signal) collision mask does not collide with entity "buoy" (rail-signal).
rail signal collision masks must collide with all other rail signals.
invisible_chain_signal modifications: Cargo Ships
buoy modifications: Cargo Ships

Re: [boskid] [0.18.34] Crash on saving (Build check failed) after adding train signal to 'Cargo Ship' bridge

Posted: Mon Oct 26, 2020 7:39 pm
by Reika
boskid wrote:
Mon Oct 19, 2020 10:10 am
Ok its "fixed" for 1.1.0. Rails logic is not happy when there are multiple rail signals binding to the same rail end on the same side. I am just adding the check to prevent multiple rail signals from being defined that do not collide with each other.

Code: Select all

  10.333 Error ModManager.cpp:1510: entity prototype "invisible_chain_signal" (rail-chain-signal) collision mask does not collide with entity "buoy" (rail-signal).
rail signal collision masks must collide with all other rail signals.
invisible_chain_signal modifications: Cargo Ships
buoy modifications: Cargo Ships
Can they still be made to not collide with anything else? If not, this will break all these "technical lights".

Re: [boskid] [0.18.34] Crash on saving (Build check failed) after adding train signal to 'Cargo Ship' bridge

Posted: Mon Oct 26, 2020 7:44 pm
by boskid
Reika wrote:
Mon Oct 26, 2020 7:39 pm
Can they still be made to not collide with anything else? If not, this will break all these "technical lights".
Only restrictions are with rail signals themselves. They are still allowed to be made to not collide with other entities. I am reusing the same logic that is applied between rails (have to collide with other rails) and as for rolling stocks (have to collide with other rolling stocks).

-- edit:
Just in case look also at other restrictions that will be new in 1.1: 82623

Re: [boskid] [0.18.34] Crash on saving (Build check failed) after adding train signal to 'Cargo Ship' bridge

Posted: Tue Oct 27, 2020 4:11 pm
by Reika
boskid wrote:
Mon Oct 26, 2020 7:44 pm
Reika wrote:
Mon Oct 26, 2020 7:39 pm
Can they still be made to not collide with anything else? If not, this will break all these "technical lights".
Only restrictions are with rail signals themselves. They are still allowed to be made to not collide with other entities. I am reusing the same logic that is applied between rails (have to collide with other rails) and as for rolling stocks (have to collide with other rolling stocks).

-- edit:
Just in case look also at other restrictions that will be new in 1.1: 82623
This does mean using one of those "unnamed" collision layers, though, and forcibly making every rail signal use that layer, while having your own technical signal only be that layer.

Re: [boskid] [0.18.34] Crash on saving (Build check failed) after adding train signal to 'Cargo Ship' bridge

Posted: Tue Oct 27, 2020 5:57 pm
by boskid
Reika wrote:
Tue Oct 27, 2020 4:11 pm
This does mean using one of those "unnamed" collision layers, though, and forcibly making every rail signal use that layer, while having your own technical signal only be that layer.
Yes, rail signals now have one extra layer added taken from those unnamed.

Re: [boskid] [0.18.34] Crash on saving (Build check failed) after adding train signal to 'Cargo Ship' bridge

Posted: Thu Oct 29, 2020 7:23 pm
by Reika
boskid wrote:
Tue Oct 27, 2020 5:57 pm
Reika wrote:
Tue Oct 27, 2020 4:11 pm
This does mean using one of those "unnamed" collision layers, though, and forcibly making every rail signal use that layer, while having your own technical signal only be that layer.
Yes, rail signals now have one extra layer added taken from those unnamed.
I forsee exhausting those layers, or having a collision with another mod using it for another purpose.

I only use the "fake" rail signals as light sources; is there another entity-based way you would recommend? LuaRendering is not an option because of how it chokes on large quantities of lights.

Re: [boskid] [0.18.34] Crash on saving (Build check failed) after adding train signal to 'Cargo Ship' bridge

Posted: Thu Oct 29, 2020 7:27 pm
by boskid
Reika wrote:
Thu Oct 29, 2020 7:23 pm
I forsee exhausting those layers, or having a collision with another mod using it for another purpose.
Nope:
https://forums.factorio.com/viewtopic.php?p=518171#p518171 wrote:Changed collision mask 'layer-11' to 'rail-layer'. Increased the total number of collision masks from 14 to 55.

Re: [boskid] [0.18.34] Crash on saving (Build check failed) after adding train signal to 'Cargo Ship' bridge

Posted: Thu Oct 29, 2020 9:37 pm
by Rseding91
Reika wrote:
Thu Oct 29, 2020 7:23 pm
... is there another entity-based way you would recommend? LuaRendering is not an option because of how it chokes on large quantities of lights.
You can configure lamps to require no power and always be on.

Re: [boskid] [0.18.34] Crash on saving (Build check failed) after adding train signal to 'Cargo Ship' bridge

Posted: Sun Nov 01, 2020 5:52 pm
by Reika
Rseding91 wrote:
Thu Oct 29, 2020 9:37 pm
Reika wrote:
Thu Oct 29, 2020 7:23 pm
... is there another entity-based way you would recommend? LuaRendering is not an option because of how it chokes on large quantities of lights.
You can configure lamps to require no power and always be on.
True, that is now a thing with the void power source.