Bug#941550: glib2.0: intermittent test failure: mimeapps test segfaults

Simon McVittie smcv at debian.org
Wed Oct 2 18:17:12 BST 2019


On Wed, 02 Oct 2019 at 12:12:06 +0100, Simon McVittie wrote:
> On Tue, 01 Oct 2019 at 23:07:13 +0100, Simon McVittie wrote:
> > glib2.0 2.62.0-2 failed tests a couple of times on s390x, with a
> > segmentation fault running gio/tests/mimeapps.c.
> 
> This also happened on amd64

This can be reproduced by running the test in a loop:

meson test --repeat=1000 --gdb -C ~/tmp/build/glib/debug -v mimeapps

(This is in upstream GLib, not in a Debian package, if that matters.
The equivalent build directory in the Debian package is debian/build/deb.)

Looks like maybe a use-after-free, or a conflict between threads?

Thread 2 (Thread 0x7ffff77cc700 (LWP 15468)):
#0  __strrchr_avx2 () at ../sysdeps/x86_64/multiarch/strrchr-avx2.S:87
#1  0x00007ffff7ed3655 in g_path_get_dirname (file_name=0x3131313131313131 <error: Cannot access memory at address 0x3131313131313131>) at ../../../../../../home/smcv/src/glib/glib/gfileutils.c:2441
#2  0x00007ffff7cfd5db in desktop_file_dir_get_alternative_dir (dir=0x5555555859f0) at ../../../../../../home/smcv/src/glib/gio/gdesktopappinfo.c:193
#3  0x00007ffff7cfd694 in desktop_file_dir_changed (monitor=0x55555558b8b0, file=0x5555555838c0, other_file=0x0, event_type=G_FILE_MONITOR_EVENT_DELETED, user_data=0x5555555859f0) at ../../../../../../home/smcv/src/glib/gio/gdesktopappinfo.c:241
#4  0x00007ffff7ca973b in _g_cclosure_marshal_VOID__OBJECT_OBJECT_ENUMv (closure=0x55555557d930, return_value=0x0, instance=0x55555558b8b0, args=0x7ffff77cbac8, marshal_data=0x0, n_params=3, param_types=0x555555575b50) at ../../../../../../home/smcv/src/glib/gio/gmarshal-internal.c:1380
#5  0x00007ffff7e43354 in _g_closure_invoke_va (closure=0x55555557d930, return_value=0x0, instance=0x55555558b8b0, args=0x7ffff77cbac8, n_params=3, param_types=0x555555575b50) at ../../../../../../home/smcv/src/glib/gobject/gclosure.c:873
#6  0x00007ffff7e5f35d in g_signal_emit_valist (instance=0x55555558b8b0, signal_id=2, detail=0, var_args=0x7ffff77cbac8) at ../../../../../../home/smcv/src/glib/gobject/gsignal.c:3310
#7  0x00007ffff7e605a7 in g_signal_emit (instance=0x55555558b8b0, signal_id=2, detail=0) at ../../../../../../home/smcv/src/glib/gobject/gsignal.c:3457
#8  0x00007ffff7c964c0 in g_file_monitor_emit_event (monitor=0x55555558b8b0, child=0x5555555838c0, other_file=0x0, event_type=G_FILE_MONITOR_EVENT_DELETED) at ../../../../../../home/smcv/src/glib/gio/gfilemonitor.c:294
#9  0x00007ffff7d933d0 in g_file_monitor_source_dispatch (source=0x5555555803d0, callback=0x0, user_data=0x0) at ../../../../../../home/smcv/src/glib/gio/glocalfilemonitor.c:560
#10 0x00007ffff7ee99b8 in g_main_dispatch (context=0x5555555776f0) at ../../../../../../home/smcv/src/glib/glib/gmain.c:3180
#11 0x00007ffff7eea815 in g_main_context_dispatch (context=0x5555555776f0) at ../../../../../../home/smcv/src/glib/glib/gmain.c:3845
#12 0x00007ffff7eea9f9 in g_main_context_iterate (context=0x5555555776f0, block=1, dispatch=1, self=0x555555577800) at ../../../../../../home/smcv/src/glib/glib/gmain.c:3918
#13 0x00007ffff7eeaabd in g_main_context_iteration (context=0x5555555776f0, may_block=1) at ../../../../../../home/smcv/src/glib/glib/gmain.c:3979
#14 0x00007ffff7eec8b6 in glib_worker_main (data=0x0) at ../../../../../../home/smcv/src/glib/glib/gmain.c:5859
#15 0x00007ffff7f1c392 in g_thread_proxy (data=0x555555577800) at ../../../../../../home/smcv/src/glib/glib/gthread.c:805
#16 0x00007ffff7998fb7 in start_thread (arg=<optimized out>) at pthread_create.c:486
#17 0x00007ffff7b212ef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7ffff77cdc80 (LWP 15464)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff7f47a0b in g_mutex_lock_slowpath (mutex=0x7ffff7e2d300 <desktop_file_dir_lock>) at ../../../../../../home/smcv/src/glib/glib/gthread-posix.c:1340
#2  0x00007ffff7f47aaf in g_mutex_lock (mutex=0x7ffff7e2d300 <desktop_file_dir_lock>) at ../../../../../../home/smcv/src/glib/glib/gthread-posix.c:1364
#3  0x00007ffff7cff7ff in desktop_file_dirs_lock () at ../../../../../../home/smcv/src/glib/gio/gdesktopappinfo.c:1486
#4  0x00007ffff7d05123 in g_app_info_get_default_for_type (content_type=0x55555555a8c0 "image/bmp", must_support_uris=0) at ../../../../../../home/smcv/src/glib/gio/gdesktopappinfo.c:4310
#5  0x00005555555586b7 in test_mime_default_last_used (fixture=0x55555557de60, test_data=0x0) at ../../../../../../home/smcv/src/glib/gio/tests/mimeapps.c:510
#6  0x00007ffff7f18ffc in test_case_run (tc=0x55555556dac0) at ../../../../../../home/smcv/src/glib/glib/gtestutils.c:2633
#7  0x00007ffff7f193b8 in g_test_run_suite_internal (suite=0x55555556c860, path=0x0) at ../../../../../../home/smcv/src/glib/glib/gtestutils.c:2721
#8  0x00007ffff7f19461 in g_test_run_suite_internal (suite=0x55555556c840, path=0x0) at ../../../../../../home/smcv/src/glib/glib/gtestutils.c:2733
#9  0x00007ffff7f19461 in g_test_run_suite_internal (suite=0x55555556c820, path=0x0) at ../../../../../../home/smcv/src/glib/glib/gtestutils.c:2733
#10 0x00007ffff7f19678 in g_test_run_suite (suite=0x55555556c820) at ../../../../../../home/smcv/src/glib/glib/gtestutils.c:2808
#11 0x00007ffff7f18254 in g_test_run () at ../../../../../../home/smcv/src/glib/glib/gtestutils.c:2043
#12 0x00005555555594f2 in main (argc=1, argv=0x7fffffffddc8) at ../../../../../../home/smcv/src/glib/gio/tests/mimeapps.c:647



More information about the pkg-gnome-maintainers mailing list