Comment 54 for bug 1579712

Revision history for this message
Neil Mayhew (neil.mayhew) wrote :

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.