Rawtherapee: Segmentation fault when switching to next/previous image while curve pipette is enabled

Created on 30 Dec 2015  ·  42Comments  ·  Source: Beep6581/RawTherapee

I get a segmentation fault when using RT (latest master as of 2015-12-30) with the following backtrace:
http://pastebin.com/3H7SFZN9

During this editing session, I fiddled around in the lab adjustments/curves-section (CH mostly) and when pasting a profile to another image and switching to that image it crashes.

Please tell me if there's something else I should provide!
BR,
Johan

critical bug

Most helpful comment

@heckflosse @Hombre57 Found it! :tada:

We were simply riding a dead horse:

Thread 1 "rawtherapee" hit Breakpoint 2, rtengine::Crop::~Crop (this=0x3752850, __in_chrg=<optimized out>) at /home/user/src/rawtherapee/rtengine/dcrop.cc:61
61  }
(gdb) bt
#0  rtengine::Crop::~Crop (this=0x3752850, __in_chrg=<optimized out>) at /home/user/src/rawtherapee/rtengine/dcrop.cc:61
#1  0x0000000000cfba7a in rtengine::ImProcCoordinator::~ImProcCoordinator (this=0x3182860, __in_chrg=<optimized out>)
    at /home/user/src/rawtherapee/rtengine/improccoordinator.cc:117
#2  0x0000000000cfc0cc in rtengine::ImProcCoordinator::~ImProcCoordinator (this=0x3182860, __in_chrg=<optimized out>)
    at /home/user/src/rawtherapee/rtengine/improccoordinator.cc:122
#3  0x0000000000c0409e in rtengine::StagedImageProcessor::destroy (sip=0x3182860) at /home/user/src/rawtherapee/rtengine/init.cc:79
#4  0x0000000000803fd9 in EditorPanel::close (this=0x2490400) at /home/user/src/rawtherapee/rtgui/editorpanel.cc:786
#5  0x00000000008037a2 in EditorPanel::open (this=0x2490400, tmb=0x7fffc4003910, isrc=0x7fffcc004e00) at /home/user/src/rawtherapee/rtgui/editorpanel.cc:692
#6  0x00000000007f0623 in FilePanel::imageLoaded (this=0x18a25e0, thm=0x7fffc4003910, pc=0x2174ee0) at /home/user/src/rawtherapee/rtgui/filepanel.cc:277
#7  0x00000000007f8072 in sigc::bound_mem_functor2<bool, FilePanel, Thumbnail*, ProgressConnector<rtengine::InitialImage*>*>::operator() (this=0x2478360, 
    _A_a1=@0x2478380: 0x7fffc4003910, _A_a2=@0x2478388: 0x2174ee0) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:2143
#8  0x00000000007f7295 in sigc::adaptor_functor<sigc::bound_mem_functor2<bool, FilePanel, Thumbnail*, ProgressConnector<rtengine::InitialImage*>*> >::operator()<Thumbnail*&, ProgressConnector<rtengine::InitialImage*>*&> (this=0x2478358, _A_arg1=@0x2478380: 0x7fffc4003910, _A_arg2=@0x2478388: 0x2174ee0)
    at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:108
#9  0x00000000007f61a5 in sigc::bind_functor<-1, sigc::bound_mem_functor2<bool, FilePanel, Thumbnail*, ProgressConnector<rtengine::InitialImage*>*>, Thumbnail*, ProgressConnector<rtengine::InitialImage*>*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::operator() (this=0x2478350)
    at /usr/include/sigc++-2.0/sigc++/adaptors/bind.h:1340
#10 0x00000000007f4f09 in sigc::internal::slot_call0<sigc::bind_functor<-1, sigc::bound_mem_functor2<bool, FilePanel, Thumbnail*, ProgressConnector<rtengine::InitialImage*>*>, Thumbnail*, ProgressConnector<rtengine::InitialImage*>*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>, bool>::call_it (rep=0x2478320)
    at /usr/include/sigc++-2.0/sigc++/functors/slot.h:114
#11 0x00000000007f81cf in sigc::slot0<bool>::operator() (this=0x2ee4438) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:513
#12 0x00000000007f7590 in sigc::adaptor_functor<sigc::slot0<bool> >::operator() (this=0x2ee4430) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:256
#13 0x00000000007f6469 in sigc::internal::slot_call<sigc::slot0<bool>, bool>::call_it (rep=0x2ee4400) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:461
#14 0x00000000007f770c in sigc::internal::signal_emit0<bool, sigc::nil>::emit (impl=0x1fd91c0) at /usr/include/sigc++-2.0/sigc++/signal.h:709
#15 0x00000000007f6706 in sigc::signal0<bool, sigc::nil>::emit (this=0x7fffcc001180) at /usr/include/sigc++-2.0/sigc++/signal.h:2804
#16 0x00000000007f5127 in ProgressConnector<rtengine::InitialImage*>::emitEndSignalUI (data=0x7fffcc001180)
    at /home/user/src/rawtherapee/rtgui/progressconnector.h:78
#17 0x00007ffff6f9054a in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007ffff6f90900 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007ffff6f90c22 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007ffff63a2567 in gtk_main () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#21 0x00007ffff45d43c1 in Gtk::Main::run(Gtk::Window&) () from /usr/lib/x86_64-linux-gnu/libgtkmm-2.4.so.1
#22 0x00000000009be1a3 in main (argc=1, argv=0x7fffffffe3b8) at /home/user/src/rawtherapee/rtgui/main.cc:363

Fix:

diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc
index 80dc3df..93a20c2 100644
--- a/rtgui/editorpanel.cc
+++ b/rtgui/editorpanel.cc
@@ -781,6 +781,7 @@ void EditorPanel::close ()
         if(iareapanel) {
             iareapanel->imageArea->setPreviewHandler (NULL);
             iareapanel->imageArea->setImProcCoordinator (NULL);
+            iareapanel->imageArea->unsubscribe();
         }

         rtengine::StagedImageProcessor::destroy (ipc);

Small cause, big effect. :grinning:

HTH
Flössie

All 42 comments

That doesn't look like a debug build, also we need exact steps to reproduce, raw, pp3, etc.
http://rawpedia.rawtherapee.com/How_to_write_useful_bug_reports

Well, it isn't :-)
It's a RelWithDebugInfo, I was hoping it would suffice. I have a Debug-version compiled, but it's harder to provoke it. I'll keep on trying and will post further info later.

Happy new year in the mean time!

I was able to get a full backtrace from a debug build, but can't really find any structured way of reproducing it. It "sort of" happens when I selected an adjustment point in the Lab/CH-section and then later on copied that pp3 to another image. Does the backtrace say anything useful at all? I don't speak backtrace that well...
http://pastebin.com/AuzWaUcJ

I'll keep on testing.

I'm on Gentoo linux/gcc-5.3. Will test with 4.9.3 to see if the crashes have something to do with that.

Ok, no luck with downgrading to gcc 4.9.3. But:

I downloaded a couple of sample files from the net and tried with those. Neutral profile applied and only changes made to Lab/CH, this time randomly moving existing points up and down, creating a few new ones and going to the next image. I got a crash after my second image, and this is now unfortunately normal behaviour for "my" RT. :-/

My computer runs a Gentoo Linux setup, and the splash gives me this:
Branch: master
Version: 4.2.577
Changeset: cdd073e80591457ba126a2ce58113f2558cf8818
Compiler: cc 4.9.3
Processor: Intel(R)\ Core(TM)\ i7-2600K\ CPU\ @\ 3.40GHz
System: Linux
Bit depth: 64 bits
Gtkmm: V2.24.4
Build type: debug
Build flags: -std=c++11 -std=gnu++11 -march=native -Werror=unused-label -fopenmp -Werror=unknown-pragmas -g
Link flags: -march=native
OpenMP support: ON
MMAP support: ON

Files are here, hope I did the sharing correctly... Would be a first... :-)
https://drive.google.com/folderview?id=0B7pUaGeFwBEodWxBamhqM3I0S3c&usp=sharing

Backtrace for the specific crash using the provieded samples: http://pastebin.com/wfkDJtHC
Another backtrace, if it helps: http://pastebin.com/YhDKTCQk

Thanks in advance!

Hi, I would be so thankful if someone could take a look at this issue :-)
It still persists in master, info as of below:

Branch: master
Version: 4.2.1069
Changeset: 4b54f985008522e307507f3d3af882e0b07da074
Compiler: cc 5.4.0
Processor: Intel(R)\ Core(TM)\ i7-2600K\ CPU\ @\ 3.40GHz
System: Linux
Bit depth: 64 bits
Gtkmm: V2.24.4
Build type: debug
Build flags: -std=gnu++11 -march=native -Werror=unused-label -fopenmp -Werror=unknown-pragmas -g
Link flags: -march=native
OpenMP support: ON
MMAP support: ON

I've created four new backtraces using the above build:



All crashes happen when I've used the Lab tools, CH-curve and then went to the next image using F4... If you want images and pp3's, please let me know!

BR,
Johan

I'll have a preliminary look at it tonight, but I can't promise anything. ;)

Images and PP3s could be beneficial. Please use filebin.net for that. Thanks!

I will hang a portrait of you next to my monitor, Floessie! Files are coming...

files at filebin.net

Take the first one and edit the lab-curves/CH. I did like this: Screenshot

And then simply pressed F4. Boom.

@mks9900 @Floessie I can reproduce the crash when I click the button to add a control point before I press F4

I can trigger the crash this way:

Apply the first pp3 file from Johan's filebin link to two consecutive files.
Open the first one. Click on the CH curve in lab-curves and click on the pipette button in the curve dialog
Press F4 (SETM required) => crash

If I don't click on the pipette button before pressing F4 I can't trigger the crash. I also can't trigger the crash when the image I switch to using F4 has a linear CH lab-curve

Thank you Ingo for your research! Much appreciated!

Here's a bt full

Hi Ingo, now I'm with you. Looking...

@Floessie :+1:

@heckflosse I fail to reproduce the problem with your instructions. I downloaded the filebin files and applied the first PP3 on the second file. I then open the first file, select CH (which is flat) and pipette, press F4 and get to the second image. I must be missing something...

Meanwhile: It's Crop::cropMutex that's missing (or crop instance gone), isn't it?

@Floessie both files need to have a CH curve which is not flat.

@heckflosse I only get a SEGV, when I'm also using the cross-shaped button below the pipette button in CH.

Thread 1 "rawtherapee" received signal SIGSEGV, Segmentation fault.
0x00000000005e7de0 in EditDataProvider::getCurrSubscriber() ()
(gdb) bt
#0  0x00000000005e7de0 in EditDataProvider::getCurrSubscriber() ()
#1  0x00000000008f6ef1 in rtengine::Crop::setEditSubscriber(EditSubscriber*) ()
#2  0x00000000006d9e8f in ImageArea::unsubscribe() ()
#3  0x000000000068ee19 in CurveEditorGroup::curveTypeToggled(CurveEditor*) ()
#4  0x00007ffff6b214d8 in Glib::SignalProxyNormal::slot0_void_callback(_GObject*, void*) ()
   from /usr/lib/x86_64-linux-gnu/libglibmm-2.4.so.1
#5  0x00007ffff7267f85 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6  0x00007ffff727a063 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7  0x00007ffff7282bec in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#8  0x00007ffff7282fcf in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#9  0x00007ffff6467093 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#10 0x00007ffff459dc40 in Gtk::Button_Class::clicked_callback(_GtkButton*) ()
   from /usr/lib/x86_64-linux-gnu/libgtkmm-2.4.so.1
#11 0x00007ffff7267f85 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x00007ffff727996b in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff7282bec in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x00007ffff7282fcf in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#15 0x000000000068cfc1 in CurveEditor::openIfNonlinear() ()
#16 0x00000000006edf30 in LCurve::autoOpenCurve() ()
#17 0x00000000007c0617 in ToolPanelCoordinator::profileChange(rtengine::procparams::PartialProfile const*, rtengine::ProcEvent, Glib::ustring const&, ParamsEdited const*) ()
#18 0x0000000000788f92 in ProfilePanel::initProfile(Glib::ustring const&, rtengine::procparams::ProcParams*) ()
#19 0x0000000000587f14 in EditorPanel::open(Thumbnail*, rtengine::InitialImage*) ()
#20 0x000000000057e7ff in FilePanel::imageLoaded(Thumbnail*, ProgressConnector<rtengine::InitialImage*>*) ()
#21 0x000000000057fc1f in ProgressConnector<rtengine::InitialImage*>::emitEndSignalUI(void*) ()
#22 0x00007ffff6f9054a in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#23 0x00007ffff6f90900 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007ffff6f90c22 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#25 0x00007ffff63a2567 in gtk_main () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#26 0x00007ffff45d43c1 in Gtk::Main::run(Gtk::Window&) () from /usr/lib/x86_64-linux-gnu/libgtkmm-2.4.so.1
#27 0x00000000004ff9b6 in main ()

This time:

(gdb) bt
#0  0x0000000000a06f80 in rtengine::LabImage::~LabImage() ()
#1  0x00000000008f6f3b in rtengine::Crop::setEditSubscriber(EditSubscriber*) ()
#2  0x00000000006d9e8f in ImageArea::unsubscribe() ()
#3  0x000000000068ee19 in CurveEditorGroup::curveTypeToggled(CurveEditor*) ()
#4  0x00007ffff6b214d8 in Glib::SignalProxyNormal::slot0_void_callback(_GObject*, void*) ()
...

@Floessie cross-shaped button

that's what I meant by 'pipette button' Sorry for confusion

@heckflosse Aha, okay. :) Then we are looking at the same problem. I'm preparing a debug build right now.

@heckflosse It says "MyMutex already locked!". So it's a double lock problem. Checking paths...

@heckflosse rtengine::Crop::~Crop() somehow calls rtengine::Crop::setEditSubscriber(). Checking... Edit: Wrong track...

@heckflosse It must be something completely different: Put debug messages in MyMutex::Lock and Crop::setCropSizes(), and cropMutex is definitely not locked, when it crashes in Crop::setEditSubscriber(), although it spits out "MyMutex already locked!". Member damaged?

@Floessie don't know currently but I'm searching too....

@Floessie I can trigger the crash also with rgb curves, but not with the r curve (which is the first one in rgb curves). Maybe that's a hint....

@Floessie I checked my last statement using lab curves. It stands: No crash when trying with first Lab curve (L), but crashes with a curve.

@heckflosse Same here, L okay, a crashes. We had CurveEditorGroup::curveTypeToggled() in the BT. Maybe something there?

Sorry, it's late and I have to leave without having provided something substantial. :unamused: I will continue to investigate tomorrow.

@Floessie same here

@Floessie

from curveeditor.cc

// Open up the curve if it has modifications and it's not already opened
// Returns: true if curve was non linear and opened
bool CurveEditor::openIfNonlinear()
{

    bool nonLinear = tempCurve.size() && (tempCurve[0] > subGroup->getValLinear()) && (tempCurve[0] < subGroup->getValUnchanged());

    if (nonLinear && !curveType->get_active()) {
        // Will trigger the signal_clicked event doing the display
        curveType->set_active( true );
    }

    return nonLinear;
}

I guess above code is related.

It returns true if curve is non linear and opened. But for any curve except the first curve of the tool the curve won't be open after F3/F4

@Floessie

in rtgui/curveeditor.cc commenting out line 276

// curveType->set_active( true );

avoids the crash. Just a hint. I didn't check for other issues caused by this change yet.

@Hombre57 Can you also have a look, please?

I'll look at this this w.e.

@heckflosse @Hombre57 Found it! :tada:

We were simply riding a dead horse:

Thread 1 "rawtherapee" hit Breakpoint 2, rtengine::Crop::~Crop (this=0x3752850, __in_chrg=<optimized out>) at /home/user/src/rawtherapee/rtengine/dcrop.cc:61
61  }
(gdb) bt
#0  rtengine::Crop::~Crop (this=0x3752850, __in_chrg=<optimized out>) at /home/user/src/rawtherapee/rtengine/dcrop.cc:61
#1  0x0000000000cfba7a in rtengine::ImProcCoordinator::~ImProcCoordinator (this=0x3182860, __in_chrg=<optimized out>)
    at /home/user/src/rawtherapee/rtengine/improccoordinator.cc:117
#2  0x0000000000cfc0cc in rtengine::ImProcCoordinator::~ImProcCoordinator (this=0x3182860, __in_chrg=<optimized out>)
    at /home/user/src/rawtherapee/rtengine/improccoordinator.cc:122
#3  0x0000000000c0409e in rtengine::StagedImageProcessor::destroy (sip=0x3182860) at /home/user/src/rawtherapee/rtengine/init.cc:79
#4  0x0000000000803fd9 in EditorPanel::close (this=0x2490400) at /home/user/src/rawtherapee/rtgui/editorpanel.cc:786
#5  0x00000000008037a2 in EditorPanel::open (this=0x2490400, tmb=0x7fffc4003910, isrc=0x7fffcc004e00) at /home/user/src/rawtherapee/rtgui/editorpanel.cc:692
#6  0x00000000007f0623 in FilePanel::imageLoaded (this=0x18a25e0, thm=0x7fffc4003910, pc=0x2174ee0) at /home/user/src/rawtherapee/rtgui/filepanel.cc:277
#7  0x00000000007f8072 in sigc::bound_mem_functor2<bool, FilePanel, Thumbnail*, ProgressConnector<rtengine::InitialImage*>*>::operator() (this=0x2478360, 
    _A_a1=@0x2478380: 0x7fffc4003910, _A_a2=@0x2478388: 0x2174ee0) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:2143
#8  0x00000000007f7295 in sigc::adaptor_functor<sigc::bound_mem_functor2<bool, FilePanel, Thumbnail*, ProgressConnector<rtengine::InitialImage*>*> >::operator()<Thumbnail*&, ProgressConnector<rtengine::InitialImage*>*&> (this=0x2478358, _A_arg1=@0x2478380: 0x7fffc4003910, _A_arg2=@0x2478388: 0x2174ee0)
    at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:108
#9  0x00000000007f61a5 in sigc::bind_functor<-1, sigc::bound_mem_functor2<bool, FilePanel, Thumbnail*, ProgressConnector<rtengine::InitialImage*>*>, Thumbnail*, ProgressConnector<rtengine::InitialImage*>*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::operator() (this=0x2478350)
    at /usr/include/sigc++-2.0/sigc++/adaptors/bind.h:1340
#10 0x00000000007f4f09 in sigc::internal::slot_call0<sigc::bind_functor<-1, sigc::bound_mem_functor2<bool, FilePanel, Thumbnail*, ProgressConnector<rtengine::InitialImage*>*>, Thumbnail*, ProgressConnector<rtengine::InitialImage*>*, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>, bool>::call_it (rep=0x2478320)
    at /usr/include/sigc++-2.0/sigc++/functors/slot.h:114
#11 0x00000000007f81cf in sigc::slot0<bool>::operator() (this=0x2ee4438) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:513
#12 0x00000000007f7590 in sigc::adaptor_functor<sigc::slot0<bool> >::operator() (this=0x2ee4430) at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:256
#13 0x00000000007f6469 in sigc::internal::slot_call<sigc::slot0<bool>, bool>::call_it (rep=0x2ee4400) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:461
#14 0x00000000007f770c in sigc::internal::signal_emit0<bool, sigc::nil>::emit (impl=0x1fd91c0) at /usr/include/sigc++-2.0/sigc++/signal.h:709
#15 0x00000000007f6706 in sigc::signal0<bool, sigc::nil>::emit (this=0x7fffcc001180) at /usr/include/sigc++-2.0/sigc++/signal.h:2804
#16 0x00000000007f5127 in ProgressConnector<rtengine::InitialImage*>::emitEndSignalUI (data=0x7fffcc001180)
    at /home/user/src/rawtherapee/rtgui/progressconnector.h:78
#17 0x00007ffff6f9054a in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007ffff6f90900 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007ffff6f90c22 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007ffff63a2567 in gtk_main () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#21 0x00007ffff45d43c1 in Gtk::Main::run(Gtk::Window&) () from /usr/lib/x86_64-linux-gnu/libgtkmm-2.4.so.1
#22 0x00000000009be1a3 in main (argc=1, argv=0x7fffffffe3b8) at /home/user/src/rawtherapee/rtgui/main.cc:363

Fix:

diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc
index 80dc3df..93a20c2 100644
--- a/rtgui/editorpanel.cc
+++ b/rtgui/editorpanel.cc
@@ -781,6 +781,7 @@ void EditorPanel::close ()
         if(iareapanel) {
             iareapanel->imageArea->setPreviewHandler (NULL);
             iareapanel->imageArea->setImProcCoordinator (NULL);
+            iareapanel->imageArea->unsubscribe();
         }

         rtengine::StagedImageProcessor::destroy (ipc);

Small cause, big effect. :grinning:

HTH
Flössie

Wow, super nice Flössie! I'd like to test this asap, but I'm not sure how
to patch the code using git... Any hints?
:-)

2016-09-29 10:39 GMT+02:00 Floessie [email protected]:

@heckflosse https://github.com/heckflosse @Hombre57
https://github.com/Hombre57 Found it! 🎉

We were simply riding a dead horse:

Thread 1 "rawtherapee" hit Breakpoint 2, rtengine::Crop::~Crop (this=0x3752850, __in_chrg=) at /home/user/src/rawtherapee/rtengine/dcrop.cc:61
61 }
(gdb) bt

0 rtengine::Crop::~Crop (this=0x3752850, __in_chrg=) at /home/user/src/rawtherapee/rtengine/dcrop.cc:61

1 0x0000000000cfba7a in rtengine::ImProcCoordinator::~ImProcCoordinator (this=0x3182860, __in_chrg=)

at /home/user/src/rawtherapee/rtengine/improccoordinator.cc:117

2 0x0000000000cfc0cc in rtengine::ImProcCoordinator::~ImProcCoordinator (this=0x3182860, __in_chrg=)

at /home/user/src/rawtherapee/rtengine/improccoordinator.cc:122

3 0x0000000000c0409e in rtengine::StagedImageProcessor::destroy (sip=0x3182860) at /home/user/src/rawtherapee/rtengine/init.cc:79

4 0x0000000000803fd9 in EditorPanel::close (this=0x2490400) at /home/user/src/rawtherapee/rtgui/editorpanel.cc:786

5 0x00000000008037a2 in EditorPanel::open (this=0x2490400, tmb=0x7fffc4003910, isrc=0x7fffcc004e00) at /home/user/src/rawtherapee/rtgui/editorpanel.cc:692

6 0x00000000007f0623 in FilePanel::imageLoaded (this=0x18a25e0, thm=0x7fffc4003910, pc=0x2174ee0) at /home/user/src/rawtherapee/rtgui/filepanel.cc:277

7 0x00000000007f8072 in sigc::bound_mem_functor2_>::operator() (this=0x2478360,

_A_a1=@0x2478380: 0x7fffc4003910, _A_a2=@0x2478388: 0x2174ee0) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:2143

8 0x00000000007f7295 in sigc::adaptor_functor >::operator()@0x2478380: 0x7fffc4003910, _A_arg2=@0x2478388: 0x2174ee0)

at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:108

9 0x00000000007f61a5 in sigc::bind_functor<-1, sigc::bound_mem_functor2, Thumbnail_, ProgressConnectorrtengine::InitialImage*_, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>::operator() (this=0x2478350)

at /usr/include/sigc++-2.0/sigc++/adaptors/bind.h:1340

10 0x00000000007f4f09 in sigc::internal::slot_call0, Thumbnail_, ProgressConnectorrtengine::InitialImage*_, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil>, bool>::call_it (rep=0x2478320)

at /usr/include/sigc++-2.0/sigc++/functors/slot.h:114

11 0x00000000007f81cf in sigc::slot0::operator() (this=0x2ee4438) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:513

12 0x00000000007f7590 in sigc::adaptor_functorsigc::slot0

13 0x00000000007f6469 in sigc::internal::slot_callsigc::slot0::call_it (rep=0x2ee4400) at /usr/include/sigc++-2.0/sigc++/functors/slot.h:461

14 0x00000000007f770c in sigc::internal::signal_emit0::emit (impl=0x1fd91c0) at /usr/include/sigc++-2.0/sigc++/signal.h:709

15 0x00000000007f6706 in sigc::signal0::emit (this=0x7fffcc001180) at /usr/include/sigc++-2.0/sigc++/signal.h:2804

16 0x00000000007f5127 in ProgressConnector::emitEndSignalUI (data=0x7fffcc001180)

at /home/user/src/rawtherapee/rtgui/progressconnector.h:78

17 0x00007ffff6f9054a in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0

18 0x00007ffff6f90900 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0

19 0x00007ffff6f90c22 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0

20 0x00007ffff63a2567 in gtk_main () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0

21 0x00007ffff45d43c1 in Gtk::Main::run(Gtk::Window&) () from /usr/lib/x86_64-linux-gnu/libgtkmm-2.4.so.1

22 0x00000000009be1a3 in main (argc=1, argv=0x7fffffffe3b8) at /home/user/src/rawtherapee/rtgui/main.cc:363

Fix:

diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc
index 80dc3df..93a20c2 100644--- a/rtgui/editorpanel.cc+++ b/rtgui/editorpanel.cc@@ -781,6 +781,7 @@ void EditorPanel::close ()
if(iareapanel) {
iareapanel->imageArea->setPreviewHandler (NULL);
iareapanel->imageArea->setImProcCoordinator (NULL);+ iareapanel->imageArea->unsubscribe();
}

     rtengine::StagedImageProcessor::destroy (ipc);

Small cause, big effect. 😀

HTH
Flössie


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Beep6581/RawTherapee/issues/3048#issuecomment-250405665,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ANIPuqbhlnU_XL791llblMbrCyAoKyE_ks5qu3lBgaJpZM4G89zg
.

@mks9900 That's super simple:

  • Paste the patch above into a file (obviously).
  • git apply fix-3048.patch

Alternatively, as it's a one-liner, just fix it by hand in an editor of your choice. :smile:

HTH
Flössie

Great!! Will test when I get home tonight! 👍☺️

Den 29 sep. 2016 11:11 AM skrev "Floessie" [email protected]:

@mks9900 https://github.com/mks9900 That's super simple:

  • Paste the patch above into a file (obviously).
  • git apply fix-3048.patch

Alternatively, as it's a one-liner, just fix it by hand in an editor of
your choice. 😄

HTH
Flössie


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Beep6581/RawTherapee/issues/3048#issuecomment-250412661,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ANIPuqJng7O4I3heHaS715ogI12fjI14ks5qu4DdgaJpZM4G89zg
.

@Floessie Fix confirmed. Thank you :+1:

It works here too!! :+1: :)
This is just perfect, thank you so much for this! A question: are other tools also affected; I'm thinking of HSV-equalizer and the sorts?

Ingen orsak. How shall I provide you with a portrait of me? :wink:

Thanks @ all for testing!

Hey, that won't be a problem, I just googled your name and your picture showed up: Flössie I simply knew it had to be the right one...
:-)

Was this page helpful?
0 / 5 - 0 ratings