Crash trying to get ancestor for NULL widget
Steps to reproduce
Not sure yet. It happened while testing !293 (merged) but seems to be unrelated.
The likely related conditions were: opening navigating to and from Trash, in two open windows. It crashed as soon as I've closed the older window.
Reproduced in:
- nautilus 3.29, under JHBuild
Additional information
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f3476223f2f in gtk_widget_get_ancestor (widget=0x1d2b5e0,
widget_type=30497008)
at /home/antonio/jhbuild/checkout/gtk+-3/gtk/gtkwidget.c:11585
11585 g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
[Current thread is 1 (Thread 0x7f3476ef7bc0 (LWP 30665))]
(gdb) thread apply all bt
Thread 7 (Thread 0x7f344e376700 (LWP 31026)):
#0 0x00007f347368cae9 in syscall () from /lib64/libc.so.6
#1 0x00007f347688bc24 in g_cond_wait_until (cond=cond@entry=0x12d4518, mutex=mutex@entry=0x12d4510, end_time=end_time@entry=23799530108)
at /home/antonio/jhbuild/checkout/glib/glib/gthread-posix.c:1449
#2 0x00007f347681afc1 in g_async_queue_pop_intern_unlocked (queue=0x12d4510, wait=wait@entry=1, end_time=23799530108)
at /home/antonio/jhbuild/checkout/glib/glib/gasyncqueue.c:422
#3 0x00007f347681b598 in g_async_queue_timeout_pop_unlocked (queue=<optimized out>, timeout=timeout@entry=500000)
at /home/antonio/jhbuild/checkout/glib/glib/gasyncqueue.c:570
#4 0x00007f347686ebc2 in g_thread_pool_wait_for_new_task (pool=<optimized out>) at /home/antonio/jhbuild/checkout/glib/glib/gthreadpool.c:262
#5 g_thread_pool_thread_proxy (data=<optimized out>) at /home/antonio/jhbuild/checkout/glib/glib/gthreadpool.c:296
#6 0x00007f347686e126 in g_thread_proxy (data=0x7f343c001450) at /home/antonio/jhbuild/checkout/glib/glib/gthread.c:784
#7 0x00007f347395e594 in start_thread () from /lib64/libpthread.so.0
#8 0x00007f34736920df in clone () from /lib64/libc.so.6
Thread 6 (Thread 0x7f3465faf700 (LWP 30669)):
#0 0x00007f347368cae9 in syscall () from /lib64/libc.so.6
#1 0x00007f347688bb0f in g_cond_wait (cond=cond@entry=0x1322e68, mutex=mutex@entry=0x1322e60)
at /home/antonio/jhbuild/checkout/glib/glib/gthread-posix.c:1402
#2 0x00007f347681afdb in g_async_queue_pop_intern_unlocked (queue=queue@entry=0x1322e60, wait=wait@entry=1, end_time=end_time@entry=-1)
at /home/antonio/jhbuild/checkout/glib/glib/gasyncqueue.c:419
#3 0x00007f347681b3e7 in g_async_queue_pop (queue=0x1322e60) at /home/antonio/jhbuild/checkout/glib/glib/gasyncqueue.c:453
#4 0x00007f3473b9548d in tracker_direct_connection_thread_func (self=0x12f9cc0) at tracker-direct.vala:151
#5 _tracker_direct_connection_thread_func_gthread_func () at tracker-direct.c:1277
#6 0x00007f347686e126 in g_thread_proxy (data=0x7f3458005cf0) at /home/antonio/jhbuild/checkout/glib/glib/gthread.c:784
#7 0x00007f347395e594 in start_thread () from /lib64/libpthread.so.0
#8 0x00007f34736920df in clone () from /lib64/libc.so.6
Thread 5 (Thread 0x7f3466bf0700 (LWP 30668)):
#0 0x00007f3473687659 in poll () from /lib64/libc.so.6
#1 0x00007f347684787e in g_main_context_poll (priority=<optimized out>, n_fds=6, fds=0x7f3458008680, timeout=<optimized out>, context=0x130e480)
at /home/antonio/jhbuild/checkout/glib/glib/gmain.c:4204
#2 g_main_context_iterate (context=0x130e480, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
at /home/antonio/jhbuild/checkout/glib/glib/gmain.c:3898
#3 0x00007f3476847bf2 in g_main_loop_run (loop=0x130e5c0) at /home/antonio/jhbuild/checkout/glib/glib/gmain.c:4099
---Type <return> to continue, or q <return> to quit---
#4 0x00007f3474abeca6 in gdbus_shared_thread_func (user_data=0x130e450) at /home/antonio/jhbuild/checkout/glib/gio/gdbusprivate.c:275
#5 0x00007f347686e126 in g_thread_proxy (data=0x12fbca0) at /home/antonio/jhbuild/checkout/glib/glib/gthread.c:784
#6 0x00007f347395e594 in start_thread () from /lib64/libpthread.so.0
#7 0x00007f34736920df in clone () from /lib64/libc.so.6
Thread 4 (Thread 0x7f344d374700 (LWP 30964)):
#0 0x00007f347368cae9 in syscall () from /lib64/libc.so.6
#1 0x00007f347688bc24 in g_cond_wait_until (cond=cond@entry=0x12d4518, mutex=mutex@entry=0x12d4510, end_time=end_time@entry=23799530111)
at /home/antonio/jhbuild/checkout/glib/glib/gthread-posix.c:1449
#2 0x00007f347681afc1 in g_async_queue_pop_intern_unlocked (queue=0x12d4510, wait=wait@entry=1, end_time=23799530111)
at /home/antonio/jhbuild/checkout/glib/glib/gasyncqueue.c:422
#3 0x00007f347681b598 in g_async_queue_timeout_pop_unlocked (queue=<optimized out>, timeout=timeout@entry=500000)
at /home/antonio/jhbuild/checkout/glib/glib/gasyncqueue.c:570
#4 0x00007f347686ebc2 in g_thread_pool_wait_for_new_task (pool=<optimized out>) at /home/antonio/jhbuild/checkout/glib/glib/gthreadpool.c:262
#5 g_thread_pool_thread_proxy (data=<optimized out>) at /home/antonio/jhbuild/checkout/glib/glib/gthreadpool.c:296
#6 0x00007f347686e126 in g_thread_proxy (data=0x2685a80) at /home/antonio/jhbuild/checkout/glib/glib/gthread.c:784
#7 0x00007f347395e594 in start_thread () from /lib64/libpthread.so.0
#8 0x00007f34736920df in clone () from /lib64/libc.so.6
Thread 3 (Thread 0x7f34657ae700 (LWP 30670)):
#0 0x00007f3473687659 in poll () from /lib64/libc.so.6
#1 0x00007f347684787e in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7f345c227910, timeout=<optimized out>,
context=0x7f345c18f9f0) at /home/antonio/jhbuild/checkout/glib/glib/gmain.c:4204
#2 g_main_context_iterate (context=context@entry=0x7f345c18f9f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
at /home/antonio/jhbuild/checkout/glib/glib/gmain.c:3898
#3 0x00007f347684798c in g_main_context_iteration (context=context@entry=0x7f345c18f9f0, may_block=may_block@entry=1)
at /home/antonio/jhbuild/checkout/glib/glib/gmain.c:3964
#4 0x00007f3465fb797d in dconf_gdbus_worker_thread (user_data=0x7f345c18f9f0) at ../../../../jhbuild/checkout/dconf/gdbus/dconf-gdbus-thread.c:82
#5 0x00007f347686e126 in g_thread_proxy (data=0x7f345c2a0320) at /home/antonio/jhbuild/checkout/glib/glib/gthread.c:784
#6 0x00007f347395e594 in start_thread () from /lib64/libpthread.so.0
#7 0x00007f34736920df in clone () from /lib64/libc.so.6
Thread 2 (Thread 0x7f34673f1700 (LWP 30667)):
#0 0x00007f3473687659 in poll () from /lib64/libc.so.6
#1 0x00007f347684787e in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x12fbbe0, timeout=<optimized out>, context=0x12fbaa0)
---Type <return> to continue, or q <return> to quit---
at /home/antonio/jhbuild/checkout/glib/glib/gmain.c:4204
#2 g_main_context_iterate (context=context@entry=0x12fbaa0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
at /home/antonio/jhbuild/checkout/glib/glib/gmain.c:3898
#3 0x00007f347684798c in g_main_context_iteration (context=0x12fbaa0, may_block=may_block@entry=1)
at /home/antonio/jhbuild/checkout/glib/glib/gmain.c:3964
#4 0x00007f34768479d1 in glib_worker_main (data=<optimized out>) at /home/antonio/jhbuild/checkout/glib/glib/gmain.c:5773
#5 0x00007f347686e126 in g_thread_proxy (data=0x12fbc00) at /home/antonio/jhbuild/checkout/glib/glib/gthread.c:784
#6 0x00007f347395e594 in start_thread () from /lib64/libpthread.so.0
#7 0x00007f34736920df in clone () from /lib64/libc.so.6
Thread 1 (Thread 0x7f3476ef7bc0 (LWP 30665)):
#0 0x00007f3476223f2f in gtk_widget_get_ancestor (widget=0x1d2b5e0, widget_type=30497008)
at /home/antonio/jhbuild/checkout/gtk+-3/gtk/gtkwidget.c:11585
#1 0x00000000004be7d4 in button_data_file_changed (file=0x1fc61c0, button_data=0x21f5a70)
at ../../../../jhbuild/checkout/nautilus/src/nautilus-pathbar.c:1492
#2 0x00007f34747a6ced in g_closure_invoke (closure=0x27efe10, return_value=0x0, n_param_values=1, param_values=0x7ffdd47e5170,
invocation_hint=0x7ffdd47e5110) at /home/antonio/jhbuild/checkout/glib/gobject/gclosure.c:806
#3 0x00007f34747b9cf3 in signal_emit_unlocked_R (node=node@entry=0x1a92540, detail=detail@entry=0, instance=instance@entry=0x1fc61c0,
emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffdd47e5170)
at /home/antonio/jhbuild/checkout/glib/gobject/gsignal.c:3635
#4 0x00007f34747c2dda in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>,
var_args=var_args@entry=0x7ffdd47e5308) at /home/antonio/jhbuild/checkout/glib/gobject/gsignal.c:3391
#5 0x00007f34747c33a2 in g_signal_emit (instance=instance@entry=0x1fc61c0, signal_id=<optimized out>, detail=detail@entry=0)
at /home/antonio/jhbuild/checkout/glib/gobject/gsignal.c:3447
#6 0x000000000047d395 in nautilus_file_emit_changed (file=0x1fc61c0) at ../../../../jhbuild/checkout/nautilus/src/nautilus-file.c:8357
#7 0x000000000047d5a4 in nautilus_file_changed (file=file@entry=0x1fc61c0) at ../../../../jhbuild/checkout/nautilus/src/nautilus-file.c:8302
#8 0x00000000004dc9b2 in dequeue_pending_idle_callback (callback_data=callback_data@entry=0x203de40)
at ../../../../jhbuild/checkout/nautilus/src/nautilus-directory-async.c:1013
#9 0x00000000004dd634 in directory_load_done (directory=0x203de40, error=0x0)
at ../../../../jhbuild/checkout/nautilus/src/nautilus-directory-async.c:1145
#10 0x00000000004dd835 in more_files_callback (source_object=<optimized out>, res=0x20289b0, user_data=0x238b330)
at ../../../../jhbuild/checkout/nautilus/src/nautilus-directory-async.c:2102
#11 0x00007f3474a416a6 in next_async_callback_wrapper (source_object=0x2117500, res=0x20289b0, user_data=0x238b330)
at /home/antonio/jhbuild/checkout/glib/gio/gfileenumerator.c:305
#12 0x00007f3474a7ba3a in g_task_return_now (task=0x20289b0) at /home/antonio/jhbuild/checkout/glib/gio/gtask.c:1148
---Type <return> to continue, or q <return> to quit---
#13 0x00007f3474a7c4b6 in g_task_return (task=0x20289b0, type=<optimized out>) at /home/antonio/jhbuild/checkout/glib/gio/gtask.c:1206
#14 0x00007f34661d6f8f in _g_task_return_pointer_idle_cb (task=task@entry=0x20289b0)
at /home/antonio/jhbuild/checkout/gvfs/client/gdaemonfileenumerator.c:386
#15 0x00007f3476844147 in g_idle_dispatch (source=0x2727360, callback=0x7f34661d6f40 <_g_task_return_pointer_idle_cb>, user_data=0x20289b0)
at /home/antonio/jhbuild/checkout/glib/glib/gmain.c:5535
#16 0x00007f3476847585 in g_main_dispatch (context=0x1303b40) at /home/antonio/jhbuild/checkout/glib/glib/gmain.c:3177
#17 g_main_context_dispatch (context=context@entry=0x1303b40) at /home/antonio/jhbuild/checkout/glib/glib/gmain.c:3830
#18 0x00007f3476847908 in g_main_context_iterate (context=context@entry=0x1303b40, block=block@entry=1, dispatch=dispatch@entry=1,
self=<optimized out>) at /home/antonio/jhbuild/checkout/glib/glib/gmain.c:3903
#19 0x00007f347684798c in g_main_context_iteration (context=context@entry=0x1303b40, may_block=may_block@entry=1)
at /home/antonio/jhbuild/checkout/glib/glib/gmain.c:3964
#20 0x00007f3474a9279d in g_application_run (application=0x12e6140, argc=argc@entry=1, argv=argv@entry=0x7ffdd47e5838)
at /home/antonio/jhbuild/checkout/glib/gio/gapplication.c:2470
#21 0x00000000004412c7 in main (argc=1, argv=0x7ffdd47e5838) at ../../../../jhbuild/checkout/nautilus/src/nautilus-main.c:84