ART-cli crashes (std::terminate, SIGABRT) partway through exporting certain Leica M10-R DNG files. The RAW demosaic itself completes successfully (progress reaches 85%), then the process aborts with an uncaught C++ exception from Exiv2 while apparently re-reading/embedding metadata into the output. The same DNG opened interactively in the ART GUI also fails to save its own metadata sidecar, with an identical underlying error.
The affected files are not corrupted — a current system Exiv2 (0.28.6, separate from ART's bundled copy) reads them, their full tag set, and all three embedded preview images cleanly. A DNG from the same shoot with an otherwise-identical structure exports without issue, so this looks like a metadata-handling bug/incompatibility in the Exiv2 version bundled with this ART build, not simple file corruption.
Environment
- ART version: 1.26.7 (AppImage build)
- OS: Fedora Linux, 7.1.3-201.fc44.x86_64
- Camera / file format: Leica M10-R, compressed-RAW DNG (PhotometricInterpretation = CFA / 32803), 7872×5208, ~48–50 MB per file
- Files live on an NFS mount; ruled out as a factor (see "What I ruled out" below)
Steps to reproduce
- Take a DNG from a Leica M10-R with the in-camera "Digital Shift Assistant" (perspective/leveling) correction data embedded (visible as an Xmp.xmpDSA.* block in the file's embedded XMP packet — see below).
- Run ART-cli on it directly, e.g.:
ART-cli -o /tmp/out.jpg -j92 -Y -V --progress -d -S -c /path/to/photo.DNG
3. Observe progress climb normally to 85%, then:
terminate called after throwing an instance of 'Exiv2::Error'
what(): Failed to read input data
- The process aborts (SIGABRT) and dumps core; no output file is produced.
This reproduces 100% of the time on the affected files, with a fresh output path, and identically whether or not an external .xmp sidecar is present next to the DNG (tested both ways — removing the sidecar entirely made no difference).
The interactive ART GUI shows the same underlying failure when closing the editor on one of these files (it's attempting to write its own edit sidecar):
ERROR saving metadata for /path/to/photo.DNG to /path/to/photo.DNG.xmp: Failed to read input data
Expected behavior
Either:
- ART-cli/ART successfully reads whatever metadata it's trying to read and completes the export/sidecar-save, or
- if the file genuinely has something ART's Exiv2 can't handle, it should fail gracefully with a catchable error (not an uncaught C++ exception that aborts the whole process).
Actual behavior
Uncaught Exiv2::Error exception reaches std::terminate, aborting the process with SIGABRT after RAW processing has already completed (progress was at 85%).
What I ruled out
- Not file corruption: file reports a normal, well-formed DNG/TIFF header on the affected files. A separately-installed system exiv2 (0.28.6, not the version bundled in this ART build) successfully reads the full EXIF/XMP tag set (136 tags, identical tag names to a working file from the same shoot — only values differ, as expected), all three embedded preview images (exiv2 -pp/-ep), and the embedded Exif.Image.XMLPacket (the raw embedded XMP), which I decoded and diffed byte-for-byte against a working file's XMP — both are well-formed, complete ( present, not truncated), and structurally identical, including the xmlns:xmpDSA="http://leica-camera.com/digital-shift-assistant/1.0/" block and its NormalizedCropCorners/PitchAngle/RollAngle fields — only the actual numeric/timestamp values differ between files, as expected.
- Not an external sidecar: removed the pre-existing .xmp sidecar next to the DNG entirely and re-ran ART-cli -d -S — crash was identical.
- Not a fresh/colliding output path: reproduced with a brand-new, never-before-used output filename.
- Not NFS flakiness: reproduced 3/3 consecutive runs against the same file with no other load on the system; the crash happens at a consistent point (~85%) each time, not a hang or intermittent failure.
Given all of the above, this looks like a genuine bug in the Exiv2 version bundled with this ART build's handling of some specific metadata construct in this camera's DNG output — possibly related to the Leica-specific xmpDSA namespace, or something in how/when ART-cli re-opens the source file late in the pipeline to copy metadata into the export. I wasn't able to narrow it down further without access to ART's own Exiv2 build/source to bisect against.
Sample files
I can provide one or both of the affected DNGs (and a same-shoot DNG that exports successfully, for comparison) if that would help — they're large (~48–50 MB each) so let me know the best way to share them.
Additional (likely unrelated) observation
Separately, launching the ART AppImage GUI logs:
g_module_open() failed for /tmp/tmp.XXXXXXXXXX-ART/ART/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so: cannot open shared object file: No such file or directory
on every launch (the AppImage self-extracts to a fresh /tmp/tmp.-ART/ directory each time, presumably because FUSE mounting isn't available in this environment). I don't believe this is related to the Exiv2 crash above — it's a GTK pixbuf loader used for GUI thumbnails, an entirely separate code path from Exiv2's metadata handling — but flagging it in case it's a symptom of an incomplete AppImage bundle.
ART-cli crashes (std::terminate, SIGABRT) partway through exporting certain Leica M10-R DNG files. The RAW demosaic itself completes successfully (progress reaches 85%), then the process aborts with an uncaught C++ exception from Exiv2 while apparently re-reading/embedding metadata into the output. The same DNG opened interactively in the ART GUI also fails to save its own metadata sidecar, with an identical underlying error.
The affected files are not corrupted — a current system Exiv2 (0.28.6, separate from ART's bundled copy) reads them, their full tag set, and all three embedded preview images cleanly. A DNG from the same shoot with an otherwise-identical structure exports without issue, so this looks like a metadata-handling bug/incompatibility in the Exiv2 version bundled with this ART build, not simple file corruption.
Environment
Steps to reproduce
ART-cli -o /tmp/out.jpg -j92 -Y -V --progress -d -S -c /path/to/photo.DNG
3. Observe progress climb normally to 85%, then:
terminate called after throwing an instance of 'Exiv2::Error'
what(): Failed to read input data
This reproduces 100% of the time on the affected files, with a fresh output path, and identically whether or not an external .xmp sidecar is present next to the DNG (tested both ways — removing the sidecar entirely made no difference).
The interactive ART GUI shows the same underlying failure when closing the editor on one of these files (it's attempting to write its own edit sidecar):
ERROR saving metadata for /path/to/photo.DNG to /path/to/photo.DNG.xmp: Failed to read input data
Expected behavior
Either:
Actual behavior
Uncaught Exiv2::Error exception reaches std::terminate, aborting the process with SIGABRT after RAW processing has already completed (progress was at 85%).
What I ruled out
Given all of the above, this looks like a genuine bug in the Exiv2 version bundled with this ART build's handling of some specific metadata construct in this camera's DNG output — possibly related to the Leica-specific xmpDSA namespace, or something in how/when ART-cli re-opens the source file late in the pipeline to copy metadata into the export. I wasn't able to narrow it down further without access to ART's own Exiv2 build/source to bisect against.
Sample files
I can provide one or both of the affected DNGs (and a same-shoot DNG that exports successfully, for comparison) if that would help — they're large (~48–50 MB each) so let me know the best way to share them.
Additional (likely unrelated) observation
Separately, launching the ART AppImage GUI logs:
g_module_open() failed for /tmp/tmp.XXXXXXXXXX-ART/ART/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so: cannot open shared object file: No such file or directory
on every launch (the AppImage self-extracts to a fresh /tmp/tmp.-ART/ directory each time, presumably because FUSE mounting isn't available in this environment). I don't believe this is related to the Exiv2 crash above — it's a GTK pixbuf loader used for GUI thumbnails, an entirely separate code path from Exiv2's metadata handling — but flagging it in case it's a symptom of an incomplete AppImage bundle.