Frequent crashes on startup caused by sigmoid CTL script on MacOS

Issue #309 open
Sebastien Guyader created an issue

When I enable Sigmoid tone mapper in Film simulation, close ART and try to load it again, ART crashes (crash report and files available here). The crash is not systematic with only Sigmoid tone mapper enabled but seems exacerbated and almost systematic by enabling a CTL script in `Color/Tone correction`. Deleting the .arp profile of the image that was being edited or the corresponding image cache data in .cache/ART/data allows ART to start up again.

Comments (4)

  1. agriggio repo owner
    • changed status to open

    it's next to impossible for me to debug mac problems, unfortunately. However, can you maybe provide a backtrace with a debugger?

    In the meantime, does the patch in attach change anything? (I have no idea why it should, but I don't understand the crash report either, so it's worth trying...)

  2. Sebastien Guyader reporter

    The patch doesn’t help. I’ll try and see if I can make a useful backtrace from a debug build, but I’m not too familiar with Mac either. By the way I saw the follwing warning in the console while compiling: `/Users/sguyader/PhotoApps/art/rtengine/clutstore.cc:129:15: warning: unused variable 'TS' [-Wunused-const-variable]
    constexpr int TS = 112;
    ^
    1 warning generated.`

  3. Sebastien Guyader reporter

    Here’s some info I gathered on a crashing Release build, using MacOS’s debugger (lldb). The 3rd (lldb) command is a backtrace:

    (lldb) process launch
    Process 1673 launched: '/Users/sguyader/Desktop/build/release/MacOS/ART' (arm64)
    
    (ART:1673): Gtk-CRITICAL **: 16:28:52.474: gtk_window_add_accel_group: assertion 'GTK_IS_WINDOW (window)' failed
    2023-12-28 16:28:52.477217-0400 ART[1673:31261] [General] _createMenuRef called with existing principal MenuRef already associated with menu
    2023-12-28 16:28:52.477756-0400 ART[1673:31261] [General] (
        0   CoreFoundation                      0x0000000196d67154 __exceptionPreprocess + 176
        1   libobjc.A.dylib                     0x00000001968864d4 objc_exception_throw + 60
        2   CoreFoundation                      0x0000000196d66ff8 +[NSException exceptionWithName:reason:userInfo:] + 0
        3   AppKit                              0x0000000199f07794 -[NSCarbonMenuImpl _createMenuRef] + 64
        4   AppKit                              0x0000000199f072e8 -[NSCarbonMenuImpl _instantiateCarbonMenu] + 120
        5   AppKit                              0x0000000199f016fc -[NSApplication finishLaunching] + 624
        6   ART                                 0x000000010022b118 _ZN8RTWindowC1Ev + 3184
        7   ART                                 0x000000010018e494 _ZN12_GLOBAL__N_116create_rt_windowEv + 104
        8   ART                                 0x00000001001908dc _ZN12_GLOBAL__N_113RTApplication15on_command_lineERKN4Glib6RefPtrIN3Gio22ApplicationCommandLineEEE + 404
        9   libgiomm-2.4.1.dylib                0x0000000100e217e0 _ZN3Gio17Application_Class21command_line_callbackEP13_GApplicationP24_GApplicationCommandLine + 120
        10  libgio-2.0.0.dylib                  0x00000001011d4974 _g_cclosure_marshal_INT__OBJECTv + 104
        11  libgobject-2.0.0.dylib              0x0000000100cf216c _g_closure_invoke_va + 228
        12  libgobject-2.0.0.dylib              0x0000000100d06f7c signal_emit_valist_unlocked + 844
        13  libgobject-2.0.0.dylib              0x0000000100d06c04 g_signal_emit_valist + 64
        14  libgobject-2.0.0.dylib              0x0000000100d0779c g_signal_emit + 28
        15  libgio-2.0.0.dylib                  0x0000000101223418 g_application_call_command_line + 124
        16  libgio-2.0.0.dylib                  0x0000000101224f40 g_application_real_local_command_line + 1372
        17  libgiomm-2.4.1.dylib                0x0000000100e22924 _ZN3Gio11Application24local_command_line_vfuncERPPcRi + 92
        18  libgiomm-2.4.1.dylib                0x0000000100e2131c _ZN3Gio17Application_Class33local_command_line_vfunc_callbackEP13_GApplicationPPPcPi + 100
        19  libgio-2.0.0.dylib                  0x0000000101223178 g_application_run + 412
        20  ART                                 0x000000010018d9e4 main + 4176
        21  dyld                                0x00000001968b7f28 start + 2236
    )
    2023-12-28 16:28:53.635869-0400 ART[1673:31261] [Window] Warning: Window GdkQuartzNSWindow 0x2768821f500 ordered front from a non-active application and may order beneath the active application's windows.
    2023-12-28 16:28:53.636157-0400 ART[1673:31261] [Window] Warning: Window GdkQuartzNSWindow 0x2768821f500 ordered front from a non-active application and may order beneath the active application's windows.
    2023-12-28 16:28:53.636689-0400 ART[1673:31261] [Window] Warning: Window GdkQuartzNSWindow 0x2768821f500 ordered front from a non-active application and may order beneath the active application's windows.
    2023-12-28 16:28:53.636837-0400 ART[1673:31261] [Window] Warning: Window GdkQuartzNSWindow 0x2768821f500 ordered front from a non-active application and may order beneath the active application's windows.
    2023-12-28 16:28:53.636982-0400 ART[1673:31261] [Window] Warning: Window GdkQuartzNSWindow 0x2768821f500 ordered front from a non-active application and may order beneath the active application's windows.
    Process 1673 stopped
    * thread #7, stop reason = EXC_BAD_ACCESS (code=2, address=0x27690025ca0)
        frame #0: 0x0000027690025ca0
    ->  0x27690025ca0: adrp   x16, 19328
        0x27690025ca4: udf    #0x276
        0x27690025ca8: udf    #0x2e
        0x27690025cac: udf    #0x0
    
    (lldb) thread list
    Process 1673 stopped
      thread #1: tid = 0x7a1d, 0x0000000196bcfdf4 libsystem_kernel.dylib`_kernelrpc_mach_port_insert_member_trap + 8, queue = 'com.apple.main-thread'
      thread #2: tid = 0x7a38, 0x0000000196c0ad8c libsystem_pthread.dylib`start_wqthread
      thread #3: tid = 0x7a39, 0x00000001013b5618 libglib-2.0.0.dylib`g_utf8_to_utf16 + 88
      thread #4: tid = 0x7a3a, 0x0000000196bd2bc8 libsystem_kernel.dylib`__psynch_mutexwait + 8
      thread #5: tid = 0x7a3b, 0x00000001005516b8 ART`rtengine::(anonymous namespace)::tone_eq(rtengine::array2D<float>&, rtengine::array2D<float>&, rtengine::array2D<float>&, rtengine::procparams::ToneEqualizerParams const&, Glib::ustring const&, double, bool, bool, void*)::$_0::operator()(float) const + 304
      thread #6: tid = 0x7a3c, 0x0000000196bd2bc8 libsystem_kernel.dylib`__psynch_mutexwait + 8
    * thread #7: tid = 0x7a3d, 0x0000027690025ca0, stop reason = EXC_BAD_ACCESS (code=2, address=0x27690025ca0)
      thread #8: tid = 0x7a3e, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #9: tid = 0x7a3f, 0x0000000196bd2bc8 libsystem_kernel.dylib`__psynch_mutexwait + 8
      thread #10: tid = 0x7a40, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #11: tid = 0x7a41, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #12: tid = 0x7a42, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #13: tid = 0x7a43, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #14: tid = 0x7a44, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #15: tid = 0x7a45, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #16: tid = 0x7a46, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #17: tid = 0x7a47, 0x0000000196bd1bc8 libsystem_kernel.dylib`__workq_kernreturn + 8
      thread #18: tid = 0x7a5a, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8, name = 'pool-spawner'
      thread #19: tid = 0x7a5b, 0x0000000196bdaff0 libsystem_kernel.dylib`__select + 8, name = 'gmain'
      thread #20: tid = 0x7a64, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8, name = 'pool-ART'
      thread #21: tid = 0x7a6b, 0x0000000196c0ad8c libsystem_pthread.dylib`start_wqthread
      thread #22: tid = 0x7a6c, 0x0000000196bcff14 libsystem_kernel.dylib`mach_msg2_trap + 8, name = 'com.apple.NSEventThread'
      thread #23: tid = 0x7a6f, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8, name = 'CVDisplayLink'
      thread #24: tid = 0x7a70, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #25: tid = 0x7a71, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #26: tid = 0x7a72, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #27: tid = 0x7a73, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #28: tid = 0x7a74, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #29: tid = 0x7a75, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #30: tid = 0x7a76, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #31: tid = 0x7a77, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #32: tid = 0x7a78, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #33: tid = 0x7a79, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #34: tid = 0x7a7a, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #35: tid = 0x7a7b, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #36: tid = 0x7a7c, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #37: tid = 0x7a7d, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #38: tid = 0x7a7e, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #39: tid = 0x7a7f, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #40: tid = 0x7a80, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #41: tid = 0x7a81, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #42: tid = 0x7a82, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #43: tid = 0x7a83, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #44: tid = 0x7a84, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #45: tid = 0x7a86, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #46: tid = 0x7a87, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #47: tid = 0x7a88, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #48: tid = 0x7a89, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #49: tid = 0x7a8a, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #50: tid = 0x7a8b, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #51: tid = 0x7a8c, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #52: tid = 0x7a8d, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #53: tid = 0x7a8e, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #54: tid = 0x7a8f, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #55: tid = 0x7a90, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #56: tid = 0x7a91, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #57: tid = 0x7a92, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #58: tid = 0x7a93, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #59: tid = 0x7a94, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #60: tid = 0x7a95, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #61: tid = 0x7a96, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #62: tid = 0x7a97, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #63: tid = 0x7a98, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #64: tid = 0x7a99, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
      thread #65: tid = 0x7a9a, 0x0000000196bd3710 libsystem_kernel.dylib`__psynch_cvwait + 8
    
    (lldb) thread backtrace
    * thread #7, stop reason = EXC_BAD_ACCESS (code=2, address=0x27690025ca0)
      * frame #0: 0x0000027690025ca0
        frame #1: 0x0000000102162b78 libIlmCtlSimd.1.5.2.dylib`Ctl::SimdInst::executePath(Ctl::SimdBoolMask&, Ctl::SimdXContext&) const + 104
        frame #2: 0x00000001021639b4 libIlmCtlSimd.1.5.2.dylib`Ctl::SimdLoopInst::execute(Ctl::SimdBoolMask&, Ctl::SimdXContext&) const + 452
        frame #3: 0x0000000102162b78 libIlmCtlSimd.1.5.2.dylib`Ctl::SimdInst::executePath(Ctl::SimdBoolMask&, Ctl::SimdXContext&) const + 104
        frame #4: 0x0000000102163198 libIlmCtlSimd.1.5.2.dylib`Ctl::SimdBranchInst::execute(Ctl::SimdBoolMask&, Ctl::SimdXContext&) const + 632
        frame #5: 0x0000000102162b78 libIlmCtlSimd.1.5.2.dylib`Ctl::SimdInst::executePath(Ctl::SimdBoolMask&, Ctl::SimdXContext&) const + 104
        frame #6: 0x0000000102163198 libIlmCtlSimd.1.5.2.dylib`Ctl::SimdBranchInst::execute(Ctl::SimdBoolMask&, Ctl::SimdXContext&) const + 632
        frame #7: 0x0000000102162b78 libIlmCtlSimd.1.5.2.dylib`Ctl::SimdInst::executePath(Ctl::SimdBoolMask&, Ctl::SimdXContext&) const + 104
        frame #8: 0x0000000102163168 libIlmCtlSimd.1.5.2.dylib`Ctl::SimdBranchInst::execute(Ctl::SimdBoolMask&, Ctl::SimdXContext&) const + 584
        frame #9: 0x0000000102162b78 libIlmCtlSimd.1.5.2.dylib`Ctl::SimdInst::executePath(Ctl::SimdBoolMask&, Ctl::SimdXContext&) const + 104
        frame #10: 0x0000000102163d38 libIlmCtlSimd.1.5.2.dylib`Ctl::SimdCallInst::execute(Ctl::SimdBoolMask&, Ctl::SimdXContext&) const + 136
        frame #11: 0x0000000102162b78 libIlmCtlSimd.1.5.2.dylib`Ctl::SimdInst::executePath(Ctl::SimdBoolMask&, Ctl::SimdXContext&) const + 104
        frame #12: 0x00000001021acce8 libIlmCtlSimd.1.5.2.dylib`Ctl::SimdXContext::run(int, Ctl::SimdInst const*) + 100
        frame #13: 0x0000000102161914 libIlmCtlSimd.1.5.2.dylib`Ctl::SimdFunctionCall::callFunction(unsigned long) + 72
        frame #14: 0x000000010034f1e0 ART`rtengine::CLUTApplication::CTL_init_lut(int) + 2364
        frame #15: 0x000000010034e710 ART`rtengine::CLUTApplication::CTL_set_params(std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, double, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, double>>> const&, rtengine::CLUTApplication::Quality) + 1788
        frame #16: 0x0000000100563650 ART`rtengine::ImProcFunctions::colorCorrection(rtengine::Imagefloat*) + 4344
        frame #17: 0x000000010042e574 ART`rtengine::ImProcFunctions::process(rtengine::ImProcFunctions::Pipeline, rtengine::ImProcFunctions::Stage, rtengine::Imagefloat*) + 876
        frame #18: 0x000000010052bfe4 ART`rtengine::Thumbnail::processImage(rtengine::procparams::ProcParams const&, rtengine::SensorType, int, rtengine::TypeInterpolation, rtengine::FramesMetaData const*, double&, bool, bool) + 3436
        frame #19: 0x0000000100263670 ART`Thumbnail::processThumbImage(rtengine::procparams::ProcParams const&, int, double&) + 596
        frame #20: 0x000000010025dcc0 ART`ThumbImageUpdater::Impl::processNextJob() + 348
        frame #21: 0x0000000100067dac ART`std::__1::packaged_task<void ()>::operator()() + 80
        frame #22: 0x0000000100430758 ART`rtengine::ThreadPool::ThreadPool(unsigned long)::'lambda'()::operator()() const + 312
        frame #23: 0x0000000100430560 ART`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, rtengine::ThreadPool::ThreadPool(unsigned long)::'lambda'()>>(void*) + 52
        frame #24: 0x0000000196c0ffa8 libsystem_pthread.dylib`_pthread_start + 148
    

  4. Log in to comment