2014-09-22 22:46:04 |
Colin Watson |
bug |
|
|
added bug |
2014-09-22 22:46:08 |
Colin Watson |
bug watch added |
|
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=579075 |
|
2014-09-22 22:46:09 |
Colin Watson |
man-db (Debian): remote watch |
|
Debian Bug tracker #579075 |
|
2014-09-22 23:09:24 |
Colin Watson |
description |
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')
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 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 |
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')
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 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 |
|
2014-09-22 23:09:49 |
Colin Watson |
nominated for series |
|
Ubuntu Trusty |
|
2014-09-22 23:09:49 |
Colin Watson |
bug task added |
|
man-db (Ubuntu Trusty) |
|
2014-09-22 23:09:49 |
Colin Watson |
nominated for series |
|
Ubuntu Lucid |
|
2014-09-22 23:09:49 |
Colin Watson |
bug task added |
|
man-db (Ubuntu Lucid) |
|
2014-09-22 23:09:49 |
Colin Watson |
nominated for series |
|
Ubuntu Precise |
|
2014-09-22 23:09:49 |
Colin Watson |
bug task added |
|
man-db (Ubuntu Precise) |
|
2014-09-23 01:19:20 |
Bug Watch Updater |
man-db (Debian): status |
New |
Fix Released |
|
2014-09-23 01:19:20 |
Bug Watch Updater |
man-db (Debian): importance |
Undecided |
Unknown |
|
2014-09-23 12:56:17 |
Colin Watson |
man-db (Ubuntu Lucid): importance |
Undecided |
High |
|
2014-09-23 12:56:19 |
Colin Watson |
man-db (Ubuntu): importance |
Undecided |
High |
|
2014-09-23 12:56:23 |
Colin Watson |
man-db (Ubuntu Precise): importance |
Undecided |
High |
|
2014-09-23 12:56:29 |
Colin Watson |
man-db (Ubuntu Trusty): importance |
Undecided |
High |
|
2014-09-23 12:56:45 |
Colin Watson |
man-db (Ubuntu Precise): status |
New |
In Progress |
|
2014-09-23 12:57:00 |
Colin Watson |
man-db (Ubuntu): status |
New |
Fix Committed |
|
2014-09-23 12:57:04 |
Colin Watson |
man-db (Ubuntu Lucid): status |
New |
In Progress |
|
2014-09-23 12:57:06 |
Colin Watson |
man-db (Ubuntu Trusty): status |
New |
In Progress |
|
2014-09-23 12:57:09 |
Colin Watson |
man-db (Ubuntu): assignee |
|
Colin Watson (cjwatson) |
|
2014-09-23 12:57:10 |
Colin Watson |
man-db (Ubuntu Lucid): assignee |
|
Colin Watson (cjwatson) |
|
2014-09-23 12:57:14 |
Colin Watson |
man-db (Ubuntu Trusty): assignee |
|
Colin Watson (cjwatson) |
|
2014-09-23 12:57:16 |
Colin Watson |
man-db (Ubuntu Precise): assignee |
|
Colin Watson (cjwatson) |
|
2014-09-23 13:31:17 |
Gunnar Hjalmarsson |
bug |
|
|
added subscriber Gunnar Hjalmarsson |
2014-09-23 16:08:57 |
Brian Murray |
bug |
|
|
added subscriber Brian Murray |
2014-09-23 16:39:57 |
Chris J Arges |
man-db (Ubuntu Trusty): status |
In Progress |
Fix Committed |
|
2014-09-23 16:40:01 |
Chris J Arges |
bug |
|
|
added subscriber Ubuntu Stable Release Updates Team |
2014-09-23 16:40:07 |
Chris J Arges |
bug |
|
|
added subscriber SRU Verification |
2014-09-23 16:40:12 |
Chris J Arges |
tags |
|
verification-needed |
|
2014-09-23 16:40:53 |
Chris J Arges |
man-db (Ubuntu Precise): status |
In Progress |
Fix Committed |
|
2014-09-23 16:41:37 |
Chris J Arges |
man-db (Ubuntu Lucid): status |
In Progress |
Fix Committed |
|
2014-09-23 17:14:45 |
Launchpad Janitor |
branch linked |
|
lp:ubuntu/lucid-proposed/man-db |
|
2014-09-23 17:14:46 |
Launchpad Janitor |
branch linked |
|
lp:ubuntu/precise-proposed/man-db |
|
2014-09-23 17:14:47 |
Launchpad Janitor |
branch linked |
|
lp:ubuntu/trusty-proposed/man-db |
|
2014-09-23 17:29:15 |
yds |
bug |
|
|
added subscriber yds |
2014-09-23 17:29:29 |
yds |
removed subscriber yds |
|
|
|
2014-09-23 17:29:40 |
yds |
bug |
|
|
added subscriber yds |
2014-09-26 09:26:34 |
Colin Watson |
man-db (Ubuntu): status |
Fix Committed |
Fix Released |
|
2014-09-26 10:16:31 |
Paul Tacey-Green |
bug |
|
|
added subscriber Paul Tacey-Green |
2014-10-06 18:50:46 |
Colin Watson |
tags |
verification-needed |
verification-done |
|
2014-10-06 21:20:42 |
Colin Watson |
removed subscriber Ubuntu Stable Release Updates Team |
|
|
|
2014-10-06 21:21:08 |
Launchpad Janitor |
man-db (Ubuntu Precise): status |
Fix Committed |
Fix Released |
|
2014-10-06 21:21:36 |
Launchpad Janitor |
man-db (Ubuntu Lucid): status |
Fix Committed |
Fix Released |
|
2014-10-06 21:26:13 |
Launchpad Janitor |
man-db (Ubuntu Trusty): status |
Fix Committed |
Fix Released |
|