I found x11/mate/caja to be unreliable at starting. It has a
segmentation fault 9 times of 10 in 7.0 while (reported by someone
who tried) it works reliably on 6.9. I get the crash on two 7.0 machines.
I tried to run it from fvwm or cwm and same issue happen. I compiled
it with debugs symbols and got the backtrace of each thread upon crash.
It seems when started from mate-session it doesn't crash and once
it's run, the new processes must reuse the current process and then
won't ever crash.
Reading symbols from caja...Reading symbols from
/usr/local/bin/.debug/caja.dbg...done.
done.
(gdb) run
Starting program: /usr/local/bin/caja
[New process 60788]
[New thread 150505]
[New thread 571791]
[New thread 576065]
[New thread 233739]
[New thread 177670]
[New thread 535484]
Thread 1 received signal SIGSEGV, Segmentation fault.
strcmp () at /usr/src/lib/libc/arch/amd64/string/strcmp.S:59
59 movb (%rdi),%al
(gdb) bt
#0 strcmp () at /usr/src/lib/libc/arch/amd64/string/strcmp.S:59
#1 0x000000057873bd0e in caja_application_open (app=<optimized out>,
files=0x85750f6a0, n_files=1, options=<optimized out>) at caja-application.c:379
#2 0x00000007e69b6a24 in _g_cclosure_marshal_VOID__POINTER_INT_STRINGv () from
/usr/local/lib/libgio-2.0.so.4200.13
#3 0x00000008033f409f in _g_closure_invoke_va () from
/usr/local/lib/libgobject-2.0.so.4200.13
#4 0x000000080340d3ea in g_signal_emit_valist () from
/usr/local/lib/libgobject-2.0.so.4200.13
#5 0x000000080340ddc1 in g_signal_emit () from
/usr/local/lib/libgobject-2.0.so.4200.13
#6 0x000000057873c7e5 in caja_application_local_command_line
(application=<optimized out>, arguments=<optimized out>, exit_status=<optimized
out>)
at caja-application.c:2079
#7 0x00000007e6a2218c in g_application_run () from
/usr/local/lib/libgio-2.0.so.4200.13
#8 0x0000000578752beb in main (argc=1, argv=0x7f7ffffd13e8) at caja-main.c:271
(gdb) thread 2
[Switching to thread 2 (thread 386342)]
#0 futex () at /tmp/-:3
3 /tmp/-: No such file or directory.
(gdb) bt
#0 futex () at /tmp/-:3
#1 0x00000007ddad6d45 in _twait (p=0x872768410, val=3, clockid=3, abs=0x0) at
/usr/src/lib/libc/thread/synch.h:36
#2 _rthread_cond_timedwait (cond=0x872768410, mutexp=0x87371fa90, abs=0x0) at
/usr/src/lib/libc/thread/rthread_cond.c:106
#3 0x0000000821d062f2 in g_cond_wait () from
/usr/local/lib/libglib-2.0.so.4201.6
#4 0x0000000821c6b6c5 in g_async_queue_pop_intern_unlocked () from
/usr/local/lib/libglib-2.0.so.4201.6
#5 0x0000000821cd7b38 in g_thread_pool_spawn_thread () from
/usr/local/lib/libglib-2.0.so.4201.6
#6 0x0000000821cd7425 in g_thread_proxy () from
/usr/local/lib/libglib-2.0.so.4201.6
#7 0x000000079e766f01 in _rthread_start (v=<error reading variable: Unhandled
dwarf expression opcode 0xa3>) at /usr/src/lib/librthread/rthread.c:96
#8 0x00000007ddaf95fa in __tfork_thread () at
/usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:84
(gdb) thread 3
[Switching to thread 3 (thread 150505)]
#0 _thread_sys_poll () at /tmp/-:3
3 /tmp/-: No such file or directory.
(gdb) bt
#0 _thread_sys_poll () at /tmp/-:3
#1 0x00000007ddb0237e in _libc_poll_cancel (fds=0x82db2b030, nfds=2,
timeout=7093) at /usr/src/lib/libc/sys/w_poll.c:27
#2 0x0000000821ca6d32 in g_main_context_iterate () from
/usr/local/lib/libglib-2.0.so.4201.6
#3 0x0000000821ca6e65 in g_main_context_iteration () from
/usr/local/lib/libglib-2.0.so.4201.6
#4 0x0000000821ca91a1 in glib_worker_main () from
/usr/local/lib/libglib-2.0.so.4201.6
#5 0x0000000821cd7425 in g_thread_proxy () from
/usr/local/lib/libglib-2.0.so.4201.6
#6 0x000000079e766f01 in _rthread_start (v=<error reading variable: Unhandled
dwarf expression opcode 0xa3>) at /usr/src/lib/librthread/rthread.c:96
#7 0x00000007ddaf95fa in __tfork_thread () at
/usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:84
(gdb) thread 4
[Switching to thread 4 (thread 571791)]
#0 _thread_sys_poll () at /tmp/-:3
3 in /tmp/-
(gdb) bt
#0 _thread_sys_poll () at /tmp/-:3
#1 0x00000007ddb0237e in _libc_poll_cancel (fds=0x854e8c6a0, nfds=2,
timeout=-1) at /usr/src/lib/libc/sys/w_poll.c:27
#2 0x0000000821ca6d32 in g_main_context_iterate () from
/usr/local/lib/libglib-2.0.so.4201.6
#3 0x0000000821ca71aa in g_main_loop_run () from
/usr/local/lib/libglib-2.0.so.4201.6
#4 0x00000007e6a6eb48 in gdbus_shared_thread_func () from
/usr/local/lib/libgio-2.0.so.4200.13
#5 0x0000000821cd7425 in g_thread_proxy () from
/usr/local/lib/libglib-2.0.so.4201.6
#6 0x000000079e766f01 in _rthread_start (v=<error reading variable: Unhandled
dwarf expression opcode 0xa3>) at /usr/src/lib/librthread/rthread.c:96
#7 0x00000007ddaf95fa in __tfork_thread () at
/usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:84
(gdb) thread 5
[Switching to thread 5 (thread 576065)]
#0 stat () at /tmp/-:3
3 /tmp/-: No such file or directory.
(gdb) bt
#0 stat () at /tmp/-:3
#1 0x0000000821c8dbcd in g_file_test () from
/usr/local/lib/libglib-2.0.so.4201.6
#2 0x00000007e6a8c1e1 in get_thumbnail_attributes () from
/usr/local/lib/libgio-2.0.so.4200.13
#3 0x00000007e6a8b908 in _g_local_file_info_get () from
/usr/local/lib/libgio-2.0.so.4200.13
#4 0x00000007e6a878a6 in g_local_file_query_info () from
/usr/local/lib/libgio-2.0.so.4200.13
#5 0x00000007e6995466 in query_info_async_thread () from
/usr/local/lib/libgio-2.0.so.4200.13
#6 0x00000007e69eff2e in g_task_thread_pool_thread () from
/usr/local/lib/libgio-2.0.so.4200.13
#7 0x0000000821cd8939 in g_thread_pool_thread_proxy () from
/usr/local/lib/libglib-2.0.so.4201.6
#8 0x0000000821cd7425 in g_thread_proxy () from
/usr/local/lib/libglib-2.0.so.4201.6
#9 0x000000079e766f01 in _rthread_start (v=<error reading variable: Unhandled
dwarf expression opcode 0xa3>) at /usr/src/lib/librthread/rthread.c:96
#10 0x00000007ddaf95fa in __tfork_thread () at
/usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:84
(gdb) thread 6
[Switching to thread 6 (thread 233739)]
#0 _thread_sys_poll () at /tmp/-:3
3 /tmp/-: No such file or directory.
(gdb) bt
#0 _thread_sys_poll () at /tmp/-:3
#1 0x00000007ddb0237e in _libc_poll_cancel (fds=0x85da8a4c0, nfds=1,
timeout=-1) at /usr/src/lib/libc/sys/w_poll.c:27
#2 0x0000000821ca6d32 in g_main_context_iterate () from
/usr/local/lib/libglib-2.0.so.4201.6
#3 0x0000000821ca6e65 in g_main_context_iteration () from
/usr/local/lib/libglib-2.0.so.4201.6
#4 0x000000082362e9dd in dconf_gdbus_worker_thread () from
/usr/local/lib/gio/modules/libdconfsettings.so
#5 0x0000000821cd7425 in g_thread_proxy () from
/usr/local/lib/libglib-2.0.so.4201.6
#6 0x000000079e766f01 in _rthread_start (v=<error reading variable: Unhandled
dwarf expression opcode 0xa3>) at /usr/src/lib/librthread/rthread.c:96
#7 0x00000007ddaf95fa in __tfork_thread () at
/usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:84
(gdb) thread 7
[Switching to thread 7 (thread 177670)]
#0 futex () at /tmp/-:3
3 /tmp/-: No such file or directory.
(gdb) bt
#0 futex () at /tmp/-:3
#1 0x00000007ddad6d45 in _twait (p=0x8727626d0, val=1, clockid=3,
abs=0x7e6c7e820) at /usr/src/lib/libc/thread/synch.h:36
#2 _rthread_cond_timedwait (cond=0x8727626d0, mutexp=0x87370dd50,
abs=0x7e6c7e820) at /usr/src/lib/libc/thread/rthread_cond.c:106
#3 0x0000000821d06560 in g_cond_wait_until () from
/usr/local/lib/libglib-2.0.so.4201.6
#4 0x0000000821c6b6e6 in g_async_queue_pop_intern_unlocked () from
/usr/local/lib/libglib-2.0.so.4201.6
#5 0x0000000821cd890a in g_thread_pool_thread_proxy () from
/usr/local/lib/libglib-2.0.so.4201.6
#6 0x0000000821cd7425 in g_thread_proxy () from
/usr/local/lib/libglib-2.0.so.4201.6
#7 0x000000079e766f01 in _rthread_start (v=<error reading variable: Unhandled
dwarf expression opcode 0xa3>) at /usr/src/lib/librthread/rthread.c:96
#8 0x00000007ddaf95fa in __tfork_thread () at
/usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:84
(gdb) thread 8
[Switching to thread 8 (thread 535484)]
#0 futex () at /tmp/-:3
3 in /tmp/-
(gdb) bt
#0 futex () at /tmp/-:3
#1 0x00000007ddad6d45 in _twait (p=0x8727626d0, val=1, clockid=3,
abs=0x7975f8460) at /usr/src/lib/libc/thread/synch.h:36
#2 _rthread_cond_timedwait (cond=0x8727626d0, mutexp=0x87370dd50,
abs=0x7975f8460) at /usr/src/lib/libc/thread/rthread_cond.c:106
#3 0x0000000821d06560 in g_cond_wait_until () from
/usr/local/lib/libglib-2.0.so.4201.6
#4 0x0000000821c6b6e6 in g_async_queue_pop_intern_unlocked () from
/usr/local/lib/libglib-2.0.so.4201.6
#5 0x0000000821cd890a in g_thread_pool_thread_proxy () from
/usr/local/lib/libglib-2.0.so.4201.6
#6 0x0000000821cd7425 in g_thread_proxy () from
/usr/local/lib/libglib-2.0.so.4201.6
#7 0x000000079e766f01 in _rthread_start (v=<error reading variable: Unhandled
dwarf expression opcode 0xa3>) at /usr/src/lib/librthread/rthread.c:96
#8 0x00000007ddaf95fa in __tfork_thread () at
/usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:84