[Bug 257279] Re: -o Dpkg::Options::=--force-confdef ignored by cleanup run -- makes pkgsync hang
gf
257279 at bugs.launchpad.net
Sun Jul 22 14:36:55 UTC 2018
Hello Knut,
Thank you for submitting this bug and reporting a problem with synaptic. You made this bug report some time ago and Ubuntu has been updated since then.
Could you confirm that this is no longer a problem and that we can close the ticket?
If it is still a problem, are you still interested in finding a solution to this bug?
If you are, could you let us know and run the following (only once):
apport-collect BUGNUMBER
and upload the updated logs and and any other logs that are relevant for this particular issue.
Thank you again for helping make Ubuntu better.
G
** Changed in: synaptic (Ubuntu)
Status: New => Incomplete
** Changed in: aptitude (Ubuntu)
Status: Confirmed => Incomplete
** Changed in: aptitude
Status: Confirmed => Incomplete
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to aptitude in Ubuntu.
https://bugs.launchpad.net/bugs/257279
Title:
-o Dpkg::Options::=--force-confdef ignored by cleanup run -- makes
pkgsync hang
Status in aptitude:
Incomplete
Status in aptitude package in Ubuntu:
Incomplete
Status in synaptic package in Ubuntu:
Incomplete
Bug description:
Binary package hint: aptitude
When pkgsync is running, it calls aptitude with the options "-o
Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold" to
avoid being asked about what to do with changed conffiles. If such a
prompt is displayed, aptitude will hang until killed, awaiting user
input. pkgsync is typically run from cron, so asking for user input is
a bad thing.
In the normal case, aptitude propagates options down to dpkg like
this:
/bin/sh /etc/cron.daily/nightly-pkgsync
\_ /bin/bash /usr/sbin/pkgsync
\_ aptitude -y -q -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold dist-upgrade afacli+ apache [...]
\_ /usr/bin/dpkg --force-confdef --force-confold --status-fd 34 --configure [...]
\_ /usr/bin/perl -w /usr/share/debconf/frontend /var/lib/dpkg/info/sympa.postinst configure
However, if a package installation fails, this chunk of code in src/generic/apt/download_install_manager.cc is called:
switch(pmres)
{
case pkgPackageManager::Failed:
_error->DumpErrors();
cerr << _("A package failed to install. Trying to recover:") << endl;
system("DPKG_NO_TSTP=1 dpkg --configure -a");
_error->Discard();
This results in the following call tree, which hangs as soon as a
conffile is reached:
/bin/sh /etc/cron.daily/nightly-pkgsync
\_ /bin/bash /usr/sbin/pkgsync
\_ aptitude -y -q -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold dist-upgrade afacli+ apache [...]
\_ sh -c DPKG_NO_TSTP=1 dpkg --configure -a
\_ dpkg --configure -a
The rest of aptitude seems to use an pkgDPkgPM object from apt-
pkg/deb/dpkgpm.h (from the apt source package) when interfacing with
dpkg. I believe this cleanup code should adopt a similar approach.
A workaround for this problem is to add these lines to /etc/dpkg/dpkg.cfg:
force-confdef
force-confold
To manage notifications about this bug go to:
https://bugs.launchpad.net/aptitude/+bug/257279/+subscriptions
More information about the foundations-bugs
mailing list