Beep6581 / RawTherapee

A powerful cross-platform raw photo processing program
https://rawtherapee.com
GNU General Public License v3.0
2.88k stars 323 forks source link

RT stuck in loop when pasting profile #2347

Closed Beep6581 closed 9 years ago

Beep6581 commented 9 years ago

Originally reported on Google Code with ID 2363

I just got RT stuck in a loop. Nothing in the queue. I opened a new raw from the Filmstrip
by double-clicking (no F3/F4), then clicked on the Paste Profile button, but it didn't
work, so either that got it stuck, or it was already stuck before I clicked it.

I attached GDB to the running process and got this backtrace. Seems that the profile
paste click did go through.

(gdb) bt
#0  __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
#1  0x00007f88a85f2e71 in _L_lock_967 () from /lib64/libpthread.so.0
#2  0x00007f88a85f2d07 in __GI___pthread_mutex_lock (mutex=0x7f8818070d90) at pthread_mutex_lock.c:85
        __PRETTY_FUNCTION__ = "__pthread_mutex_lock"
        type = 4294966784
#3  0x00000000008cd8a7 in rtengine::ImProcCoordinator::endUpdateParams(int) ()
#4  0x000000000074e301 in ToolPanelCoordinator::profileChange(rtengine::procparams::PartialProfile
const*, rtengine::ProcEvent, Glib::ustring const&, ParamsEdited const*) ()
#5  0x0000000000718c52 in ProfilePanel::paste_clicked(_GdkEventButton*) ()
#6  0x00007f88ab562286 in ?? () from /usr/lib64/libgtkmm-2.4.so.1
#7  0x00007f88ad294f75 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#8  0x00007f88ae158d78 in g_closure_invoke () from /usr/lib64/libgobject-2.0.so.0
#9  0x00007f88ae16a58d in ?? () from /usr/lib64/libgobject-2.0.so.0
#10 0x00007f88ae171e99 in g_signal_emit_valist () from /usr/lib64/libgobject-2.0.so.0
#11 0x00007f88ae172492 in g_signal_emit () from /usr/lib64/libgobject-2.0.so.0
#12 0x00007f88ad3a4c74 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#13 0x00007f88ad293724 in gtk_propagate_event () from /usr/lib64/libgtk-x11-2.0.so.0
#14 0x00007f88ad293adb in gtk_main_do_event () from /usr/lib64/libgtk-x11-2.0.so.0
#15 0x00007f88acf07ddc in ?? () from /usr/lib64/libgdk-x11-2.0.so.0
#16 0x00007f88ade63a96 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#17 0x00007f88ade63de8 in ?? () from /usr/lib64/libglib-2.0.so.0
#18 0x00007f88ade641ea in g_main_loop_run () from /usr/lib64/libglib-2.0.so.0
#19 0x00007f88ad292bc7 in gtk_main () from /usr/lib64/libgtk-x11-2.0.so.0
#20 0x00007f88ab4f4351 in Gtk::Main::run(Gtk::Window&) () from /usr/lib64/libgtkmm-2.4.so.1
#21 0x00000000004fa8c1 in main ()

Managed to reproduce it.

No symbol table info available.
(gdb) bt
#0  __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
#1  0x00007f9e0e06ce71 in _L_lock_967 () from /lib64/libpthread.so.0
#2  0x00007f9e0e06cd07 in __GI___pthread_mutex_lock (mutex=0x3f56c70) at pthread_mutex_lock.c:85
        __PRETTY_FUNCTION__ = "__pthread_mutex_lock"
        type = 4294966784
#3  0x00000000008cd8a7 in rtengine::ImProcCoordinator::endUpdateParams(int) ()
#4  0x000000000074e301 in ToolPanelCoordinator::profileChange(rtengine::procparams::PartialProfile
const*, rtengine::ProcEvent, Glib::ustring const&, ParamsEdited const*) ()
#5  0x0000000000718c52 in ProfilePanel::paste_clicked(_GdkEventButton*) ()
#6  0x00007f9e10fdc286 in ?? () from /usr/lib64/libgtkmm-2.4.so.1
#7  0x00007f9e12d0ef75 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#8  0x00007f9e13bd2d78 in g_closure_invoke () from /usr/lib64/libgobject-2.0.so.0
#9  0x00007f9e13be458d in ?? () from /usr/lib64/libgobject-2.0.so.0
#10 0x00007f9e13bebe99 in g_signal_emit_valist () from /usr/lib64/libgobject-2.0.so.0
#11 0x00007f9e13bec492 in g_signal_emit () from /usr/lib64/libgobject-2.0.so.0
#12 0x00007f9e12e1ec74 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#13 0x00007f9e12d0d724 in gtk_propagate_event () from /usr/lib64/libgtk-x11-2.0.so.0
#14 0x00007f9e12d0dadb in gtk_main_do_event () from /usr/lib64/libgtk-x11-2.0.so.0
#15 0x00007f9e12981ddc in ?? () from /usr/lib64/libgdk-x11-2.0.so.0
#16 0x00007f9e138dda96 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#17 0x00007f9e138ddde8 in ?? () from /usr/lib64/libglib-2.0.so.0
#18 0x00007f9e138de1ea in g_main_loop_run () from /usr/lib64/libglib-2.0.so.0
#19 0x00007f9e12d0cbc7 in gtk_main () from /usr/lib64/libgtk-x11-2.0.so.0
#20 0x00007f9e10f6e351 in Gtk::Main::run(Gtk::Window&) () from /usr/lib64/libgtkmm-2.4.so.1
#21 0x00000000004fa8c1 in main ()

I opened amsterdam_moving_boat_2.pef, copied the (attached) profile, then double-clicked
on amsterdam_moving_boat_3.pef and pasted the profile immediately afterwards before
it finished (or started?) fast-demosaicing.

Branch: default
Version: 4.0.12.159 (4.0.12.157 3339e21bb846 + 2360cp0 + 2361setm0)
Changeset: 7055e2fce70b
Compiler: cc 4.8.2
Processor: undefined
System: Linux
Bit depth: 64 bits
Gtkmm: V2.24.4
Build type: Release
Build flags:  -Wno-unused-result -Wno-aggressive-loop-optimizations -march=native -fopenmp
-Werror=unknown-pragmas -O3 -DNDEBUG
Link flags:   -march=native
OpenMP support: ON
MMAP support: ON

Reported by entertheyoni on 2014-04-30 07:33:37


Beep6581 commented 9 years ago
Screencast: http://rawtherapee.com/bugs/2363/2363pasteloop.webm

Reported by entertheyoni on 2014-04-30 07:45:12

Beep6581 commented 9 years ago
Could reproduce the freeze with and without 2361setm0 on Win7

Reported by heckflosse@i-weyrich.de on 2014-04-30 08:54:49

Beep6581 commented 9 years ago
I'm looking...

Reported by heckflosse@i-weyrich.de on 2014-05-03 21:47:05

Beep6581 commented 9 years ago
This patch from Ingo solves it.

Reported by entertheyoni on 2014-05-03 22:34:57


Beep6581 commented 9 years ago
Thanks Ingo! I am away from my computer next 24 hours could test only then, but since
you guys v verified I am ok:)

Reported by michaelezra000 on 2014-05-03 22:59:46

Beep6581 commented 9 years ago
Hi Michael, I made a new patch, which includes changes to allow builds with gcc <= 4.8.x
on windows. Correction for freeze is the same as in #4. Could you please test, whether
it builds wit gcc 4.8.x on Win64 ? Though I confirm, that Win64 builds have to be done
with gcc 4.8.x, we need the compatibility with gcc <= 4.8 at least for Win32 builds
at the moment.

Ingo

Reported by heckflosse@i-weyrich.de on 2014-05-03 23:04:46


Beep6581 commented 9 years ago
777... your patch must be correct ;)

Reported by natureh.510 on 2014-05-03 23:50:48

Beep6581 commented 9 years ago
Hombre??? Please explain 777

Reported by heckflosse@i-weyrich.de on 2014-05-03 23:55:28

Beep6581 commented 9 years ago
Just look at the displayed size of your patch in comment #4. 

Reported by natureh.510 on 2014-05-04 00:00:24

Beep6581 commented 9 years ago
:-)

Reported by heckflosse@i-weyrich.de on 2014-05-04 00:06:16

Beep6581 commented 9 years ago
:) 
Ingo, I will try as soon as I have my comp.

Reported by michaelezra000 on 2014-05-04 00:06:57

Beep6581 commented 9 years ago
Michael, no need to hurry. You're the one who makes the Win64 builds and if the patch
won't work, we'll find a solution :-)

Reported by heckflosse@i-weyrich.de on 2014-05-04 00:15:45

Beep6581 commented 9 years ago
Committed changes from #4 to revision 7d8c489dedcb.

Reported by heckflosse@i-weyrich.de on 2014-05-04 16:23:30

Beep6581 commented 9 years ago

Reported by entertheyoni on 2014-10-25 14:45:59