| Summary: | Crash when exporting lossy JPEG XL | ||
|---|---|---|---|
| Product: | [Applications] krita | Reporter: | Alvin Wong <alvin> |
| Component: | File formats | Assignee: | amyspark <amy> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | amy |
| Priority: | NOR | ||
| Version First Reported In: | git master (please specify the git hash!) | ||
| Target Milestone: | --- | ||
| Platform: | Microsoft Windows | ||
| OS: | Microsoft Windows | ||
| URL: | https://github.com/libjxl/libjxl/pull/1481 | ||
| Latest Commit: | https://invent.kde.org/graphics/krita/commit/2832ac86bd5a44ce2ba27918cf893b14e3195c02 | Version Fixed/Implemented In: | 5.1.0 |
| Sentry Crash Report: | |||
| Attachments: | Backtrace with line numbers | ||
|
Description
Alvin Wong
2022-05-13 15:22:01 UTC
Created attachment 148800 [details]
Backtrace with line numbers
Abort called from: ./lib/jxl/enc_adaptive_quantization.cc:907: JXL_CHECK: enc_state->shared.frame_header.color_transform == ColorTransform::kXYB I need the KRA you were trying to export, also (if you can) tell me what instruction sets your computer support. You can try the xsimd branch if you want, that one has this information embedded in the bug reporter. It crashes on a blank new 8-bit A4 300dpi document. Note that this crash is an abort from JXL_CHECK, not actually from an illegal instruction within actual code. If you want to know it's a Kaby Lake i5-7300U (Surface Pro 5). Ah, I found the trigger: "Low resolution DC" was set to "512x512 + 64x64" (must've changed that some time when scrolling). Other options are default. Sent the report upstream. I find it a bit concerning that libjxl will assert and abort like this when used as a library. Normally I would expect the library return a failure or throw an exception, rather than bringing down the whole process. Is there anything we can do to make libjxl stop gracefully? > I find it a bit concerning that libjxl will assert and abort like this when used as a library. Normally I would expect the library return a failure or throw an exception, rather than bringing down the whole process. Is there anything we can do to make libjxl stop gracefully? I had thought you were referring to my changes to error logging (see https://invent.kde.org/graphics/krita/-/blob/master/3rdparty/ext_jpegxl/CMakeLists.txt#L47) but JXL_ASSERT is definitely *not* enabled by my changes, it gets defined automatically in all cases. I'll disable it in our 3rdparty builds now. Fixed in https://github.com/libjxl/libjxl/pull/1481. Reopening for scheduling a library update. A possibly relevant merge request was started @ https://invent.kde.org/graphics/krita/-/merge_requests/1469 Git commit a728092447bb6fe5923a028b82bcd56ab58ffcce by Dmitry Kazakov, on behalf of L. E. Segovia. Committed on 09/06/2022 at 07:23. Pushed by dkazakov into branch 'master'. libjxl: update to latest 0.7.0 master D +0 -32 3rdparty/ext_jpegxl/0001-Make-gflags-an-IMPORTED-GLOBAL-library.patch M +2 -3 3rdparty/ext_jpegxl/CMakeLists.txt https://invent.kde.org/graphics/krita/commit/a728092447bb6fe5923a028b82bcd56ab58ffcce Git commit 2832ac86bd5a44ce2ba27918cf893b14e3195c02 by L. E. Segovia. Committed on 09/06/2022 at 13:46. Pushed by lsegovia into branch 'krita/5.1'. libjxl: update to latest 0.7.0 master (cherry picked from commit a728092447bb6fe5923a028b82bcd56ab58ffcce) D +0 -32 3rdparty/ext_jpegxl/0001-Make-gflags-an-IMPORTED-GLOBAL-library.patch M +2 -3 3rdparty/ext_jpegxl/CMakeLists.txt https://invent.kde.org/graphics/krita/commit/2832ac86bd5a44ce2ba27918cf893b14e3195c02 |