Bug 546543

Summary: usr/bin/gconftool-2 --makefile-uninstall-rule ... slows down system upgrade
Product: [openSUSE] openSUSE 11.4 Reporter: Lars Müller <lmuelle>
Component: GNOMEAssignee: E-mail List <gnome-bugs>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Critical    
Priority: P2 - High CC: badshah400, captain.magnus, dimstar, drankinatty, g.w.kant, jnelson-suse, ke, koenig, vuntz
Version: RC 1   
Target Milestone: RC 2   
Hardware: All   
OS: openSUSE 11.3   
Whiteboard:
Found By: Development Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Lars Müller 2009-10-13 15:05:19 UTC
I'm performning an upgrade of an openSUSE 11.1 system to 11.2 MS 8.

The package install while the upgrade takes a long time due to man calls to

usr/bin/gconftool-2 --makefile-uninstall-rule etc/gconf/schemas/compiz-decoration.schemas

I'm able to see this from the output of ps axf on a console.
Comment 1 Lars Müller 2009-10-13 15:11:01 UTC
Moving it to critical as it slows down the install/ upgrade heavily.
Comment 2 Lars Müller 2009-10-13 15:20:29 UTC
This report might be a duplicate of bug 476292.
Comment 3 Stephan Binner 2009-10-13 19:42:43 UTC
Before anyone closes it as dupe of that, "You are not authorized to access bug #476292."
Comment 4 Stephan Kulow 2009-10-13 20:26:50 UTC
slow down is not data loss
Comment 5 Stephan Kulow 2009-10-13 20:28:54 UTC
@#3 - the bug is all about http://lists.opensuse.org/opensuse-factory/2009-02/msg00334.html
Comment 6 Lars Müller 2009-10-14 15:35:19 UTC
Might it be useful to tweak while an upgrade of an earlier version to replace the usr/bin/gconftool-2 binary by a dummy which does nothing while the upgrade is performed?

After the upgrade we might install the 11.2 gconftool-2 binary again.

@Michael: You might have a better idea how to deal with this situation of existing 11.1 scripts which are executed at the update of many gnome packages.
Comment 7 Michael Schröder 2009-10-15 09:23:24 UTC
Nope, the only way I know is to look at the source of gconftool and make it faster. That's what we did with ldconfig.
Comment 8 Ming Xi Wu 2009-10-16 04:03:03 UTC
duplication of bug 476292.

*** This bug has been marked as a duplicate of bug 476292 ***
Comment 9 Magnus Boman 2009-10-17 10:22:45 UTC
Bug#476292 is not open to public so reopen....
Comment 10 Lars Müller 2009-10-30 13:47:34 UTC
There is no reference in the gconf2 package change log I've installed with openSUSE 11.2 RC 2 today (2.28.0-2.5) to this bug ID.

Got this issue silently fixed?
Comment 11 Lars Müller 2009-11-11 19:29:44 UTC
This is a critical issue.  We have openSUSE 11.2 released and updates are very slow cause of this gconftool-2 issue.

Looks like the fix was not merged in time.
Comment 12 Lars Müller 2009-11-24 14:43:35 UTC
No reference to this bug ID nor to 476292 in the gconf2 package change log.
Comment 13 Bin Li 2009-11-26 09:16:19 UTC
Lars,

 Now in 11.2 the gconf2 has already been changed for optimized by Vincent.

In the changelog you'll find below lines.

Thu Feb 26 19:57:17 CET 2009 - vuntz@novell.com

- Update macros.gconf2 to have faster package upgrades:
  + do only one gconftool-2 --makefile-install-rule for all the
    schemas files, instead of multiple calls
  + compare the old schema with the new one and if they are not
    different, skip the --makefile-uninstall-rule and
    --makefile-install-rule for it
  + note: this adds a dependency on diffutils for all packages
    shipping gconf schemas


http://lists.opensuse.org/opensuse-factory/2009-02/msg00334.html
And from the link you can find

+ we call gconftool-2 --makefile-install-rule only once per package
using gconf now, instead of multiple times. This should improve
things significantly for some packages.
(we still have to call gconftool-2 --makefile-uninstall-rule too)

+ if the schema file hasn't changed between the old and the new
package, we just skip this test. And since schema files don't change
that often, this is a huge win.

 And the bug 476292 is for SLE11, the gconf is 2.24, theren't update the file, so now I've just changed the macros like Vincents.

 So I thought this bug should be changed to fixed.
Comment 14 Bin Li 2009-11-26 09:35:16 UTC
->Fixed.

Feel free to contact me if any issue.
Comment 15 Lars Müller 2009-11-26 09:43:50 UTC
Please reference bugzilla IDs in the package change log as the majority of packages do.

Take the kernel or Samba packages as an example.

Without bug references our customers and users do not have a chance to check if a particular bugfix got merged.
Comment 16 Bin Li 2009-11-26 10:50:25 UTC
Sorry about it, we should always add the bug number for bug fix, thanks.
Comment 17 Karl Eichwalder 2010-07-20 12:58:26 UTC
Still rather slow while updating 11.2 to 11.3.
Comment 18 David Rankin 2010-07-21 13:39:37 UTC
This bug is back with a vengence in 11.3.

    I updated 11.2 -> 11.3 and then updated the remaining packages from within yast. After the yast updates, compiz was dead, so I went to remove it and start over trying with either J's packages in XGL or Dominiques' in compiz. No big deal, I've done this 50 times before, but this time:

rpm -e $(rpm -qa | grep "compiz\|fusion\|emerald") python-ccm simple-ccsm

took so long to complete, I canceled the process at 10 minutes to check whether it was stuck. In ten minutes time, it had only removed 6 out of the 13 compiz packages that needed to be removed. Checking further, the problem was gconftool-2 stuck at the top of top. I don't know what the heck it was doing, but it was sitting there eating between 30% and 50% of the cpu the entire time I was trying to rpm -e compiz with the cli above.

    Why is gconftool-2 running when removing compiz rpms anyway? Compiz removal should take no more than 30 seconds. As I've said above, I've probably done it 50 times in the past 3 years. In 11.3 it took over 20 minutes to remove the 13 packages that make up my compiz install:

08:15 zephyr:/home/backup/rpms/suse11.3> rpm -qa | grep "compiz\|fusion\|emerald" | sort -u
compiz-0.8.6-49.1.i586
compiz-branding-SLE-0.8.6-49.1.i586
compiz-branding-openSUSE-0.8.6-49.1.i586
compiz-branding-upstream-0.8.6-49.1.i586
compiz-emerald-0.8.6-13.1.i586
compiz-gnome-0.8.6-49.1.i586
compiz-plugins-extra-0.8.6-5.1.i586
compiz-plugins-main-0.8.6-7.1.i586
compiz-plugins-unsupported-0.8.4-1.1.i586
compizconfig-settings-manager-0.8.4-16.1.noarch
fusion-icon-0.0.1_080201-8.1.i586
libcompizconfig-0.8.4-3.1.i586
python-compizconfig-0.8.4-9.1.i586

     It would appear that a regression has occurred...  Let me know if I can provide any additional information and I'll be happy to. Thanks.
Comment 19 Dominique Leuenberger 2010-10-01 06:46:30 UTC
*** Bug 637228 has been marked as a duplicate of this bug. ***
Comment 20 Lars Müller 2011-02-20 15:04:50 UTC
And it's still the same with openSUSE 11.4 RC 1.

@Coolo: Please add openSUSE 11.4 as "Platform" too.  It's currently available as "Product" only.
Comment 21 Vincent Untz 2011-02-20 17:04:15 UTC
(In reply to comment #20)
> And it's still the same with openSUSE 11.4 RC 1.

What is the version you're upgrading from?
For which packages is it extremely slow? (all packages with gconf schemas, or only a few)
How slow is "slow"?
Comment 22 Lars Müller 2011-02-20 17:39:37 UTC
I've performed an upgrade from an up to date oS 11.3 to 11.4 RC 1.

It's slow for all packages calling gconftool-2 in the scripts section.

I'm using zypper and therefore I see the progress and then it stops for 5, 10 or even more seconds.  Enough time to call top in a different shell and to call ps and identify gconftool-2 forked from rpm.

Is the hardware a Pentium 1 110 MHz?  No, it's a dual core CPU running at 2.2 GHz and with 4 GB of main memory.

As I'm performing the install from an ISO image from an external disk attached to the same computer I'm sure the system isn't waiting for network IO.
Comment 23 Vincent Untz 2011-02-20 18:14:51 UTC
Ah, right: since nearly all schemas are different between 11.3 and 11.4, this is kind of expected. What I fixed is the case where you install a maintenance update; this won't be slow in 99% of the cases since the schemas are the same.

FWIW, it's way too late to do anything about this for upgrades to 11.4. If someone takes a look, it might get fixed for upgrades from 11.4 to 11.4+1; it certainly won't be my priority, though... In all cases, upgrades from 11.4+1 to 11.4+2 likely won't be affect as much, since most apps will be using gsettings by then, and not gconf anymore.
Comment 24 Stephan Kulow 2011-02-21 13:08:05 UTC
I don't maintain bugzilla. you can file enhancements yourself
Comment 25 Vincent Untz 2011-03-01 23:44:49 UTC
*** Bug 548605 has been marked as a duplicate of this bug. ***
Comment 26 Jon Nelson 2011-09-26 13:37:31 UTC
Why not use triggers or some other mechanism to run gconftool-2 only *once* at the end of /all/ rpm installs rather than (at least) once per package?
Comment 27 Vincent Untz 2011-09-26 13:45:31 UTC
(In reply to comment #26)
> Why not use triggers or some other mechanism to run gconftool-2 only *once* at
> the end of /all/ rpm installs rather than (at least) once per package?

Because we don't have a really good way to do this right now.

(FWIW, the upgrade to 12.1 will be a bit painful too, but since gconf is dying away, this should get better after that)
Comment 28 Dominique Leuenberger 2012-07-21 19:05:15 UTC
Based on last experiences and development: closing this bug.

GConf schemas are slowly dying out, most apps in 12.2 did move to gsettings by now.

And unless we get RPM triggers, there is anyway not much that could be changed (in order to ensure all goes well).