GConf error

Colin Walters walters at verbum.org
Fri May 7 17:37:20 UTC 2010

On Fri, May 7, 2010 at 1:17 PM, Toshio Kuratomi <a.badger at gmail.com> wrote:
> Running makefile-install-schema and makefile-uninstall-schema eventually
> calls do_sync() which was supposed to reread the schemas.  That's currently
> calling gconf_engine_suggest_sync() in gconf.c and I'm not sure whether
> there's some logic in there that could cause it not to suggest syncing in
> our current setup.

I don't understand how this could ever work - GConf IPC happens in
terms of ORBit which is per-uid, so a bare --makefile-install-rule
might contact the GConf engine for uid 0 and ask it to reload, but
that's it.  It would have to jump through hoops to contact the GConf
running as uid 500 or whatever, and I don't see those hoops being

Oh but...I see, it's a Fedora patch not in the upstream GConf code to
run killall.  My bad looking at upstream gconf git.  Sigh...

> So changing policy back to doing a killall -HUP in %posttrans should work.
> It would be nice to know what Fedora versions are affected by this and
> whether it will someday be fixed before updating the Guidelines, though.

So though this still leaves a window of up to 30 seconds where after
installing an application the schema will be invalid.  Which seems
very likely what people are hitting.

I think ideally we'd have the RPM system detect a schema was installed
and do an immediate reload once post transaction, and nuke the 30
second timeout from gconf.  That still leaves though the problem of
the massive copy&paste scriptlets; we could remove the killall from
--makefile-install-rule which would help.

More information about the devel mailing list