Thanks Terry,
So I’ve had uncle Claude into it, and it seems like a candidate for a github bug report - but looking at what’s required there is waaaaay past my pay grade!
As per Claude:
Now we have the real answer — and it’s a completely different function from before:
Thread 42 "worker 5" received signal SIGSEGV, Segmentation fault.
#0 process (...) at .../src/iop/highlights.c:887
This crashes inside darktable’s own highlights (highlight reconstruction) module — not the pipeline recursion depth, not corrupted history order. This is happening at pipeline position 5, which is very early/shallow — nothing to do with the duplicate-entry bloat we were chasing before. Let me check if this is a known bug in this darktable version.
This looks very relevant — GitHub issue #21996 describes almost the exact same symptom pattern on 5.6/5.7 AppImages. Let me pull up the full issue to see if it names the same crash location or has a fix/workaround.
That one’s a different crash (GTK side panel), not a match. Let me search more specifically for the highlights.c module crash.
That release-notes fragment is very promising — it explicitly mentions: “Fixed a bug in CPU opposed highlights code that could lead to out of memory crashes.” That’s the “opposed” highlight reconstruction method, in the CPU code path — exactly matching our crash (process() in highlights.c, and it crashed identically whether OpenCL was on or off, meaning it was hitting the CPU path either way). Let me confirm which release this fix landed in, since you’re on 5.6.1.
The page I fetched only went up to 5.4.1, but the search snippet that mentioned the highlights fix came from further up (a newer release). Let me get the 5.6.1 release notes specifically.
This is the answer, but with a twist: I checked the official 5.6.1 release notes, and they explicitly say:
“Fixed a bug in CPU opposed highlights code that could lead to out of memory crashes.”
That’s describing exactly this — the highlights.c module, CPU path, crash/OOM — and it’s supposed to already be fixed in the version you’re running (5.6.1). So either this is a related-but-distinct bug the 5.6.1 fix didn’t fully cover, or your specific images are hitting an edge case in that same code path that survived the patch. Either way, this is now a genuinely new finding worth reporting — but let’s get you unblocked first.
Since the highlights module runs as part of darktable’s default pipeline (even on fresh imports, hence why it crashed on 6 brand-new images with zero history), and it’s stored per-image in each .xmp’s history with specific reconstruction parameters, the fastest way to unblock your whole library is to temporarily disable that module in every sidecar, bypassing the crashing code entirely. You can always re-enable it per-image later once this is sorted upstream, or after switching to a different reconstruction method.
Claude created a highlights disabling script for the .xmp files which I ran, then: rm ~/.config/darktable/library.db and reloaded the library again. This time everything loaded as required.
I’m hoping one of the devs might see this and give them enough info to provide a fix, since there seems to be a bit of a history with the highlights going back a few versions.
I know some are really perturbed by the use of Ai, but in this case it worked as a diagnostic tool and hopefully will help result in a fix.
Many thanks!