Rawtherapee: Fattal - segfault in LUT.h

Created on 4 Nov 2017  路  22Comments  路  Source: Beep6581/RawTherapee

Segfault when sliding Alpha=0

Version: 5.3-91-gf6faccc7
Branch: hdr_tonemap_fattal
Commit: f6faccc7
Commit date: 2017-11-04
Compiler: cc 4.9.3
Processor: Intel(R)\ Core(TM)\ m3-6Y30\ CPU\ @\ 0.90GHz
System: Linux
Bit depth: 64 bits
Gtkmm: V3.22.1
Lensfun: V0.3.2.0
Build type: debug
Build flags:  -std=c++11 -march=native -Werror=unused-label -fopenmp -Werror=unknown-pragmas -Wall -Wno-unused-result -Wno-deprecated-declarations -g
Link flags:  -march=native
OpenMP support: ON
MMAP support: ON
Thread 1121 "rawtherapee" received signal SIGSEGV, Segmentation fault.
[Switching to LWP 12576]
0x0000555555ffdc19 in LUT<float>::operator[]<float, void> (this=0x55555d63b220, index=-nan(0x400000)) at /home/morgan/programs/code-rawtherapee/rtengine/LUT.h:468
468             T p1 = data[idx];
(gdb) bt full
#0  0x0000555555ffdc19 in LUT<float>::operator[]<float, void> (this=0x55555d63b220, index=-nan(0x400000)) at /home/morgan/programs/code-rawtherapee/rtengine/LUT.h:468
        idx = -2147483648
        diff = -nan(0x400000)
        p1 = -nan(0x400000)
        p2 = -nan(0x400000)
#1  0x000055555609e49e in rtengine::ImProcFunctions::rgbProc () at /home/morgan/programs/code-rawtherapee/rtengine/improcfun.cc:3578
        g = -nan(0x400000)
        Y = -nan(0x400000)
        r = -nan(0x400000)
        b = -nan(0x400000)
        tonefactor = 0
        j = 112
        tj = 0
        i = 0
        ti = 0
        ii = 0
        jj = 112
        buffer = 0x7fff7c0084c0 ""
        editWhateverBuffer = 0x0
        jstart = 112
        tH = 112
        editIFloatTmpR = 0x0
        editIFloatTmpB = 0x0
        out_rgbx = {1.69811761, 1.65500724, 1.66598117, 1.72227716, 1.71218991, 1.7042861, 1.68782151, 1.67176569, 1.70885777, 1.70455623, 1.73557508, 1.73884916, 1.66123128, 1.66245317, 1.69122958, 1.74802208, 1.74859214, 1.71365416, 1.65701699, 1.72878027, 
          1.71092236, 1.67371929, 1.63422537, 1.63000703, 1.62413406, 1.60375535, 1.61610544, 1.63786685, 1.65311563, 1.7084136, 1.71031916, 1.71244943, 1.71164596, 1.71404362, 1.78210413, 1.81420898, 1.84129584, 1.85037589, 1.80799985, 1.81015337, 1.82542086, 
          1.86591661, 1.86641669, 1.86127043, 0, 0, 0, 0, 0, 0, -1.21527842e+30, 4.59163468e-41, 0, 0, -nan(0x7ffff8), -nan(0x7fffff), -1.04884077e+30, 4.59163468e-41, 3448.41016, 4.59163468e-41, -1.04909857e+30, 4.59163468e-41, -1.21540899e+30, 4.59163468e-41, 0, 
          2.3509887e-38, 0, 0, -1.04900911e+30, 4.59163468e-41, 3.88159675e-43, 0, 1.37467379e-42, 0 <repeats 13 times>, -1.03797113e+34, 4.59163468e-41, 3448.40625, 4.59163468e-41, 1.89175293e-43, 0, -1.03769878e+34, 4.59163468e-41, 3448.37891, 4.59163468e-41, 
          3448.40625, 4.59163468e-41, -8.446433e+29, 4.59163468e-41, 3448.41016, 4.59163468e-41, -1.21532466e+30, 4.59163468e-41, -nan(0x7fffe8), -nan(0x7fffff), 1.40129846e-45, 0, 1.46544284e+13, 3.0611365e-41, -1.03805927e+34, 4.59163468e-41, 1.46544955e+13, 
          3.0611365e-41, 1.40129846e-44, 0, 1.93379188e-43, 0, 4.20389539e-45, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1.04709659e+30, 4.59163468e-41, -1.04494433e+30, 4.59163468e-41, -1.04769864e+30, 4.59163468e-41, 3448.75781, 4.59163468e-41, 3448.67773, 4.59163468e-41, 
          -1.21570208e+30, 4.59163468e-41, -1.04494433e+30, 4.59163468e-41, 3448.41602, 4.59163468e-41, 0, 0, -1.04492778e+30, 4.59163468e-41, -1.04909857e+30, 4.59163468e-41, -1.04909986e+30, 4.59163468e-41, 3448.46875, 4.59163468e-41, 3448.63672, 4.59163468e-41, 
          3.57331108e-43, 0, -1.04909857e+30, 4.59163468e-41, 1.40129846e-45, 0, 3448.75781, 4.59163468e-41, 3448.75781, 4.59163468e-41, -1.04769864e+30, 4.59163468e-41, 3448.44531, 4.59163468e-41, -7.67552972e+29, 4.59163468e-41, 0, 0, 3450, 4.59163468e-41, 
          3448.46484, 4.59163468e-41, -1.04770566e+30, 4.59163468e-41, -nan(0x7ffff8), -nan(0x7fffff), 3448.63672, 4.59163468e-41, 0 <repeats 40 times>, -nan(0x7ffff0), -nan(0x7fffff), -1.46099517e+32, 4.59163468e-41, 3.50136727e+24, 4.59163468e-41, 3.50129348e+24, 
          4.59163468e-41, 3.50140416e+24...}
        editIFloatBuffer = 0x0
        rtemp = 0x7fff7c0084c0
        btemp = 0x7fff7c020fc0
        istart = 0
        editIFloatTmpG = 0x0
        data = 0x7fff7c0084c0 ""
        gtemp = 0x7fff7c0149c0
        editWhateverTmp = 0x0
        tW = 224
        histToneCurveThr = {<rtengine::NonCopyable> = {<No data fields>}, maxs = 254, maxsf = 254, data = 0x7fff7c004b90, clip = 268435455, size = 256, upperBound = 255, owner = 1, maxsv = {254, 254, 254, 254}, sizev = {255, 255, 255, 255}, sizeiv = {1095216660735, 
            1095216660735}, dirty = true}
        working = 0x7fff68002170
        lab = 0x7fff90010e50
        hltonecurve = @0x55555d63b1c0: {<rtengine::NonCopyable> = {<No data fields>}, maxs = 65534, maxsf = 65534, data = 0x55555d12e9b0, clip = 1, size = 65536, upperBound = 65535, owner = 1, maxsv = {65534, 65534, 65534, 65534}, sizev = {65535, 65535, 65535, 65535}, 
          sizeiv = {281470681808895, 281470681808895}, dirty = true}
        shtonecurve = @0x55555d63b220: {<rtengine::NonCopyable> = {<No data fields>}, maxs = 65534, maxsf = 65534, data = 0x55555d6c6000, clip = 2, size = 65536, upperBound = 65535, owner = 1, maxsv = {65534, 65534, 65534, 65534}, sizev = {65535, 65535, 65535, 65535}, 
          sizeiv = {281470681808895, 281470681808895}, dirty = true}
        tonecurve = @0x55555d63b280: {<rtengine::NonCopyable> = {<No data fields>}, maxs = 65534, maxsf = 65534, data = 0x55555d706010, clip = 0, size = 65536, upperBound = 65535, owner = 1, maxsv = {65534, 65534, 65534, 65534}, sizev = {65535, 65535, 65535, 65535}, 
          sizeiv = {281470681808895, 281470681808895}, dirty = true}
        shmap = 0x0
        sat = 0
        rCurve = @0x55555d63c1c0: {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, maxsv = {0, 0, 0, 0}, sizev = {0, 0, 0, 0}, sizeiv = {0, 0}, dirty = true}
        gCurve = @0x55555d63c220: {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, maxsv = {0, 0, 0, 0}, sizev = {0, 0, 0, 0}, sizeiv = {0, 0}, dirty = true}
        bCurve = @0x55555d63c280: {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, maxsv = {0, 0, 0, 0}, sizev = {0, 0, 0, 0}, sizeiv = {0, 0}, dirty = true}
        satLimit = 0.300000012
        satLimitOpacity = 0.99000001
        ctColorCurve = @0x55555d63c3c0: {_vptr.ColorGradientCurve = 0x5555569b63f0 <vtable for rtengine::ColorGradientCurve+16>, lut1 = {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, 
            maxsv = {0, 0, 0, 0}, sizev = {0, 0, 0, 0}, sizeiv = {0, 0}, dirty = true}, lut2 = {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, maxsv = {0, 0, 0, 0}, sizev = {0, 0, 0, 0}, 
            sizeiv = {0, 0}, dirty = true}, lut3 = {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, maxsv = {0, 0, 0, 0}, sizev = {0, 0, 0, 0}, sizeiv = {0, 0}, dirty = true}, low = 0, 
          high = 0}
---Type <return> to continue, or q <return> to quit---
        ctOpacityCurve = @0x55555d63c500: {_vptr.OpacityCurve = 0x5555569b6410 <vtable for rtengine::OpacityCurve+16>, lutOpacityCurve = {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, 
            maxsv = {0, 0, 0, 0}, sizev = {0, 0, 0, 0}, sizeiv = {0, 0}, dirty = true}}
        opautili = false
        clToningcurve = @0x55555d63b620: {<rtengine::NonCopyable> = {<No data fields>}, maxs = 65534, maxsf = 65534, data = 0x55555d8c6080, clip = 0, size = 65536, upperBound = 65535, owner = 1, maxsv = {65534, 65534, 65534, 65534}, sizev = {65535, 65535, 65535, 
            65535}, sizeiv = {281470681808895, 281470681808895}, dirty = true}
        cl2Toningcurve = @0x55555d63b680: {<rtengine::NonCopyable> = {<No data fields>}, maxs = 65534, maxsf = 65534, data = 0x55555d906090, clip = 0, size = 65536, upperBound = 65535, owner = 1, maxsv = {65534, 65534, 65534, 65534}, sizev = {65535, 65535, 65535, 
            65535}, sizeiv = {281470681808895, 281470681808895}, dirty = true}
        customToneCurve1 = @0x55555d63c2e0: {_vptr.ToneCurve = 0x5555569b3d10 <vtable for rtengine::ToneCurve+16>, lutToneCurve = {<rtengine::NonCopyable> = {<No data fields>}, maxs = 65534, maxsf = 65534, data = 0x7fff6839ea70, clip = 268435455, size = 65536, 
            upperBound = 65535, owner = 1, maxsv = {65534, 65534, 65534, 65534}, sizev = {65535, 65535, 65535, 65535}, sizeiv = {281470681808895, 281470681808895}, dirty = true}}
        customToneCurve2 = @0x55555d63c350: {_vptr.ToneCurve = 0x5555569b3d10 <vtable for rtengine::ToneCurve+16>, lutToneCurve = {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, maxsv = {0, 
              0, 0, 0}, sizev = {0, 0, 0, 0}, sizeiv = {0, 0}, dirty = true}}
        customToneCurvebw1 = @0x55555d63cae0: {_vptr.ToneCurve = 0x5555569b3d10 <vtable for rtengine::ToneCurve+16>, lutToneCurve = {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, maxsv = {
              0, 0, 0, 0}, sizev = {0, 0, 0, 0}, sizeiv = {0, 0}, dirty = true}}
        dcpProf = 0x7fff8c003630
        asIn = @0x7fff43d75330: {data = std::unique_ptr<rtengine::DCPProfile::ApplyState::Data> containing 0x7fff680029b0}
        histToneCurve = @0x55555d63bce0: {<rtengine::NonCopyable> = {<No data fields>}, maxs = 254, maxsf = 254, data = 0x55555d16f5f0, clip = 268435455, size = 256, upperBound = 255, owner = 1, maxsv = {254, 254, 254, 254}, sizev = {255, 255, 255, 255}, sizeiv = {
            1095216660735, 1095216660735}, dirty = true}
        this = 0x55555d63b0a0
        tmpImage = 0x0
        editImgFloat = 0x0
        editWhatever = 0x0
        editID = EUID_None
        h_th = 0
        s_th = 0
        processSH = false
        processLCE = false
        lceamount = 0
        wprof = 0x555556518ec0 <_ZL12xyz_prophoto>
        wiprof = 0x555556518f40 <_ZL12prophoto_xyz>
        toxyz = {{0.827291906, 0.140211254, 0.0325175263}, {0.288040191, 0.711874127, 8.56999977e-05}, {0, 0, 1.00037587}}
        equalR = 2.47144032
        equalG = 1
        equalB = 8306.58301
        wip = {{1.3459433000000001, -0.25560749999999999, -0.051111799999999999}, {-0.5445989, 1.5081673, 0.020535100000000001}, {0, 0, 1.2118127999999999}}
        wp = {{0.79767489999999996, 0.1351917, 0.031353399999999997}, {0.28804020000000002, 0.71187409999999995, 8.5699999999999996e-05}, {0, 0, 0.82521}}
        mixchannels = false
        hCurve = 0x0
        sCurve = 0x0
        vCurve = 0x0
        bwlCurve = 0x0
        hCurveEnabled = false
        sCurveEnabled = false
        vCurveEnabled = false
        bwlCurveEnabled = false
        hald_clut = std::shared_ptr (empty) 0x0
        clutAndWorkingProfilesAreSame = false
        xyz2clut = 0x0
        clut2xyz = 0x0
        v_work2xyz = {{{430.553223, 4.59163468e-41, 430.553345, 4.59163468e-41}, {430.554199, 4.59163468e-41, 430.553833, 4.59163468e-41}, {430.553711, 4.59163468e-41, -7.43635371e-22, -3.32914326e-33}}, {{430.554199, 4.59163468e-41, 3.51708077e+13, 3.0611365e-41}, {
              5.3314895e+24, 4.59163468e-41, 5.3314872e+24, 4.59163468e-41}, {430.556152, 1, 430.557617, 4.59163468e-41}}, {{430.556641, 4.59163468e-41, -7.43635371e-22, -3.32914326e-33}, {430.556641, 4.59163468e-41, 430.556763, 4.59163468e-41}, {430.557617, 
              4.59163468e-41, 430.557251, 4.59163468e-41}}}
        v_xyz2clut = {{{430.557129, 4.59163468e-41, -7.43635371e-22, -3.32914326e-33}, {430.557617, 4.59163468e-41, 3.51708077e+13, 3.0611365e-41}, {5.32133457e+24, 4.59163468e-41, 2.58358787e+13, 3.0611365e-41}}, {{430.55957, 1, 2.43257675e+24, 4.59163468e-41}, {
              2.42685826e+24, 4.59163468e-41, 2.42567767e+24, 4.59163468e-41}, {7.17464814e-43, 0, -7.43635371e-22, -3.32914326e-33}}, {{430.560547, 4.59163468e-41, 2.42567767e+24, 4.59163468e-41}, {0, 0, 0, 0}, {0, 0, -7.43635371e-22, -3.32914326e-33}}}
        v_clut2xyz = {{{430.562012, 4.59163468e-41, 2.58348952e+13, 3.0611365e-41}, {430.562012, 4.59163468e-41, 2.42567767e+24, 4.59163468e-41}, {0, 0, 0, 0}}, {{430.562988, 2.36017197e-38, -7.43635371e-22, -3.32914326e-33}, {430.564453, 4.59163468e-41, 
              2.58339137e+13, 3.0611365e-41}, {2.42685826e+24, 4.59163468e-41, 2.42567767e+24, 4.59163468e-41}}, {{0, 0, 0, 0}, {0, 0, -7.43635371e-22, -3.32914326e-33}, {0, 0, 1.02554748e+18, 3.0611365e-41}}}
        v_xyz2work = {{{430.566895, 4.59163468e-41, 2.58326974e+13, 3.0611365e-41}, {0, 0, 2.42902575e+24, 4.59163468e-41}, {0, 0, 0, 0}}, {{0, 0, -7.43635371e-22, -3.32914326e-33}, {430.568359, 4.59163468e-41, 4.90615918e+13, 3.0611365e-41}, {430.568359, 
              4.59163468e-41, 2.42902575e+24, 4.59163468e-41}}, {{0, 0, 0, 0}, {430.569336, 2.36017197e-38, -7.43635371e-22, -3.32914326e-33}, {430.570801, 4.59163468e-41, 4.90608116e+13, 3.0611365e-41}}}
        film_simulation_strength = 1
        exp_scale = 1
        comp = 0.200000003
        hlrange = 54722.4609
        isProPhoto = true
        curveMode = rtengine::procparams::ToneCurveParams::TC_MODE_PERCEPTUAL
---Type <return> to continue, or q <return> to quit---
        curveMode2 = rtengine::procparams::ToneCurveParams::TC_MODE_STD
        highlight = false
        hasToneCurve1 = true
        hasToneCurve2 = false
        beforeCurveMode = rtengine::procparams::BlackWhiteParams::TC_MODE_STD_BW
        hasToneCurvebw1 = false
        ptc1ApplyState = {Working2Prophoto = {{5.39242371e+24, 4.59163468e-41, 5.3924214e+24}, {4.59163468e-41, 430.549316, 1}, {430.550781, 4.59163468e-41, 430.549805}}, Prophoto2Working = {{4.59163468e-41, -7.43635371e-22, -3.32914326e-33}, {430.549805, 
              4.59163468e-41, 430.549927}, {4.59163468e-41, 430.550781, 4.59163468e-41}}, cmul_contrast = 1.16166782, isProphoto = true}
        ptc2ApplyState = {Working2Prophoto = {{430.550293, 4.59163468e-41, -7.43635371e-22}, {-3.32914326e-33, 430.550781, 4.59163468e-41}, {3.51708077e+13, 3.0611365e-41, 5.35180167e+24}}, Prophoto2Working = {{4.59163468e-41, 5.35179937e+24, 4.59163468e-41}, {
              430.552734, 1, 430.554199}, {4.59163468e-41, 430.553223, 4.59163468e-41}}, cmul_contrast = -7.43635371e-22, isProphoto = 134}
        hasColorToning = false
        strProtect = 0.5
        RedLow = 1
        GreenLow = 1
        BlueLow = 1
        RedMed = 1
        GreenMed = 1
        BlueMed = 1
        RedHigh = 1
        GreenHigh = 1
        BlueHigh = 1
        SatLow = 0.800000012
        SatHigh = 0.600000024
        Balan = 0
        chMixRR = 100
        chMixRG = 0
        chMixRB = 0
        chMixGR = 0
        chMixGG = 100
        chMixGB = 0
        chMixBR = 0
        chMixBG = 0
        chMixBB = 100
        shHighlights = 0
        shShadows = 0
        blackwhite = false
        algm = 0
        gammabwr = 1
        gammabwg = 1
        gammabwb = 1
        hasgammabw = false
        toneCurveHistSize = 256
        histToneCurveCompression = 8
        lumimulf = {0.288040191, 0.711874127, 8.56999977e-05}
bug

All 22 comments

thanks, seems a dupe of #4166. I'll add guards in the code

fixed in 9db14cc52101e899dff1c76115b9fa5314e3efa6

I'm still getting a segfault in LUT.h

I batch-enabled Fattal in all images in the test_images folder, put them to the queue, and when I start the queue, crash. The first two images are the little PNGs.

https://paste.pound-python.org/show/KzQ7iPppeTLhh8h9FEYv/

Thread 37 "rawtherapee" received signal SIGSEGV, Segmentation fault.
[Switching to LWP 18533]
0x000055555600dc01 in LUT<float>::operator[]<float, void> (this=0x7fffc3ffe050, index=-nan(0x400000)) at /home/morgan/programs/code-rawtherapee/rtengine/LUT.h:468
468             T p1 = data[idx];
(gdb) bt full
#0  0x000055555600dc01 in LUT<float>::operator[]<float, void> (this=0x7fffc3ffe050, index=-nan(0x400000)) at /home/morgan/programs/code-rawtherapee/rtengine/LUT.h:468
        idx = -2147483648
        diff = -nan(0x400000)
        p1 = -511.533203
        p2 = 4.59163468e-41
#1  0x00005555560ac32a in rtengine::ImProcFunctions::rgbProc () at /home/morgan/programs/code-rawtherapee/rtengine/improcfun.cc:3578
        g = -nan(0x400000)
        Y = -nan(0x400000)
        r = -nan(0x400000)
        b = -nan(0x400000)
        tonefactor = 0
        j = 0
        tj = 0
        i = 0
        ti = 0
        ii = 0
        jj = 0
        buffer = 0x7fffbc0008c0 ""
        editWhateverBuffer = 0x0
        jstart = 0
        tH = 100
        editIFloatTmpR = 0x0
        editIFloatTmpB = 0x0
        out_rgbx = {0, 0, 0, 1.75, -nan(0x7fffff), nan(0x7fffff), 0, 0, -5.19403368e-13, 1.87497842, 0, 0, 0, 0, 9.40395481e-38, 20, 4.65661287e-10, 2.04999995, 4.17232506e-08, 2.04999995, 4.17232506e-08, 2.04999995, 0, 0, -1.65436123e-24, 0.212499991, 0, 0, 0, 0, 
          1.13533202e-41, 1.13533202e-41, 0, 0, 4.20389539e-45, 0, 5.18893957e+33, 4.59163468e-41, 5.18909802e+33, 4.59163468e-41, 5.1889049e+33, 4.59163468e-41, -1.38233625e+30, 4.59163468e-41, 0, 1.875, 0, 1.84123731, -3.0733645e-05, 4.59163468e-41, -5.56318225e+30, 
          4.59163468e-41, 0, 0, 0, 0, 0, 0, -5.56806873e+30, 4.59163468e-41, 0, 0, -5.58889126e+30, 4.59163468e-41, 5.18909802e+33, 4.59163468e-41, 5.18893957e+33, 4.59163468e-41, -3.05733411e-05, 4.59163468e-41, 5.18932085e+33, 4.59163468e-41, -3.07306182e-05, 
          4.59163468e-41, -5.58781472e+30, 4.59163468e-41, 0.140519217, 0.0281562004, 0.864949226, 0, 1.37467379e-42, 0, 1.40129846e-45, 0 <repeats 11 times>, -1.03797113e+34, 4.59163468e-41, 5.18902375e+33, 4.59163468e-41, 1.87773994e-43, 0, -1.03769878e+34, 
          4.59163468e-41, 5.18898908e+33, 4.59163468e-41, 5.18902375e+33, 4.59163468e-41, -6.23332164e+29, 4.59163468e-41, 5.1890287e+33, 4.59163468e-41, -9.83501049e+29, 4.59163468e-41, 5.18942484e+33, 4.59163468e-41, 1.40129846e-45, 0, 1.46544284e+13, 3.0611365e-41, 
          -1.03805927e+34, 4.59163468e-41, 1.46544955e+13, 3.0611365e-41, 5.17201754e+33, 4.59163468e-41, 1.87773994e-43, 0 <repeats 11 times>, -8.15292319e+29, 4.59163468e-41, -8.13140053e+29, 4.59163468e-41, 5.18909307e+33, 4.59163468e-41, 5.189306e+33, 
          4.59163468e-41, 5.18935799e+33, 4.59163468e-41, -9.83874834e+29, 4.59163468e-41, -8.13140053e+29, 4.59163468e-41, 0, 0, 0, 0, -8.13123506e+29, 4.59163468e-41, -8.172943e+29, 4.59163468e-41, -8.17295585e+29, 4.59163468e-41, 1.40129846e-45, 0, 5.18945455e+33, 
          4.59163468e-41, 5.18945455e+33, 4.59163468e-41, -8.15894364e+29, 4.59163468e-41, 5.18906336e+33, 4.59163468e-41, -9.00954191e+33, 4.59163468e-41, 2.15799964e-43, 0, -1.00321869e+34, 4.59163468e-41, -2.7918776e-34, 0, -1.14411682e+30, 4.59163468e-41, 
          5.18914754e+33, 4.59163468e-41, -9.01079409e+33, 4.59163468e-41, 2.15799964e-43, 0, -1.1448322e+30, 4.59163468e-41, -1.00321869e+34, 4.59163468e-41, 5.18913021e+33, 4.59163468e-41, 5.18912897e+33, 4.59163468e-41, -9.00980126e+33, 4.59163468e-41, 
          5.19082619e+33, 4.59163468e-41, 0, 4.59163468e-41, 1.47136339e-43, 0...}
        editIFloatBuffer = 0x0
        rtemp = 0x7fffbc0008c0
        btemp = 0x7fffbc0193c0
        istart = 0
        editIFloatTmpG = 0x0
        data = 0x7fffbc0008c0 ""
        gtemp = 0x7fffbc00cdc0
        editWhateverTmp = 0x0
        tW = 100
        histToneCurveThr = {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, maxsv = {0, 0, 0, 0}, sizev = {0, 0, 0, 0}, sizeiv = {0, 0}, dirty = true}
        working = 0x7fffb8002660
        lab = 0x7fffb8002420
        hltonecurve = @0x7fffc3ffdff0: {<rtengine::NonCopyable> = {<No data fields>}, maxs = 65534, maxsf = 65534, data = 0x7fffb806c8d0, clip = 1, size = 65536, upperBound = 65535, owner = 1, maxsv = {65534, 65534, 65534, 65534}, sizev = {65535, 65535, 65535, 65535}, 
          sizeiv = {281470681808895, 281470681808895}, dirty = true}
        shtonecurve = @0x7fffc3ffe050: {<rtengine::NonCopyable> = {<No data fields>}, maxs = 65534, maxsf = 65534, data = 0x7fffb80ac8e0, clip = 2, size = 65536, upperBound = 65535, owner = 1, maxsv = {65534, 65534, 65534, 65534}, sizev = {65535, 65535, 65535, 65535}, 
          sizeiv = {281470681808895, 281470681808895}, dirty = true}
        tonecurve = @0x7fffc3ffe0b0: {<rtengine::NonCopyable> = {<No data fields>}, maxs = 65534, maxsf = 65534, data = 0x7fffb80ec8f0, clip = 0, size = 65536, upperBound = 65535, owner = 1, maxsv = {65534, 65534, 65534, 65534}, sizev = {65535, 65535, 65535, 65535}, 
          sizeiv = {281470681808895, 281470681808895}, dirty = true}
        shmap = 0x0
        sat = 0
        rCurve = @0x7fffc3ffe3b0: {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, maxsv = {0, 0, 0, 0}, sizev = {0, 0, 0, 0}, sizeiv = {0, 0}, dirty = true}
        gCurve = @0x7fffc3ffe410: {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, maxsv = {0, 0, 0, 0}, sizev = {0, 0, 0, 0}, sizeiv = {0, 0}, dirty = true}
        bCurve = @0x7fffc3ffe470: {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, maxsv = {0, 0, 0, 0}, sizev = {0, 0, 0, 0}, sizeiv = {0, 0}, dirty = true}
        satLimit = 0.50999999
        satLimitOpacity = 0.199999988
        ctColorCurve = @0x7fffc3ffe610: {_vptr.ColorGradientCurve = 0x5555568eb808 <vtable for rtengine::ColorGradientCurve+16>, lut1 = {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, 
            maxsv = {0, 0, 0, 0}, sizev = {0, 0, 0, 0}, sizeiv = {0, 0}, dirty = true}, lut2 = {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, maxsv = {0, 0, 0, 0}, sizev = {0, 0, 0, 0}, 
            sizeiv = {0, 0}, dirty = true}, lut3 = {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, maxsv = {0, 0, 0, 0}, sizev = {0, 0, 0, 0}, sizeiv = {0, 0}, dirty = true}, 
          low = 6.9533060732495661e-310, high = 6.9533060732835578e-310}
        ctOpacityCurve = @0x7fffc3ffe750: {_vptr.OpacityCurve = 0x5555568eb828 <vtable for rtengine::OpacityCurve+16>, lutOpacityCurve = {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, 
---Type <return> to continue, or q <return> to quit---
            maxsv = {0, 0, 0, 0}, sizev = {0, 0, 0, 0}, sizeiv = {0, 0}, dirty = true}}
        opautili = false
        clToningcurve = @0x7fffc3ffe290: {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, maxsv = {0, 0, 0, 0}, sizev = {0, 0, 0, 0}, sizeiv = {0, 0}, dirty = true}
        cl2Toningcurve = @0x7fffc3ffe2f0: {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, maxsv = {0, 0, 0, 0}, sizev = {0, 0, 0, 0}, sizeiv = {0, 0}, dirty = true}
        customToneCurve1 = @0x7fffc3ffe530: {_vptr.ToneCurve = 0x5555568e9dc0 <vtable for rtengine::ToneCurve+16>, lutToneCurve = {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, maxsv = {0, 
              0, 0, 0}, sizev = {0, 0, 0, 0}, sizeiv = {0, 0}, dirty = true}}
        customToneCurve2 = @0x7fffc3ffe5a0: {_vptr.ToneCurve = 0x5555568e9dc0 <vtable for rtengine::ToneCurve+16>, lutToneCurve = {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, maxsv = {0, 
              0, 0, 0}, sizev = {0, 0, 0, 0}, sizeiv = {0, 0}, dirty = true}}
        customToneCurvebw1 = @0x7fffc3ffe910: {_vptr.ToneCurve = 0x5555568e9dc0 <vtable for rtengine::ToneCurve+16>, lutToneCurve = {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, maxsv = {
              0, 0, 0, 0}, sizev = {0, 0, 0, 0}, sizeiv = {0, 0}, dirty = true}}
        dcpProf = 0x0
        asIn = @0x7fffc3ffd350: {data = std::unique_ptr<rtengine::DCPProfile::ApplyState::Data> containing 0x7fffb800ea80}
        histToneCurve = @0x7fffc3ffd420: {<rtengine::NonCopyable> = {<No data fields>}, maxs = 0, maxsf = 0, data = 0x0, clip = 0, size = 0, upperBound = 0, owner = 1, maxsv = {0, 0, 0, 0}, sizev = {0, 0, 0, 0}, sizeiv = {0, 0}, dirty = true}
        this = 0x7fffb8001ea0
        tmpImage = 0x0
        editImgFloat = 0x0
        editWhatever = 0x0
        editID = EUID_None
        h_th = 0
        s_th = 0
        processSH = false
        processLCE = false
        lceamount = 0
        wprof = 0x555556518d60 <_ZL12xyz_prophoto>
        wiprof = 0x555556518dc0 <_ZL12prophoto_xyz>
        toxyz = {{0.827291906, 0.140211254, 0.0325175263}, {0.288040191, 0.711874127, 8.56999977e-05}, {0, 0, 1.00037587}}
        equalR = 2.47144032
        equalG = 1
        equalB = 8306.58301
        wip = {{1.3459433000000001, -0.25560749999999999, -0.051111799999999999}, {-0.5445989, 1.5081673, 0.020535100000000001}, {0, 0, 1.2118127999999999}}
        wp = {{0.79767489999999996, 0.1351917, 0.031353399999999997}, {0.28804020000000002, 0.71187409999999995, 8.5699999999999996e-05}, {0, 0, 0.82521}}
        mixchannels = false
        hCurve = 0x0
        sCurve = 0x0
        vCurve = 0x0
        bwlCurve = 0x0
        hCurveEnabled = false
        sCurveEnabled = false
        vCurveEnabled = false
        bwlCurveEnabled = false
        hald_clut = std::shared_ptr (empty) 0x0
        clutAndWorkingProfilesAreSame = false
        xyz2clut = 0x0
        clut2xyz = 0x0
        v_work2xyz = {{{-511.569824, 4.59163468e-41, -511.569946, 4.59163468e-41}, {-511.570801, 4.59163468e-41, -511.570435, 4.59163468e-41}, {-511.570312, 4.59163468e-41, 0.34262085, 1.73866576e-28}}, {{-511.570801, 4.59163468e-41, 3.54318234e+13, 3.0611365e-41}, {
              -3.27986927e-05, 4.59163468e-41, -3.27986781e-05, 4.59163468e-41}, {-511.572754, 1, -511.574219, 4.59163468e-41}}, {{-511.573242, 4.59163468e-41, 0.34262085, 1.73866576e-28}, {-511.573242, 4.59163468e-41, -511.573364, 4.59163468e-41}, {-511.574219, 
              4.59163468e-41, -511.573853, 4.59163468e-41}}}
        v_xyz2clut = {{{-511.57373, 4.59163468e-41, 0.34262085, 1.73866576e-28}, {-511.574219, 4.59163468e-41, 3.54318234e+13, 3.0611365e-41}, {-3.27895978e-05, 4.59163468e-41, -3.27895832e-05, 4.59163468e-41}}, {{-511.576172, 1, -511.577637, 4.59163468e-41}, {
              -511.57666, 4.59163468e-41, 0.34262085, 1.73866576e-28}, {-511.57666, 4.59163468e-41, -511.576782, 4.59163468e-41}}, {{-511.577637, 4.59163468e-41, -511.577271, 4.59163468e-41}, {-511.577148, 4.59163468e-41, 0.34262085, 1.73866576e-28}, {-511.577637, 
              4.59163468e-41, 3.54318234e+13, 3.0611365e-41}}}
        v_clut2xyz = {{{-3.27850576e-05, 4.59163468e-41, -3.2785043e-05, 4.59163468e-41}, {-511.57959, 1, -511.581055, 4.59163468e-41}, {-511.580078, 4.59163468e-41, 0.34262085, 1.73866576e-28}}, {{-511.580078, 4.59163468e-41, -511.5802, 4.59163468e-41}, {-511.581055, 
              4.59163468e-41, -511.580688, 4.59163468e-41}, {-511.580566, 4.59163468e-41, 0.34262085, 1.73866576e-28}}, {{-511.581055, 4.59163468e-41, 3.54318234e+13, 3.0611365e-41}, {-3.27827875e-05, 4.59163468e-41, -3.27827729e-05, 4.59163468e-41}, {-511.583008, 1, 
              -511.584473, 4.59163468e-41}}}
        v_xyz2work = {{{-511.583496, 4.59163468e-41, 0.34262085, 1.73866576e-28}, {-511.583496, 4.59163468e-41, -511.583618, 4.59163468e-41}, {-511.584473, 4.59163468e-41, -511.584106, 4.59163468e-41}}, {{-511.583984, 4.59163468e-41, 0.34262085, 1.73866576e-28}, {
              -511.584473, 4.59163468e-41, 3.54318234e+13, 3.0611365e-41}, {-3.27816524e-05, 4.59163468e-41, -3.27816379e-05, 4.59163468e-41}}, {{-511.586426, 1, -511.587891, 4.59163468e-41}, {-511.586914, 4.59163468e-41, 0.34262085, 1.73866576e-28}, {-511.586914, 
              4.59163468e-41, -511.587036, 4.59163468e-41}}}
        film_simulation_strength = 1
        exp_scale = 1
        comp = 0
        hlrange = 54722.4609
        isProPhoto = true
        curveMode = rtengine::procparams::ToneCurveParams::TC_MODE_STD
        curveMode2 = rtengine::procparams::ToneCurveParams::TC_MODE_STD
---Type <return> to continue, or q <return> to quit---
        highlight = false
        hasToneCurve1 = false
        hasToneCurve2 = false
        beforeCurveMode = rtengine::procparams::BlackWhiteParams::TC_MODE_STD_BW
        hasToneCurvebw1 = false
        ptc1ApplyState = {Working2Prophoto = {{-3.28532624e-05, 4.59163468e-41, -3.28532478e-05}, {4.59163468e-41, -511.565918, 1}, {-511.567383, 4.59163468e-41, -511.566406}}, Prophoto2Working = {{4.59163468e-41, 0.34262085, 1.73866576e-28}, {-511.566406, 
              4.59163468e-41, -511.566528}, {4.59163468e-41, -511.567383, 4.59163468e-41}}, cmul_contrast = -511.567017, isProphoto = 255}
        ptc2ApplyState = {Working2Prophoto = {{-511.566895, 4.59163468e-41, 0.34262085}, {1.73866576e-28, -511.567383, 4.59163468e-41}, {3.54318234e+13, 3.0611365e-41, -3.28168826e-05}}, Prophoto2Working = {{4.59163468e-41, -3.2816868e-05, 4.59163468e-41}, {
              -511.569336, 1, -511.570801}, {4.59163468e-41, -511.569824, 4.59163468e-41}}, cmul_contrast = 0.34262085, isProphoto = 238}
        hasColorToning = false
        strProtect = 0.5
        RedLow = 1
        GreenLow = 1
        BlueLow = 1
        RedMed = 1
        GreenMed = 1
        BlueMed = 1
        RedHigh = 1
        GreenHigh = 1
        BlueHigh = 1
        SatLow = 0.800000012
        SatHigh = 0.600000024
        Balan = 0
        chMixRR = 100
        chMixRG = 0
        chMixRB = 0
        chMixGR = 0
        chMixGG = 100
        chMixGB = 0
        chMixBR = 0
        chMixBG = 0
        chMixBB = 100
        shHighlights = 0
        shShadows = 0
        blackwhite = false
        algm = 0
        gammabwr = 1
        gammabwg = 1
        gammabwb = 1
        hasgammabw = false
        toneCurveHistSize = 0
        histToneCurveCompression = 0
        lumimulf = {0.288040191, 0.711874127, 8.56999977e-05}
#2  0x00007ffff168118e in ?? () from /usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/libgomp.so.1
No symbol table info available.
#3  0x00007ffff124365c in ?? () from /lib64/libpthread.so.0
No symbol table info available.
#4  0x00007ffff0f824fd in clone () from /lib64/libc.so.6
No symbol table info available.

there's a div by zero somewhere I guess. can you also upload the pp3s?

@agriggio Alberto, maybe the div by zero is in the last loop of ToneMapFattal02 when Y is zero

but Y should not be zero there -- see how it is computed above

@agriggio Do I confuse Yand l or you?

Edit: I already wondered why l is clamped by a small espilon...

I don't have the code in front of me, but Y should contact straight from Yr iirc, which should not be zero by construction -- see how it is computed. unless I made some mistake of course...

clamping of l instead comes from the original code

PP3 from .config/RawTherapee/batch/: https://filebin.net/jkf5o0pfqys7lppn

@agriggio ok,

Another thing (though unrelated to the crash): with the latest optimizations and the multithreaded fftw stuff the bottleneck now is findMaxMinPercentile which needs about one second for a 10 MP file on my machine

@agriggio

const float luminance_noise_floor = 65.535f;
.
.
.
if (Yr(x,y) <= luminance_noise_floor) {
    Yr(x, y) = Yr_med(x, y);
}

In case Yr_med is zero, you will get a yr value of zero, which can lead to a division by zero later...

Found another crash bug.

  1. Open an image and apply profile "Neutral"
  2. Switch on noise reduction
  3. Check median filter
  4. Zoom to 100% --> Crash

@TooWaBoo does this have to do with fattal? which RT version?

Confirmed using latest fattal version with median patch. Didn't try before patch

Could not reproduce @TooWaBoo 's crash using a debug build run without GDB of branch save-strategy2, 821080de.

Confimed using latest fattal (commit b1938e272).
Didn't crash with a build from yesterday (commit 356d49525 I think).

ok that's clearly my fault then :-) I'll take this

should be fixed now (see b8ff601efa00c1d2adcf9e57f0d00bcb15904150)

Crash confirmed, fix confirmed.

Fix confirmed.

@TooWaBoo I didn't test yet, but your avatar lets me smile each time I see it :)

@heckflosse , Always start the day with a smile. 馃檪

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Hombre57 picture Hombre57  路  3Comments

Floessie picture Floessie  路  5Comments

heckflosse picture heckflosse  路  4Comments

jade-nl picture jade-nl  路  4Comments

heckflosse picture heckflosse  路  3Comments