Project

General

Profile

Bug #11621

Deadlock due to race condition when removing images

Added by Pierre Mavro about 3 years ago. Updated over 2 years ago.

Status:
Triaged
Priority:
Low
Assignee:
-
Category:
Lighttable
Target version:
-
Start date:
05/21/2017
Due date:
% Done:

20%

Estimated time:
Affected Version:
2.2.4
System:
all
bitness:
64-bit
hardware architecture:
amd64/x86

Description

Hi,

It often happen that Darktable freeze during an image remove. I'm on Darktable 2.2.4 and always had this issue (starting from 2.0). I would say around 5% of the time and it's usually on the same images (after a restart of Darktable).

I traced the application, here are the logs:

recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 3, 0) = 0 (Timeout)
recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 3, 14) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="A\0\26\n\0073\0\3\3\0\202\0\3332\0\3\0\0\200\3\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="A\0\37\n\t3\0\3\3\0\202\0\3332\0\3\0\200\200\3\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 3, 13) = 0 (Timeout)
poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{iov_base="\22\0\16\0\3\0\0\3\3\2\0\0\6\0\0\0 \4\6\0\10\0\0\0\7\0\0\0\0\0\0\0n\7\0\0\7\0\0\0\0\0\0\0\7\0\0\0|\7\0\0\n\4\0\0005\30\4\0\v3\0\3\3\0\0\3\1\0050\0\213\4\6\0\f3\0\3\v3\0\3*\0\0\0\0\4\0\0\1\0\0\0\213\32\7\0\0\0\375\3\f3\0\3\0\0\0\0\0\0\0\0\0\0\0\0\1\0050\0\213\32\23\0\0012\0\3\f3\0\3!!!!!!\377\377\0\0\0\0\1\0050\0\0\0\0\0\1\0050\0\0\0\0\0\1\0050\0\0\0\0\0\1\0050\0\0\0\0\0\1\0050\0\0\0\0\0\1\0050\0\0\0\0\0\1\0050\0\213\27\25\0\3\0@\0\324\5\0\3\f3\0\3&\0\0\0\212\0\0\3\373\1\33\0000\0\0\0\373\1\33\0\24\3LPDJH\3RI\3\25\31\32\3LQ\3FXUUHQW\3FROOHFWLRQ\3LV\3VHOHFWHG\206\3\4\0\6\0\0\3\0\0\0\0\327\23\0\0>\0\7\0\v3\0\3\3\0\0\3\36\0\0\3\0\0\0\0\365\0\n\0\1\0050\0\213\7\2\0\f3\0\0036\1\2\0\v3\0\3\206\3\4\0\6\0\0\3\0\0\0\0\332\23\0\0", iov_len=360}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 360
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\34\0,\n\3\0\0\3\3\2\0\0A<9\v\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 3, 0) = 0 (Timeout)
recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 3, 19983) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="#\2036\n\26\0\0\0\3\0\3\0\305<9\vw\0\0\0\310\4\0\0\3\0\0\3\0\0\0\0\0\0\266\n\0\0\264\5\0\0|\6\0\0G\3\10\0\2\0\r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 120
recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 3, 0) = 0 (Timeout)
poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{iov_base="5\30\4\0\r3\0\3\3\0\0\3\20\5\266\3\213\4\6\0\0163\0\3\r3\0\3*\0\0\0\0\4\0\0\1\0\0\0\213\32\7\0\0\0\0\0\0163\0\3\0\0\0\0\0\0\0\0\0\0\0\0\20\5\266\3\213\32\r\0\1\4\6\0\0163\0\3!!!!!!\377\377\0\0\0\0\20\5\266\3\0\0\0\0\20\5\266\3\0\0\0\0\20\5\266\3\0\0\0\0\20\5\266\3\203-\2\0\0\0\0\0", iov_len=128}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 128
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1-;\n\0\0\0\0\1\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{iov_base="\203(\3\0\3\0\0\3\2\0\0\3", iov_len=12}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 12
poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1(<\n\7\0\0\0\310\4\0\0\0\0\0\0\0\0\266\n\0\0\264\5\0\0|\6\0\0G\3\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 60
recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
mmap(NULL, 4927488, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f366ec74000
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
futex(0x25ddbe0, FUTEX_WAKE_PRIVATE, 1) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0
nanosleep({tv_sec=0, tv_nsec=5000}, 0x7ffe38c55e20) = 0

Hope this could help

History

#1 Updated by John Rayner over 2 years ago

I also seem to be able to reproduce this easily. I think it is when I remove photo's too quickly. Also setting preferences to not ask before removing images from database. Bottom left corner of screen shows 'removing 1 image', if remove again adds further message 'remove images' and again...... Can access other windows like Darktable and print but stuck with current image in Lighttable. Thumbnail blanked for 'removed' image. Dartable has to be forced to quit, image still on lightable when returning into DT.
Not sure how to trace, please advise if you would like me to. Currently running 2.2.5-2.fc26

#2 Updated by John Rayner over 2 years ago

Okay after a little more playing this is how to recreate the problem. If settings preference is 'ask before removing images from database', then you can remove as many images as you want with no problems.
If you have 'not to ask' as a preference then it freezes on the 2nd or 3rd request to remove images. Simples....

#3 Updated by Tobias Ellinghaus over 2 years ago

  • System changed from other GNU/Linux to all
  • % Done changed from 0 to 20
  • Status changed from New to Triaged
  • Subject changed from Darktable freeze on image remove to Deadlock due to race condition when removing images

The problem is a race condition when removing images. Until it's fixed you have to be slower with removing images. ;-)

#4 Updated by Gareth H over 2 years ago

I've found that once it has been struck once for a collection, it can be encountered again when removing only one image - presumably due to an inconsistent database entry regarding that particular image. Recreating the collection seems to help, but then you lose all the work you've done, and eventually strike the issue again anyway so is of limited value as a workaround.

Being careful to leave a reasonable gap between removals (a few seconds) seems to mitigate, but I still find I hit it eventually. Perhaps more frequent commits, read-committed transaction mode, or something similar may help? My SQLite isn't great I'm afraid, so can't offer a lot of specific help.

Also available in: Atom PDF

Go to top