After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 720489 - crash in rate_limiter_free
crash in rate_limiter_free
Status: RESOLVED DUPLICATE of bug 739424
Product: glib
Classification: Platform
Component: gio
2.38.x
Other Linux
: Normal critical
: ---
Assigned To: gtkdev
gtkdev
: 731817 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2013-12-15 14:36 UTC by Maciej (Matthew) Piechotka
Modified: 2015-02-03 13:52 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Maciej (Matthew) Piechotka 2013-12-15 14:36:15 UTC
warning: core file may not match specified executable file.
[New LWP 1232]
[New LWP 1252]
[New LWP 1250]
[New LWP 22778]
[New LWP 1248]
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/usr/libexec/tracker-miner-fs'.
Program terminated with signal 11, Segmentation fault.

Thread 1 (Thread 0x7f1edb6b2780 (LWP 1232))

  • #0 rate_limiter_free
    at /var/tmp/portage/dev-libs/glib-2.38.2/work/glib-2.38.2/gio/gfilemonitor.c line 160
  • #1 g_hash_table_foreach_remove_or_steal
    at /var/tmp/portage/dev-libs/glib-2.38.2/work/glib-2.38.2/glib/ghash.c line 1412
  • #2 g_hash_table_foreach_remove
    at /var/tmp/portage/dev-libs/glib-2.38.2/work/glib-2.38.2/glib/ghash.c line 1456
  • #3 rate_limiter_timeout
    at /var/tmp/portage/dev-libs/glib-2.38.2/work/glib-2.38.2/gio/gfilemonitor.c line 573
  • #4 g_timeout_dispatch
    at /var/tmp/portage/dev-libs/glib-2.38.2/work/glib-2.38.2/glib/gmain.c line 4451
  • #5 g_main_dispatch
    at /var/tmp/portage/dev-libs/glib-2.38.2/work/glib-2.38.2/glib/gmain.c line 3066
  • #6 g_main_context_dispatch
    at /var/tmp/portage/dev-libs/glib-2.38.2/work/glib-2.38.2/glib/gmain.c line 3642
  • #7 g_main_context_iterate
    at /var/tmp/portage/dev-libs/glib-2.38.2/work/glib-2.38.2/glib/gmain.c line 3713
  • #8 g_main_loop_run
    at /var/tmp/portage/dev-libs/glib-2.38.2/work/glib-2.38.2/glib/gmain.c line 3907
  • #9 main
    at tracker-main.c line 1090

Comment 1 Ross Lagerwall 2014-06-29 20:43:41 UTC
*** Bug 731817 has been marked as a duplicate of this bug. ***
Comment 2 Ross Lagerwall 2014-06-29 20:49:27 UTC
See also, https://bugs.launchpad.net/ubuntu/+source/update-notifier/+bug/1254628 and https://bugzilla.redhat.com/show_bug.cgi?id=1043167

The cause, from what I can tell, is that g_file_monitor_emit_event is called on a separate thread when the inotify file monitor is used and so it can race with rate_limiter_timeout and emit_cb which are called from the thread-default main context. All of the backtraces I can find sugggest that two threads are busy performing GFileMonitor operations.

Specifically, there is unprotected concurrent access to the rate_limiter hash table.  A simple fix would be to protect access with a mutex (possibly the one that already exists in GFileMonitor).
Comment 3 Allison Karlitskaya (desrt) 2015-02-03 13:52:23 UTC
There is more discussion about this problem at bug 739424.  I've already started working on a fix in a branch.

*** This bug has been marked as a duplicate of bug 739424 ***