[Bug 1579712] Re: Refresh hangs indefinitely, appstreamcli using 100% CPU

Neil Mayhew neil_mayhew at sil.org
Fri May 20 05:36:13 UTC 2016


The simplest workaround seems to be to use Ctrl-C when apt update hangs
at the end. It's already done most of the work, and this just aborts the
running of appstreamcli at the end. You can then go ahead and update any
binary packages built from the appstream source package (ie any of
appstream appstream-doc appstream-index gir1.2-appstream libappstream-
dev libappstream3 libappstreamqt-dev libappstreamqt1 that are already
installed). The use of appstreamcli in the postinst shouldn't hang
because the new versions of appstreamcli and libappstream.so.3 will
already be in place.

However, using Ctrl-C is possible only when using the command line. I'm
not sure what happens if someone is using Synaptic or Gnome Software. I
assume it would be necessary to use System Monitor to kill off
appstreamcli. I'm concerned that we could see breakage in a very large
number of Xenial installations, all of which would require manual
intervention to get them unstuck.

The fact that this is happening now, when it hasn't been reported in the
past 3 years, must be due to a subtle change in the execution
environment, maybe due to updates in other shared libraries that
appstreamcli uses. The problem is a result of reading uninitialized
memory, and in the past it must have been pure luck that the memory
always contained zeroes.

-- 
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1579712

Title:
  Refresh hangs indefinitely, appstreamcli using 100% CPU

Status in appstream package in Ubuntu:
  Fix Released
Status in appstream source package in Xenial:
  Fix Committed

Bug description:
  [Impact]

   * The cache refresh is blocked on a strdup on a non-NULL-terminated string in some very rare occasions (very rare because this bug is present for almost 3y without a single report).
   * Fixing this bug resolves the issue for people who might experience it.
   * See https://github.com/ximion/appstream/issues/35 for details.

  [Test Case 1]

   * Run `sudo appstreamcli refresh --force`
   * The AppStream cache should be updated, no change in behavior should be seen.

  [Test Case 2]

   * In case you were experiencing the almost-infinite hang when running
  `sudo appstreamcli refresh --force`, this issue should be fixed with
  the SRU.

  [Regression Potential]

   * Very low, since this only fixes the decompression code. There
  should be no sideeffects of that (given that the patch itself doesn't
  break anything, which it shouldn't, since it has been tested upstream
  for a while)

  [Other Info]

   * This fix has been applied upstream: https://github.com/ximion/appstream/commit/f33c520c37e2ba51d92402220250b8d501a2bf43
   * A smaller version of the patch (one-liner) is available, at the expense of not having reduced memory usage: https://github.com/ximion/appstream/commit/378941787d3584b3eb31a6ebe40e0aacc10e180a

  ####

  /!\ Installing the bugfix from xenial-proposed, without going through APT:
  To install the fixed packages manually, please execute the following commands (for amd64, adjust URLs for other architectures):

  ```
  cd /tmp && mkdir asfix
  cd asfix
  wget https://launchpad.net/ubuntu/+archive/primary/+files/appstream_0.9.4-1ubuntu1_amd64.deb
  wget https://launchpad.net/ubuntu/+archive/primary/+files/libappstream3_0.9.4-1ubuntu1_amd64.deb
  sudo dpkg -i libappstream3*.deb
  sudo dpkg -i appstream*.deb
  ```

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/appstream/+bug/1579712/+subscriptions



More information about the Ubuntu-sponsors mailing list