** Description changed:

- Imported from Debian bug http://bugs.debian.org/579075:
+ SRU justification:
+ 
+ [Impact]
+ 
+ We see rather frequent hard-to-debug upgrade failures that amount to
+ man-db's trigger failing in some way that has nothing to do with the
+ mandb program itself, but rather in some kind of communication with the
+ package management frontend.  Almost all the open bugs on Ubuntu man-db
+ come down to this in one way or another.  The root cause is, I believe,
+ that it is not really safe to use debconf from a dpkg trigger: while
+ debconf itself behaves as if it were Essential, the debconf protocol is
+ often mediated by various frontends with less stringent practices.  It
+ would certainly be a good idea to get man-db's trigger out of the loop
+ here, as dpkg tends to run it at the end of an unpack phase when large
+ numbers of packages are unconfigured, which is pretty much the worst
+ case for having this work properly.
+ 
+ In the past I've tried to investigate why debconf fails in these
+ situations.  I've come to believe this is a wild goose chase, and that
+ the common case of ordinary postinsts sourcing the debconf confmodule is
+ much less likely to be a problem due to the nature of unpack/configure
+ sequencing; I admit that I don't have proof of this, but having one
+ fewer script using debconf is surely not going to make things worse, and
+ since lots of unpack runs pull the man-db trigger it seems likely to
+ improve things substantially.
+ 
+ The man-db trigger reads a single value from debconf to tell it whether
+ to automatically update the manual page database (used by apropos and
+ whatis).  This is in an agreed location in debconf so that such things
+ as package builders can save time by suppressing the database update.
+ There is, however, no reason to read this value every time the trigger
+ is activated; we can just cache it under /var/lib/man-db/ when man-db is
+ configured and then do a much simpler file-level test in the trigger.  I
+ should have thought of this years ago.
+ 
+ To have the maximum benefit for upgraders, we should do what we can to
+ ensure that they have a fixed version of man-db installed before the
+ upgrade.  I'd therefore like to apply this fix to all currently-
+ supported releases.
+ 
+ [Test Case]
+ 
+ I don't have a reliable reproduction scenario, but I have two
+ suggestions, which are in the sort of general vein of unit testing and
+ integration testing respectively:
+ 
+  * Install the new version of man-db and check that it causes 
/var/lib/man-db/auto-update to exist if and only if the debconf value for 
man-db/auto-update is true, and in turn that this still causes the database to 
be updated or not updated respectively when installing a package containing a 
manual page.
+  * After installing the new version of man-db, upgrade to the next supported 
or development series using the upgrade tool of your choice.
+ 
+ [Regression Potential]
+ 
+ Installing packages that contain manual pages and running system
+ upgrades should exercise this pretty thoroughly.  Since in general this
+ weakens the constraints on achieving successful upgrades, the main thing
+ to watch out for would just be things like inverted logic that might
+ cause the database not to be updated when it should be or vice versa.
+ 
+ Original report follows, imported from Debian bug
+ http://bugs.debian.org/579075:
  
  Package: man-db
  Version: 2.5.7-2
  Severity: wishlist
  
  I noticed that man-db starts debconf when triggered. Given how
  often triggers run, I think that should be optimised. Ie, move
  the $1 = triggered test above the confmodule sourcing.
  
  -- System Information:
  Debian Release: squeeze/sid
-   APT prefers unstable
-   APT policy: (500, 'unstable'), (500, 'stable')
+   APT prefers unstable
+   APT policy: (500, 'unstable'), (500, 'stable')
  Architecture: i386 (i686)
  
  Kernel: Linux 2.6.32-3-686 (SMP w/2 CPU cores)
  Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
  Shell: /bin/sh linked to /bin/dash
  
  Versions of packages man-db depends on:
- ii  bsdmainutils            8.0.10           collection of more utilities 
from 
+ ii  bsdmainutils            8.0.10           collection of more utilities from
  ii  debconf [debconf-2.0]   1.5.32           Debian configuration management 
sy
  ii  dpkg                    1.15.7.1         Debian package management system
  ii  groff-base              1.20.1-9         GNU troff text-formatting system 
(
  ii  libc6                   2.10.2-6         Embedded GNU C Library: Shared 
lib
  ii  libgdbm3                1.8.3-9          GNU dbm database routines 
(runtime
  ii  zlib1g                  1:1.2.3.4.dfsg-3 compression library - runtime
  
  man-db recommends no packages.
  
  Versions of packages man-db suggests:
  ii            5.0.386.0~svn20100423r45407-0u Chromium browser
  ii            2.30.2-1                       Intuitive GNOME web browser
  pn            <none>                         (no description available)
  ii            3.5.9-2                        Web browser based on Firefox
  ii            436-1                          pager program similar to more
  ii            0.5.2-4                        WWW browsable pager with 
excellent
  
  -- debconf information excluded
  
- -- 
+ --
  see shy jo

** Also affects: man-db (Ubuntu Trusty)
   Importance: Undecided
       Status: New

** Also affects: man-db (Ubuntu Lucid)
   Importance: Undecided
       Status: New

** Also affects: man-db (Ubuntu Precise)
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1372673

Title:
  excessive debconf use when triggered

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/man-db/+bug/1372673/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to