PS not removing child processes?

Context

PS is scanning/syncing from one external hard drive to a library that’s on another external hard drive. I paused the sync, gave it a minute to handle things, and then quit. Then I tried to eject the drives. The scanned-from drive ejected fine, but the library drive did not.

Expected Behavior

Disk ejects, as PS is no longer using it.

Current Behavior

I click eject, but Finder won’t let me eject it.

The error message is “The disk [disk name] wasn’t ejected because one or more programs may be using it.”

Sometimes this happens bc of Quicklook or Spotlight, but the problem here isn’t either of those. PS is not properly removing child processes working on the external disk. See image:

Next, I re-opened PS, paused the sync, and did a “shut down” rather than just quitting. Now it looks like there are different un-cleaned-up processes that are PS rather than perl(?)

Note also that I had two mounted disks: one which was being scanned-from

Steps to Reproduce

See above

Environment

Operating system and version: macOS Big Sur 11.4 (intel, NOT m1 mac) ; library ext disk is a WD easystore & is APFS-formatted

PhotoStructure edition: PhotoStructure for Desktop

Oh and solution, in case anyone else has this problem, …

Is to kill those processes:

  1. Open Activity Monitor
  2. Search Photostructure, select the photostructure processes
  3. Click that stop-sign-with an “X” in the middle of it at the top of the window, and choose “Quit”.

If that doesn’t work, do the same thing but search “perl” rather than “photostructure”, as at one point there were some perl processes lying around too.

Oof, sorry that the shutdown process didn’t clean up: PhotoStructure actually maintains a list of process IDs that it tells to quit on graceful shutdown, precisely to avoid the bother that you just went through.

Did you force quit PhotoStructure, or did you pick “Quit PhotoStructure” from the menubar?

I tried two things:

  1. Quitting PS normally (cmd-Q)
  2. When that produced an error, just to test it out, I tried opening the left sidebar and clicking “Shut Down.” I figured maybe there was some extra cleanup that would happen if I used that command instead of a regular quit.

Both left orphaned child processes that were accessing the disk. No force-quits or anything like that.

Mm just occurred to me, this could be related to changes I made to settings.toml; I wanted to have PS use more resources & process things faster, even if it was a drag on my computer.

Settings I uncommented + changed:

cpuLoadPercent = 150
exiftoolProcsPerChild = 6
maxTasksPerProcess = 2000

& just did another round of leaving PS on overnight to process things… when pausing sync + ejecting this morning exactly as I did for the original bug report, bug did not re-occur. So maybe there was just something especially funky going on that one day.

Thanks for the update! I’m glad the glitch wasn’t persistent.

For high core-count machines (like > 8), you may see database write contention that ends up actually slowing everything down. I will be reworking the database writes to only come from a single process in a future version, and that should support full core saturation on any machine.

I suspect the only change you will want to make is cpuLoadPercent=100. The other changes won’t substantively increase throughput.