Debian Bug report logs -
#800723
intermittent segfault on file drag and drop
Full log
Message #91 received at 800723@bugs.debian.org (full text, mbox, reply):
I have some valgrind and helgrind reports. Note that thunar does not
segfault in valgrind, presumably because valgrind imposes thread
serialisation.
Some dodgy behaviour detected by valgrind memcheck (the default) from
three separate processes:
==27638== Invalid read of size 8
==27638== at 0x7BCF8B4: g_type_check_instance_cast (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4600.2)
==27638== by 0x14B4F9: thunar_icon_factory_clear_pixmap_cache (in
/usr/bin/thunar)
==27638== by 0x143B98: thunar_file_reload (in /usr/bin/thunar)
==27638== by 0x7E37E89: g_main_context_dispatch (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==27638== by 0x7E3822F: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==27638== by 0x7E38551: g_main_loop_run (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==27638== by 0x5E0A586: gtk_main (in
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.29)
==27638== by 0x12B764: main (in /usr/bin/thunar)
==27638== Address 0x14956910 is 0 bytes inside a block of size 120 free'd
==27638== at 0x4C2AEAB: free (vg_replace_malloc.c:530)
==27638== by 0x7BCE5D9: g_type_free_instance (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4600.2)
==27638== by 0xC5E105F: ffi_call_unix64 (in
/usr/lib/x86_64-linux-gnu/libffi.so.6.0.4)
==27638== by 0xC5E0ACA: ffi_call (in
/usr/lib/x86_64-linux-gnu/libffi.so.6.0.4)
==27638== by 0x7BABC94: g_cclosure_marshal_generic_va (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4600.2)
==27638== by 0x7BAB173: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4600.2)
==27638== by 0x7BC5975: g_signal_emit_valist (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4600.2)
==27638== by 0x7BC605E: g_signal_emit (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4600.2)
==27638== by 0x79139D8: ??? (in
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.4600.2)
==27638== by 0x7E37FD6: g_main_context_dispatch (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==27638== by 0x7E3822F: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==27638== by 0x7E38551: g_main_loop_run (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==27638== Block was alloc'd at
==27638== at 0x4C29C4F: malloc (vg_replace_malloc.c:299)
==27638== by 0x7E3D558: g_malloc (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==27638== by 0x7E54742: g_slice_alloc (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==27638== by 0x7E54DDD: g_slice_alloc0 (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==27638== by 0x7BCE2A1: g_type_create_instance (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4600.2)
==27638== by 0x7BB02BA: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4600.2)
==27638== by 0x7BB1BA0: g_object_newv (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4600.2)
==27638== by 0x7BB24D3: g_object_new (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4600.2)
==27638== by 0x145A00: thunar_file_get (in /usr/bin/thunar)
==27638== by 0x145D81: thunar_file_monitor (in /usr/bin/thunar)
==27638== by 0xC5E105F: ffi_call_unix64 (in
/usr/lib/x86_64-linux-gnu/libffi.so.6.0.4)
==27638== by 0xC5E0ACA: ffi_call (in
/usr/lib/x86_64-linux-gnu/libffi.so.6.0.4)
==28312== Syscall param writev(vector[...]) points to uninitialised byte(s)
==28312== at 0x83FB08D: ??? (in /lib/x86_64-linux-gnu/libc-2.21.so)
==28312== by 0xB75C648: ??? (in
/usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
==28312== by 0xB75CA3C: ??? (in
/usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
==28312== by 0xB75CAC4: xcb_writev (in
/usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
==28312== by 0x9210D6D: _XSend (in
/usr/lib/x86_64-linux-gnu/libX11.so.6.3.0)
==28312== by 0x9210E48: _XEventsQueued (in
/usr/lib/x86_64-linux-gnu/libX11.so.6.3.0)
==28312== by 0x92026C6: XPending (in
/usr/lib/x86_64-linux-gnu/libX11.so.6.3.0)
==28312== by 0x637CE0D: ??? (in
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0.2400.29)
==28312== by 0x7E3775C: g_main_context_prepare (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==28312== by 0x7E380FA: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==28312== by 0x7E38551: g_main_loop_run (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==28312== by 0x5E0A586: gtk_main (in
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.29)
==28312== Address 0xe487246 is 38 bytes inside a block of size 16,384
alloc'd
==28312== at 0x4C2BC15: calloc (vg_replace_malloc.c:711)
==28312== by 0x9201021: XOpenDisplay (in
/usr/lib/x86_64-linux-gnu/libX11.so.6.3.0)
==28312== by 0x6373298: gdk_display_open (in
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0.2400.29)
==28312== by 0x6342FDE: gdk_display_open_default_libgtk_only (in
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0.2400.29)
==28312== by 0x5E09DC7: ??? (in
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.29)
==28312== by 0x7E42D57: g_option_context_parse (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==28312== by 0x5E0A2AA: gtk_init_with_args (in
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.29)
==28312== by 0x12B3D5: main (in /usr/bin/thunar)
==29233== Syscall param access(pathname) points to unaddressable byte(s)
==29233== at 0x83F5917: access (in /lib/x86_64-linux-gnu/libc-2.21.so)
==29233== by 0x7E24166: g_file_test (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==29233== by 0x182915: thunar_thumbnailer_queue_files (in
/usr/bin/thunar)
==29233== by 0x17B544: thunar_standard_view_request_thumbnails_real
(in /usr/bin/thunar)
==29233== by 0x7E388F2: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==29233== by 0x7E37E89: g_main_context_dispatch (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==29233== by 0x7E3822F: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==29233== by 0x7E38551: g_main_loop_run (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==29233== by 0x5E0A586: gtk_main (in
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.29)
==29233== by 0x12B764: main (in /usr/bin/thunar)
==29233== Address 0x0 is not stack'd, malloc'd or (recently) free'd
valgrind helgrind reports a huge number of possible data races. I needed
to use --error-limit=no to get close to where the segfault (without
valgrind) is seen:
valgrind --tool=helgrind --error-limit=no thunar
Here is one that caught my eye. There are thousands of different reports:
==16648== Possible data race during write of size 8 at 0x113552B0 by
thread #5
==16648== Locks held: none
==16648== at 0x181A94: thunar_thumbnail_cache_move_file (in
/usr/bin/thunar)
==16648== by 0x183E2C: thunar_transfer_job_execute (in /usr/bin/thunar)
==16648== by 0x507708C: ??? (in
/usr/lib/x86_64-linux-gnu/libexo-1.so.0.1.0)
==16648== by 0x78816E5: ??? (in
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.4600.2)
==16648== by 0x78A6B3C: ??? (in
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.4600.2)
==16648== by 0x7E6635D: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==16648== by 0x7E659C4: ??? (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==16648== by 0x4C30E76: mythread_wrapper (hg_intercepts.c:389)
==16648== by 0x810B283: start_thread (pthread_create.c:333)
==16648== by 0x840974C: clone (in /lib/x86_64-linux-gnu/libc-2.21.so)
==16648==
==16648== This conflicts with a previous write of size 8 by thread #1
==16648== Locks held: none
==16648== at 0x181A94: thunar_thumbnail_cache_move_file (in
/usr/bin/thunar)
==16648== by 0x142690: thunar_file_move_thumbnail_cache_file (in
/usr/bin/thunar)
==16648== by 0x145D42: thunar_file_monitor (in /usr/bin/thunar)
==16648== by 0xC5E805F: ffi_call_unix64 (in
/usr/lib/x86_64-linux-gnu/libffi.so.6.0.4)
==16648== by 0xC5E7ACA: ffi_call (in
/usr/lib/x86_64-linux-gnu/libffi.so.6.0.4)
==16648== by 0x7BB2C94: g_cclosure_marshal_generic_va (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4600.2)
==16648== by 0x7BB2173: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4600.2)
==16648== by 0x7BCC975: g_signal_emit_valist (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4600.2)
==16648== Address 0x113552b0 is 32 bytes inside a block of size 120 alloc'd
==16648== at 0x4C2B06F: malloc (vg_replace_malloc.c:299)
==16648== by 0x7E44558: g_malloc (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==16648== by 0x7E5B742: g_slice_alloc (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==16648== by 0x7E5BDDD: g_slice_alloc0 (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4600.2)
==16648== by 0x7BD52A1: g_type_create_instance (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4600.2)
==16648== by 0x7BB72BA: ??? (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4600.2)
==16648== by 0x7BB8BA0: g_object_newv (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4600.2)
==16648== by 0x7BB94D3: g_object_new (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4600.2)
==16648== by 0x1329A0: thunar_application_get_thumbnail_cache (in
/usr/bin/thunar)
==16648== by 0x183B91: thunar_transfer_job_execute (in /usr/bin/thunar)
==16648== by 0x507708C: ??? (in
/usr/lib/x86_64-linux-gnu/libexo-1.so.0.1.0)
==16648== by 0x78816E5: ??? (in
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.4600.2)
==16648== Block was alloc'd by thread #5
--
Ben Caradoc-Davies <ben@transient.nz>
Director
Transient Software Limited <http://transient.nz/>
New Zealand
Send a report that this bug log contains spam.
Debian bug tracking system administrator <owner@bugs.debian.org>.
Last modified:
Wed Jan 10 13:19:26 2018;
Machine Name:
beach
Debian Bug tracking system
Debbugs is free software and licensed under the terms of the GNU
Public License version 2. The current version can be obtained
from https://bugs.debian.org/debbugs-source/.
Copyright © 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson,
2005-2017 Don Armstrong, and many other contributors.