ephy_settings_get() is not threadsafe
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007f5cbf68e895 in __GI_abort () at abort.c:79
#2 0x00007f5cbfbd68e1 in g_assertion_message (domain=0x7f5cbfc0adbf "GLib",
file=0x7f5cbfc0ad98 "../../../../Projects/glib/glib/ghash.c", line=468,
func=0x7f5cbfc0b050 <__FUNCTION__.11563> "g_hash_table_lookup_node",
message=0x1a9b330 "assertion failed: (!g_atomic_ref_count_compare (&hash_table->ref_count, 0))") at ../../../../Projects/glib/glib/gtestutils.c:2878
#3 0x00007f5cbfbd695d in g_assertion_message_expr (
domain=0x7f5cbfc0adbf "GLib",
file=0x7f5cbfc0ad98 "../../../../Projects/glib/glib/ghash.c", line=468,
func=0x7f5cbfc0b050 <__FUNCTION__.11563> "g_hash_table_lookup_node",
expr=0x7f5cbfc0adc8 "!g_atomic_ref_count_compare (&hash_table->ref_count, 0)") at ../../../../Projects/glib/glib/gtestutils.c:2904
#4 0x00007f5cbfb91b41 in g_hash_table_lookup_node (hash_table=0x14280c0,
key=0x7f5cc09e0ead, hash_return=0x7f5c4d9487a8)
at ../../../../Projects/glib/glib/ghash.c:468
#5 0x00007f5cbfb933f4 in g_hash_table_lookup (hash_table=0x14280c0,
key=0x7f5cc09e0ead) at ../../../../Projects/glib/glib/ghash.c:1464
#6 0x00007f5cc09c0d7c in ephy_settings_get (
schema=0x7f5cc09e0ead "org.gnome.Epiphany.web")
at ../../../../Projects/epiphany/lib/ephy-settings.c:91
#7 0x00007f5cc09cd7d4 in ephy_history_service_update_host_row (
self=0x2268820, host=0x1aa3060)
at ../../../../Projects/epiphany/lib/history/ephy-history-service-hosts-table.c:116
#8 0x00007f5cc09cb9e5 in ephy_history_service_execute_add_visit_helper (
self=0x2268820, visit=0x7adfc60)
at ../../../../Projects/epiphany/lib/history/ephy-history-service.c:559
#9 0x00007f5cc09cbbdc in ephy_history_service_execute_add_visit (
self=0x2268820, visit=0x7adfc60, result=0x7adfdb0)
at ../../../../Projects/epiphany/lib/history/ephy-history-service.c:605
#10 0x00007f5cc09cd11b in ephy_history_service_process_message (
self=0x2268820, message=0x7adfd90)
at ../../../../Projects/epiphany/lib/history/ephy-history-service.c:1204
#11 0x00007f5cc09cb737 in run_history_service_thread (self=0x2268820)
at ../../../../Projects/epiphany/lib/history/ephy-history-service.c:483
#12 0x00007f5cbfbd9148 in g_thread_proxy (data=0x14339e0)
at ../../../../Projects/glib/glib/gthread.c:805
#13 0x00007f5cbf83c58e in start_thread (arg=<optimized out>)
at pthread_create.c:486
#14 0x00007f5cbf7696a3 in clone ()
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Problems:
- No mutex lock in
ephy_settings_get()
-
ephy_settings_shutdown()
may be called when the history service thread is still running
Edited by Michael Catanzaro