Unfortunately I'm unable to search (every time I go to page 2 it tells me I cannot search for a few minutes) so I cannot tell if this is an already-reported issue or not...
Essentially, Factorio does not like NTFS junctions. At all. If your save folder is within a junction location and you attempt to save than it will either hang the client immediately upon clicking the "Save" button or immediately upon completing the save (which, fortunately, completes without issue). Since it has hung the log file does not correctly update to reflect that an issue has occurred (though I will attach it anyway) Once it has hung in this manner the only way to close the client is to forcibly kill the task - no other method that I have tried has worked.
For example, I have Factorio installed to the actual location "G:\Games\Factorio". This is then mapped via a Directory Junction to "C:\Games\Factorio" (more specifically, "C:\Games" is a junction to "G:\Games"), since C is an SSD that's getting close to full (and Factorio doesn't really benefit from being on an SSD anyway). I have the client configured to store save games et-al in the install directory. If I run the game from "C:\Games\Factorio" than I experience the above save issue. Running it from "G:\Games\Factorio" works perfectly. Running via a shortcut will produce the issue only if the "Start in" directory is the junction.
Loading and actually playing the game appear to be unaffected, as do auto-saves. It's only when you attempt to manually save that an issue is encountered, and I have so far been able to reproduce this issue with every release of 0.13 (I haven't tried earlier).
PS A light-ish grey cursor on a medium grey background makes it very, very hard to see when attempting to navigate your edit box on these forums.
[0.13.x] NTFS junctions and saving
[0.13.x] NTFS junctions and saving
- Attachments
-
- factorio-current.log
- (1.9 KiB) Downloaded 118 times
Re: [0.13.x] NTFS junctions and saving
To help dev, I have install factorio on 'normal' folder', but the 'save' and 'mod' folder are NTFS junctions (go to game folder). And I didn't have any issues.
Re: [0.13.x] NTFS junctions and saving
Indeed. I should have tested that specifically. I just now tried renaming the saves folder to "save", created a junction to "saves" and it was quite happy using it.
However, when moving the "saves" folder to a different drive entirely and linking to it, the hang occurred once more. It seems that it may only be junctions that cross drives which cause the issue.
However, when moving the "saves" folder to a different drive entirely and linking to it, the hang occurred once more. It seems that it may only be junctions that cross drives which cause the issue.
Re: [0.13.x] NTFS junctions and saving
Frankly, I wasn't able to reproduce this. I created 4 nested junctions going back and forth between SSD and HDD (ending up on HDD, while the game was running on SSD), and the game still didn't crash for me.
That said, we use boost::filesystem for working with files, and I found out the Windows implementation of this library is not very good when it comes to junctions. We switched to std::filesystem for Windows build in 0.13.14, so this issue should be hopefully fixed by this change.
Thanks for the reports and let us know if it still happens in 0.13.14 or if new issues with filesystem arise.
That said, we use boost::filesystem for working with files, and I found out the Windows implementation of this library is not very good when it comes to junctions. We switched to std::filesystem for Windows build in 0.13.14, so this issue should be hopefully fixed by this change.
Thanks for the reports and let us know if it still happens in 0.13.14 or if new issues with filesystem arise.
Re: [0.13.x] NTFS junctions and saving
I've only had a small chance to test, but so far it appears to be successful. Launching from the actual location (G drive) worked fine (as expected), and launching from the link location (C drive) also worked. Toyed around with it for a dozen or so saves (making sure the data would be different each time) and it never gave a hint of trouble.
Cheers for the fix.
Cheers for the fix.
Re: [0.13.x] NTFS junctions and saving
That is good news, thanks for letting us know.