Page 1 of 1

Version 1.1.41

Posted: Thu Sep 23, 2021 3:09 pm
by FactorioBot
Bugfixes
  • Fixed false positive tile corruption detection when 255 tile prototypes were defined. (100036)
  • Fixed pollution overlay misalignment at certain zoom level/map position combinations. (99705)
Use the automatic updater if you can (check experimental updates in other settings) or download full installation at http://www.factorio.com/download/experimental.

Re: Version 1.1.41

Posted: Sat Oct 02, 2021 9:13 am
by Ormy
I just updated factorio from 1.1.39 to 1.1.41. Straight away I've noticed that saving/autosaving is taking a lot longer most of the time. On my gigabase (heavily modded) the autosave used to take around 2-3 seconds. Since updating the autosave time is not only longer but very inconsistent. Usually takes around 10 seconds, sometimes as much as 30-40 seconds and occasionally only 2-3 seconds, just as fast as before.

Should I play some more till I get a long autosave and then upload factorio-current.log here?

Re: Version 1.1.41

Posted: Sat Oct 02, 2021 9:17 am
by Loewchen
Ormy wrote: Sat Oct 02, 2021 9:13 am Should I play some more till I get a long autosave and then upload factorio-current.log here?
No. Open a technical help topic for the issue and post it there.

Re: Version 1.1.41

Posted: Sat Oct 02, 2021 4:38 pm
by boskid
Ormy wrote: Sat Oct 02, 2021 9:13 am I just updated factorio from 1.1.39 to 1.1.41. Straight away I've noticed that saving/autosaving is taking a lot longer most of the time. On my gigabase (heavily modded) the autosave used to take around 2-3 seconds. Since updating the autosave time is not only longer but very inconsistent. Usually takes around 10 seconds, sometimes as much as 30-40 seconds and occasionally only 2-3 seconds, just as fast as before.
Due to repeating bug reports when someone has "all autosaves corrupted, cannot load", in 1.1.40 a tile consistency check on saving was reintroduced which may have its performance impact here. If you want to disable this check you can do this by means of hidden settings: in main menu while holding Ctrl and Alt press Settings, on the bottom there will be "the rest" and here you should find "enable-tile-data-validation-on-saving" which you can disable. Intent behind reintroduction of this logic is let those issues throw early (during save, not during load) since if it would happen to be related to some bug in code (and not a random memory bit flip) it would be a lot easier(quicker) to correlate what was done to cause the inconsistency.

Re: Version 1.1.41

Posted: Sat Oct 02, 2021 4:56 pm
by pleegwat
Would it make sense to perform such consistency checks in the background, rather than as a blocking part of the save process?

Re: Version 1.1.41

Posted: Sat Oct 02, 2021 5:04 pm
by boskid
pleegwat wrote: Sat Oct 02, 2021 4:56 pm Would it make sense to perform such consistency checks in the background, rather than as a blocking part of the save process?
No. Consistency check is a read operation and while it is happening data must not change for any reasons, including game update.

Re: Version 1.1.41

Posted: Sat Oct 02, 2021 5:08 pm
by pleegwat
boskid wrote: Sat Oct 02, 2021 5:04 pm
pleegwat wrote: Sat Oct 02, 2021 4:56 pm Would it make sense to perform such consistency checks in the background, rather than as a blocking part of the save process?
No. Consistency check is a read operation and while it is happening data must not change for any reasons, including game update.
But if you can run the consistency check directly on the save data (rather than on the in-memory state) that wouldn't matter?

Of course, if that requires reimplementing a lot of logic (or basically loading the save in a separate process) that may cause too much overhead.

Re: Version 1.1.41

Posted: Sat Oct 02, 2021 5:11 pm
by boskid
pleegwat wrote: Sat Oct 02, 2021 5:08 pm But if you can run the consistency check directly on the save data (rather than on the in-memory state) that wouldn't matter?

Of course, if that requires reimplementing a lot of logic (or basically loading the save in a separate process) that may cause too much overhead.
Loading a save file only to do a consistency check is not an option. Loading a save file would have to recreate every bit of the game state, allocate every entity, chunk etc so it would mean the memory usage during this action would roughly double.

Re: Version 1.1.41

Posted: Sun Oct 03, 2021 6:20 am
by Ormy
boskid wrote: Sat Oct 02, 2021 4:38 pm
Ormy wrote: Sat Oct 02, 2021 9:13 am I just updated factorio from 1.1.39 to 1.1.41. Straight away I've noticed that saving/autosaving is taking a lot longer most of the time. On my gigabase (heavily modded) the autosave used to take around 2-3 seconds. Since updating the autosave time is not only longer but very inconsistent. Usually takes around 10 seconds, sometimes as much as 30-40 seconds and occasionally only 2-3 seconds, just as fast as before.
Due to repeating bug reports when someone has "all autosaves corrupted, cannot load", in 1.1.40 a tile consistency check on saving was reintroduced which may have its performance impact here. If you want to disable this check you can do this by means of hidden settings: in main menu while holding Ctrl and Alt press Settings, on the bottom there will be "the rest" and here you should find "enable-tile-data-validation-on-saving" which you can disable. Intent behind reintroduction of this logic is let those issues throw early (during save, not during load) since if it would happen to be related to some bug in code (and not a random memory bit flip) it would be a lot easier(quicker) to correlate what was done to cause the inconsistency.
Disabling the setting as you described fixed the slow saving, many thanks. I have never run into this corrupted autosave bug in over 1000 hours of play so I think I'll be fine to leave it disabled.

Re: Version 1.1.41

Posted: Sun Oct 03, 2021 7:37 pm
by posila
Hmm ... such large impact on saving time is strange though. We tried to optimize it a lot, a got it to additing just 50% time to tile saving, which often accounts for 10% of the saving time (so the tile validation would increase total saving time by just 5%)

Anyhow, the corruption is a once in many thousands of hours random memory corruption kind of deal ... so it is very unlikely to happen to you specifially, but if it happens, we might not be able to recover your save.

Re: Version 1.1.41

Posted: Mon Oct 04, 2021 3:02 pm
by Ormy
posila wrote: Sun Oct 03, 2021 7:37 pm Hmm ... such large impact on saving time is strange though. We tried to optimize it a lot, a got it to additing just 50% time to tile saving, which often accounts for 10% of the saving time (so the tile validation would increase total saving time by just 5%)

Anyhow, the corruption is a once in many thousands of hours random memory corruption kind of deal ... so it is very unlikely to happen to you specifially, but if it happens, we might not be able to recover your save.
Thanks for the info. I think there is a large impact on save time for me because my base is sprawling, I've made no attempt at space efficiency, the size is quite large. Approx size is 3136 x 2240 tiles by my calculations (98 x 70 chunks) for a total of just over 7M tiles give or take.

Can the corruption happen only to autosaves or can it also happen to manual saves too?