Is the Library Writable?

Welcome to PhotoStructure @Slash_Sk8tr : apologies that PhotoStructure is misbehaving for you!

Checking to see if the library directory is writable is one of the “health checks” that PhotoStructure runs periodically. I realized (this morning, actually) that only the main process really needed to do this check: beta.14 will have this change.

You can also completely disable the check by setting healthCheckLibraryIsWritable=false (either via environment variables or the library settings.toml. Note that all of the health checks can be disabled via settings: the defaults.env has a list of them here.

The underlying issue, though, may be due to PhotoStructure overwhelming the I/O on your remote NAS (especially if your Unraid box has a bunch of cores).

If disk operations take “too long” (defined by the commandTimeoutMs setting, which defaults to 25 seconds, so it’s pretty patient), things will start to timeout, and asset imports will automatically retry, but PhotoStructure isn’t smart enough (currently) to know that it need to throttle down the sync to prevent excessive iowait.

One way to see if this is the issue is to run top or iostat on your NAS during an import. If it is, indeed thrashing your disks, you can tell PhotoStructure to run slower via the cpuLoadPercent or maxSyncFileJobs settings: open the About page to see what PhotoStructure is currently using for the defaults on your system, and maybe set maxSyncFileJobs=2 (or 3).

If you have time to try this out, it’d be great if you gave an update (either positive or negative!).

Cheers!

(Note: if anyone knows how to check iowait on a remote filesystem, I’d love to have PhotoStructure throttle workloads to prevent this sort of thing automagically)