Bug 608041

Summary: gsettings-data-convert segfaults
Product: [Fedora] Fedora Reporter: Matthew Garrett <mjg>
Component: GConf2Assignee: Ray Strode [halfline] <rstrode>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: rawhideCC: jfeeney, mclasen, rstrode, walters
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-06-29 15:10:11 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Migrate file
none
Schema none

Description Matthew Garrett 2010-06-25 13:54:29 UTC
Running gsettings-data-convert gives the following output and then segfaults:


(gsettings-data-convert:3865): GLib-GIO-CRITICAL **: g_settings_new_with_path: assertion `path != NULL' failed

(gsettings-data-convert:3865): GLib-GIO-CRITICAL **: g_settings_delay: assertion `G_IS_SETTINGS (settings)' failed

(gsettings-data-convert:3865): GLib-GIO-CRITICAL **: g_settings_set_value: assertion `G_IS_SETTINGS (settings)' failed

(gsettings-data-convert:3865): GLib-GIO-CRITICAL **: g_settings_set_value: assertion `G_IS_SETTINGS (settings)' failed

(gsettings-data-convert:3865): GLib-GIO-CRITICAL **: g_settings_set_value: assertion `G_IS_SETTINGS (settings)' failed

(gsettings-data-convert:3865): GLib-GIO-CRITICAL **: g_settings_set_value: assertion `G_IS_SETTINGS (settings)' failed

(gsettings-data-convert:3865): GLib-GIO-CRITICAL **: g_settings_set_value: assertion `G_IS_SETTINGS (settings)' failed

(gsettings-data-convert:3865): GLib-GIO-CRITICAL **: g_settings_set_value: assertion `G_IS_SETTINGS (settings)' failed
Failed to get GConf key '"d"> = /apps/gnome-power-manager/backlight/brightness_ac': Bad key or directory name: ""d"> = /apps/gnome-power-manager/backlight/brightness_ac": Must begin with a slash '/'

(gsettings-data-convert:3865): GLib-GIO-CRITICAL **: g_settings_set_value: assertion `G_IS_SETTINGS (settings)' failed

(gsettings-data-convert:3865): GLib-GIO-CRITICAL **: g_settings_set_value: assertion `G_IS_SETTINGS (settings)' failed

(gsettings-data-convert:3865): GLib-GIO-CRITICAL **: g_settings_set_value: assertion `G_IS_SETTINGS (settings)' failed

(gsettings-data-convert:3865): GLib-GIO-CRITICAL **: g_settings_set_value: assertion `G_IS_SETTINGS (settings)' failed

(gsettings-data-convert:3865): GLib-GIO-CRITICAL **: g_settings_set_value: assertion `G_IS_SETTINGS (settings)' failed

(gsettings-data-convert:3865): GLib-GIO-CRITICAL **: g_settings_set_value: assertion `G_IS_SETTINGS (settings)' failed

(gsettings-data-convert:3865): GLib-GIO-CRITICAL **: g_settings_set_value: assertion `G_IS_SETTINGS (settings)' failed

(gsettings-data-convert:3865): GLib-GIO-CRITICAL **: g_settings_set_value: assertion `G_IS_SETTINGS (settings)' failed

(gsettings-data-convert:3865): GLib-GIO-CRITICAL **: g_settings_set_value: assertion `G_IS_SETTINGS (settings)' failed

(gsettings-data-convert:3865): GLib-GIO-CRITICAL **: g_settings_set_value: assertion `G_IS_SETTINGS (settings)' failed

(gsettings-data-convert:3865): GLib-GIO-CRITICAL **: g_settings_set_value: assertion `G_IS_SETTINGS (settings)' failed
Segmentation fault (core dumped)

Comment 1 Matthew Garrett 2010-06-25 15:36:21 UTC
Backtrace appears to be:

warning: core file may not match specified executable file.
[New Thread 3865]
Core was generated by `gsettings-data-convert'.
Program terminated with signal 11, Segmentation fault.
#0  IA__g_settings_apply (settings=0x0) at gsettings.c:1713
1713	  if (settings->priv->delayed)

Thread 1 (Thread 3865):
#0  IA__g_settings_apply (settings=0x0) at gsettings.c:1713
No locals.
#1  0x0000000000402112 in handle_file (argc=1, argv=0x7fff98f529e8)
    at gsettings-data-convert.c:249
        schema_path = <value optimized out>
        value = <value optimized out>
        i = <value optimized out>
        groups = 0x221cd10
        keys = <value optimized out>
        str = <value optimized out>
        ii = <value optimized out>
        j = <value optimized out>
        v = <value optimized out>
        keyfile = 0x21fe040
        gconf_key = <value optimized out>
        builder = <value optimized out>
        s = <value optimized out>
        list = <value optimized out>
        s = 0x0
        client = 0x221a860 [GConfClient]
        l = <value optimized out>
        error = 0x0
#2  main (argc=1, argv=0x7fff98f529e8) at gsettings-data-convert.c:442
        stored_mtime = <value optimized out>
        dir_mtime = 1277422158
        statbuf = {st_dev = 2065, st_ino = 762231, st_nlink = 2, st_mode = 
    16877, st_uid = 0, st_gid = 0, __pad0 = 0, st_rdev = 0, st_size = 4096, 
          st_blksize = 4096, st_blocks = 8, st_atim = {tv_sec = 1277471901, 
            tv_nsec = 682493874}, st_mtim = {tv_sec = 1277422158, tv_nsec = 
    3854431}, st_ctim = {tv_sec = 1277422158, tv_nsec = 3854431}, __unused = {
    0, 0, 0}}
        error = 0x0
        converted = 0x21fb1e0
        dir = 0x21ff980
        name = 0x2200933 "org.gnome.power-manager.gschema.migrate"
        filename = 
    0x2208910 "/usr/share/GConf/gsettings/org.gnome.power-manager.gschema.migrate"
        i = <value optimized out>
        context = <value optimized out>
        entries = {{long_name = 0x402730 "verbose", short_name = 0 '\000', 
            flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x602fc8, 
            description = 0x402738 "show verbose messages", arg_description = 
    0x0}, {long_name = 0x40274e "dry-run", short_name = 0 '\000', flags = 0, 
            arg = G_OPTION_ARG_NONE, arg_data = 0x602fcc, description = 
    0x402756 "do not perform any changes", arg_description = 0x0}, {
            long_name = 0x0, short_name = 0 '\000', flags = 0, arg = 
    G_OPTION_ARG_NONE, arg_data = 0x0, description = 0x0, arg_description = 
    0x0}}
From                To                  Syms Read   Shared Object Library
0x00007f5832a4cc30  0x00007f5832a68ba8  Yes         /usr/lib64/libgconf-2.so.4.1.5
0x00000034548056e0  0x0000003454811628  Yes         /lib64/libpthread-2.12.90.so
0x00007f58327502d0  0x00007f58327ef3b8  Yes         /lib64/libgio-2.0.so.0.2509.0
0x00007f58324ea400  0x00007f58325176b8  Yes         /lib64/libgobject-2.0.so.0.2509.0
0x00007f58321f8910  0x00007f583227e298  Yes         /lib64/libglib-2.0.so.0.2509.0
0x000000345401e9e0  0x000000345412f700  Yes         /lib64/libc-2.12.90.so
0x0000003460027990  0x000000346004b6a8  Yes         /usr/lib64/libORBit-2.so.0.1.0
0x00007f5831fa54f0  0x00007f5831fcdf58  Yes         /lib64/libdbus-1.so.3.5.1
0x00007f5831d9b080  0x00007f5831d9bfc8  Yes         /lib64/libgmodule-2.0.so.0.2509.0
0x0000003453c00b20  0x0000003453c199a4  Yes         /lib64/ld-2.12.90.so
0x00007f5831b97590  0x00007f5831b98a68  Yes         /lib64/libgthread-2.0.so.0.2509.0
0x0000003455402190  0x00000034554057d8  Yes         /lib64/librt-2.12.90.so
0x0000003454c00de0  0x0000003454c01998  Yes         /lib64/libdl-2.12.90.so
0x0000003456803910  0x0000003456812478  Yes         /lib64/libresolv-2.12.90.so
0x0000003455001e70  0x000000345500e678  Yes         /lib64/libz.so.1.2.5
0x0000003455c05610  0x0000003455c15758  Yes         /lib64/libselinux.so.1
0x00007f5831986160  0x00007f583198e278  Yes         /lib64/libnss_files-2.12.90.so
$1 = 0x0
$2 = 0x0
rax            0x201	513
rbx            0x221e348	35775304
rcx            0x3454382e88	224751267464
rdx            0x0	0
rsi            0x0	0
rdi            0x0	0
rbp            0x221e340	0x221e340
rsp            0x7fff98f52700	0x7fff98f52700
r8             0x1	1
r9             0x14	20
r10            0x7fff98f52490	140735759590544
r11            0x7f58327b33f0	140016780784624
r12            0x221e150	35774800
r13            0x0	0
r14            0x221e150	35774800
r15            0x221d1b0	35770800
rip            0x7f58327b33f1	0x7f58327b33f1 <IA__g_settings_apply+1>
eflags         0x10202	[ IF RF ]
cs             0x33	51
ss             0x2b	43
ds             0x0	0
es             0x0	0
fs             0x0	0
gs             0x0	0
Dump of assembler code for function IA__g_settings_apply:
   0x00007f58327b33f0 <+0>:	push   %rbx
=> 0x00007f58327b33f1 <+1>:	mov    0x18(%rdi),%rax
   0x00007f58327b33f5 <+5>:	mov    %rdi,%rbx
   0x00007f58327b33f8 <+8>:	cmpq   $0x0,0x28(%rax)
   0x00007f58327b33fd <+13>:	je     0x7f58327b3420 <IA__g_settings_apply+48>
   0x00007f58327b33ff <+15>:	callq  0x7f58327ae670 <g_delayed_settings_backend_get_type>
   0x00007f58327b3404 <+20>:	mov    0x18(%rbx),%rdx
   0x00007f58327b3408 <+24>:	mov    %rax,%rsi
   0x00007f58327b340b <+27>:	mov    0x8(%rdx),%rdi
   0x00007f58327b340f <+31>:	callq  0x7f583274f5f0 <g_type_check_instance_cast@plt>
   0x00007f58327b3414 <+36>:	pop    %rbx
   0x00007f58327b3415 <+37>:	mov    %rax,%rdi
   0x00007f58327b3418 <+40>:	jmpq   0x7f58327ae4e0 <g_delayed_settings_backend_apply>
   0x00007f58327b341d <+45>:	nopl   (%rax)
   0x00007f58327b3420 <+48>:	pop    %rbx
   0x00007f58327b3421 <+49>:	retq   
End of assembler dump.

Comment 2 Matthew Garrett 2010-06-29 13:34:58 UTC
Created attachment 427682 [details]
Migrate file

Comment 3 Matthew Garrett 2010-06-29 13:35:33 UTC
Created attachment 427683 [details]
Schema

Migrate file and schema from gnome-power-manager, which it's converting at the time

Comment 4 Matthew Garrett 2010-06-29 13:36:31 UTC
It's calling g_settings_new_with_path, except path is NULL and so it doesn't return an object. Everything falls over shortly afterwards.