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 648949 - crash in gvdb_table_lookup at ../gvdb/gvdb-reader.c
crash in gvdb_table_lookup at ../gvdb/gvdb-reader.c
Status: RESOLVED FIXED
Product: dconf
Classification: Core
Component: gsettings backend
git master
Other Linux
: Normal critical
: ---
Assigned To: dconf-maint
dconf-maint
Depends on:
Blocks:
 
 
Reported: 2011-04-29 15:29 UTC by Matthias Clasen
Modified: 2011-05-05 13:44 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Matthias Clasen 2011-04-29 15:29:03 UTC
https://bugzilla.redhat.com/show_bug.cgi?id=689984

Here we see dconf calling munmap in one thread, and another thread gets a segfault in gvdb_table_lookup
Comment 1 Matthias Clasen 2011-04-29 15:29:24 UTC
Direct link to the stacktrace: https://bugzilla.redhat.com/attachment.cgi?id=486921
Comment 2 Fabio Durán Verdugo 2011-04-29 22:15:37 UTC
Paste here the stacktrace.

warning: core file may not match specified executable file.
[New LWP 3344]
[New LWP 3346]
[New LWP 3345]
[Thread debugging using libthread_db enabled]
Core was generated by `gnome-control-center keyboard'.
Program terminated with signal 11, Segmentation fault.

Thread 1 (Thread 0x7fd27a80d940 (LWP 3344))

  • #0 gvdb_table_lookup
    at ../gvdb/gvdb-reader.c line 265
  • #1 gvdb_table_get_value
    at ../gvdb/gvdb-reader.c line 441
  • #2 dconf_engine_read
    at ../engine/dconf-engine.c line 415
  • #3 dconf_settings_backend_read
    at dconfsettingsbackend.c line 408
  • #4 dconf_settings_backend_read
    at dconfsettingsbackend.c line 394
  • #5 g_settings_backend_read
    at gsettingsbackend.c line 730
  • #6 g_settings_read_from_backend
    at gsettings.c line 1084
  • #7 g_settings_get_value
    at gsettings.c line 1265
  • #8 g_settings_get_string
    at gsettings.c line 1734
  • #9 gkbd_keyboard_config_load_params
    at gkbd-keyboard-config.c line 330
  • #10 gkbd_keyboard_config_load
    at gkbd-keyboard-config.c line 441
  • #11 ??
    from /usr/lib64/control-center-1/panels/libregion.so
  • #12 ??
    from /usr/lib64/control-center-1/panels/libregion.so
  • #13 g_closure_invoke
    at gclosure.c line 767
  • #14 signal_emit_unlocked_R
    at gsignal.c line 3252
  • #15 g_signal_emit_valist
    at gsignal.c line 2983
  • #16 g_signal_emit
    at gsignal.c line 3040
  • #17 g_settings_real_change_event
    at gsettings.c line 280
  • #18 _gio_marshal_BOOLEAN__POINTER_INT
    at gio-marshal.c line 357
  • #19 g_closure_invoke
    at gclosure.c line 767
  • #20 signal_emit_unlocked_R
    at gsignal.c line 3290
  • #21 g_signal_emit_valist
    at gsignal.c line 2993
  • #22 g_signal_emit
    at gsignal.c line 3040
  • #23 settings_backend_path_changed
    at gsettings.c line 341
  • #24 g_settings_backend_invoke_closure
    at gsettingsbackend.c line 265
  • #25 g_main_dispatch
    at gmain.c line 2440
  • #26 g_main_context_dispatch
    at gmain.c line 3013
  • #27 g_main_context_iterate
    at gmain.c line 3091
  • #28 g_main_loop_run
    at gmain.c line 3299
  • #29 gtk_main
    at gtkmain.c line 1358
  • #30 g_application_run
    at gapplication.c line 1322
  • #31 main

Comment 3 Allison Karlitskaya (desrt) 2011-05-05 13:44:59 UTC
commit da7229b0b2c3a4aec392a042fd231bea7aaecfc0
Author: Ryan Lortie <desrt@desrt.ca>
Date:   Thu May 5 15:38:21 2011 +0200

    Change locking in the engine
    
    Switch from code locking to data locking and hold the data lock quite a
    lot more often.
    
    We could try to be more clever about finding ways to hold locks less
    often but I think it's not really worth it.
    
    Closes #648949