-
Notifications
You must be signed in to change notification settings - Fork 329
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Crash in rtengine::Color::rgb2lab01, "wprof" nullptr deref of rtengine::ICCStore::getInstance()->workingSpaceMatrix(profileCalc); #6357
Comments
related rtengine/iccstore.cc code excerpts:
|
@mandree Thanks for the report. Are you able to test the situation in a build of the current |
I personally cannot reproduce the crash at all, and haven't heard back from the reporter. I've closed the FreeBSD bug report with "Unable to reproduce". Let's see if that wakes the bug reporter. |
So I've received a report update on FreeBSD's end and the problem's submitter surmises that the drm-kmod (FreeBSD's DRM direct rendering kernel module) amdgpu driver might be the culprit. Reporter observes that replacing his AMD graphics card for an nvidia card and swapping out drivers correspondingly, fixes the crash. Also, if use uses the AMD VGA with the vesa driver, the crash does not happen. So, where any color-profile related safeguards vs. nullptr added since 5.8 release such that it is worthwhile testing the development version? Or should one be added to dev and we backport it to 5.8? |
If it helps any, the "competition" (darktable) ships with a CMS test program, and that shows something that I get on NVidia too, so may be unrelated, but still I am reporting the submitter's output of darktable-cmstest (but it may well be a red herring):
|
I have received word today by a personal message that one FreeBSD 13 user found Rawtherapee to crash like this when launching his desktop session through lightdm and startxfce4 through the .x scripts, but not when launching Rawtherapee from a GNOME, Cinnamon, or XFCE4 desktop that is set up by gdm as display/login manager instead. |
This is the guy who wrote Andree. When I run RT when it crashes from terminal I see this output. There is no line about colorreload-gtk-module when RT is run under gdm and works fine. $ rawtherapee (rawtherapee:1481): GLib-GObject-CRITICAL **: 15:35:58.682: g_object_unref: assertion 'old_ref > 0' failed (rawtherapee:1481): GLib-GObject-CRITICAL **: 15:35:58.682: g_object_unref: assertion 'old_ref > 0' failed (rawtherapee:1481): GLib-GObject-CRITICAL **: 15:35:58.682: g_object_unref: assertion 'old_ref > 0' failed (rawtherapee:1481): GLib-GObject-CRITICAL **: 15:35:58.682: g_object_unref: assertion 'old_ref > 0' failed (rawtherapee:1481): GLib-GObject-CRITICAL **: 15:35:58.683: g_object_unref: assertion 'old_ref > 0' failed (rawtherapee:1481): GLib-GObject-CRITICAL **: 15:35:58.683: g_object_unref: assertion 'old_ref > 0' failed |
#6889 should fix the crash. |
ChangeLog: https://rawtherapee.com/downloads/5.10/#new-features We need to stick to GCC because LLVM-compiled code may take more than twice as much processing time as GCC-compiled does, for my test set comparing a few images with denoising and stuff on FreeBSD-14.0-RELEASE amd64 comparing GCC 12.3 to clang 16.0, and similar values on FreeBSD-13.2-RELEASE. Pin GCC to 12 and override -stdlib accordingly, to fix PR: 273682 Clean up Makefile a bit, but we cannot let go of the CCACHE workarounds yet, which we need when enforcing GCC compile. Convert some .if branches to options helpers. Make LTO an option that defaults to on. For some strange reason, massively-parallel compilation WITHOUT LTO appears to trigger OOM kills much more than an LTO-enabled build. Upstream states that LTO build should run faster. For one self-test that fails frequently with SIGPIPE (Exit code 141 is 128 for core dump + 13 for SIGPIPE), pipe through dd with bigger input buffer to avoid SIGPIPE/exit code 141 test failures. Replace echo by ${ECHO_CMD} in self-tests to appease portlint. Portlint misdetects "file system" as bare use of file though and suggests ${FILE}, which is wrong. Revise warnings around the CCACHE hacks because https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=277204 strives to move ports to CCACHE_ENABLED, which does not work for this port. Also, 5.10 should fix the profile/locale related crash PR: 257255 by switching the std::map variable to use std::string as index, rather than Glib::ustring, which caused inconsistencies with locales. Upstream references (two bug reports, and the fix, in order): Beep6581/RawTherapee#6357 Beep6581/RawTherapee#6876 Beep6581/RawTherapee@a95a58a
A SIGSEGV crash (nullptr) dereference has been reported against FreeBSD's port of RawTherapee 5.8 as FreeBSD's Bugzilla #257255.
Looking at color.cc and iccstore.cc git logs, I don't see obvious related code changes since release 5.8. (I am the maintainer of FreeBSD's port and package of Rawtherapee.)
I have not fully established how the reporter triggers this (he claims zooming in, possibly moving the frame) and asked for more information, however what happens in the code is in this rtengine/color.cc fragment:
These are the arguments and locals of the relevant stack frame.
Note
wprof
is0
, and the crash is on thexyz_rgb[3][3]
initialization.If I understand the code correctly, this means that in the wMatrices, either sRGB is not found, or its
second
member itself is null.The text was updated successfully, but these errors were encountered: