Bug#608449: grub-pc: infinite debconf prompt loop (10 which devices? 20 continue without installing? 30 goto 10)

Jonathan Nieder jrnieder at gmail.com
Sat Jan 1 06:56:08 UTC 2011


Colin Watson wrote:

> Would it be possible to get a log with DEBCONF_DEBUG=developer set in
> the environment, to confirm exactly what's going on here?

Gladly.

| # cupt install grub-pc
| Building the package cache... [done]
| Initializing package resolver and worker... [done]
| Scheduling requested actions... [done]
| Resolving possible unmet dependencies... 
| The following 1 packages will be INSTALLED:
|
| grub-pc 
|
| The following 1 packages will be REMOVED:
| 
| grub-legacy 
| 
| Need to get 0B/996KiB of archives. After unpacking 1684KiB will be used.
| Do you want to continue? [y/N/q] y
| 
| Performing requested actions:
| Preconfiguring packages ...
| debconf (developer): starting /tmp/grub-pc.config.89471 configure 
| debconf (developer): <-- SET grub2/linux_cmdline 
| debconf (developer): --> 0 value set
| debconf (developer): <-- SET grub2/linux_cmdline_default quiet
| debconf (developer): --> 0 value set
| debconf (developer): <-- INPUT high grub2/linux_cmdline
| debconf (developer): --> 30 question skipped
| debconf (developer): <-- INPUT medium grub2/linux_cmdline_default
| debconf (developer): --> 30 question skipped
| debconf (developer): <-- GO 
| debconf (developer): --> 0 ok
| (Reading database ... 54629 files and directories currently installed.)
| Removing grub-legacy ...
| Processing triggers for man-db ...
| debconf (developer): frontend started
| debconf (developer): frontend running, package name is man-db
| debconf (developer): starting /var/lib/dpkg/info/man-db.config configure /usr/share/man
| debconf (developer): <-- VERSION 2.0
| debconf (developer): --> 0 2.0
| debconf (developer): <-- INPUT medium man-db/install-setuid
| debconf (developer): --> 30 question skipped
| debconf (developer): <-- GO 
| debconf (developer): --> 0 ok
| debconf (developer): starting /var/lib/dpkg/info/man-db.postinst triggered /usr/share/man
| debconf (developer): <-- VERSION 2.0
| debconf (developer): --> 0 2.0
| debconf (developer): <-- GET man-db/auto-update
| debconf (developer): --> 0 true
| Selecting previously deselected package grub-pc.
| (Reading database ... 54583 files and directories currently installed.)
| Unpacking grub-pc (from .../grub-pc_1.98+20100804-11_i386.deb) ...
| Processing triggers for man-db ...
| debconf (developer): frontend started
| debconf (developer): frontend running, package name is man-db
| debconf (developer): starting /var/lib/dpkg/info/man-db.config configure /usr/share/man
| debconf (developer): <-- VERSION 2.0
| debconf (developer): --> 0 2.0
| debconf (developer): <-- INPUT medium man-db/install-setuid
| debconf (developer): --> 30 question skipped
| debconf (developer): <-- GO 
| debconf (developer): --> 0 ok
| debconf (developer): starting /var/lib/dpkg/info/man-db.postinst triggered /usr/share/man
| debconf (developer): <-- VERSION 2.0
| debconf (developer): --> 0 2.0
| debconf (developer): <-- GET man-db/auto-update
| debconf (developer): --> 0 true
| Setting up grub-pc (1.98+20100804-11) ...
| Installing new version of config file /etc/grub.d/05_debian_theme ...
| debconf (developer): frontend started
| debconf (developer): frontend running, package name is grub-pc
| debconf (developer): starting /var/lib/dpkg/info/grub-pc.config configure 1.98+20100804-10
| debconf (developer): <-- SET grub2/linux_cmdline 
| debconf (developer): --> 0 value set
| debconf (developer): <-- SET grub2/linux_cmdline_default quiet
| debconf (developer): --> 0 value set
| debconf (developer): <-- INPUT high grub2/linux_cmdline
| debconf (developer): --> 30 question skipped
| debconf (developer): <-- INPUT medium grub2/linux_cmdline_default
| debconf (developer): --> 30 question skipped
| debconf (developer): <-- GO 
| debconf (developer): --> 0 ok
| debconf (developer): starting /var/lib/dpkg/info/grub-pc.postinst configure 1.98+20100804-10
| debconf (developer): <-- GET grub2/linux_cmdline
| debconf (developer): --> 0 
| debconf (developer): <-- GET grub2/linux_cmdline_default
| debconf (developer): --> 0 quiet
| debconf (developer): <-- X_LOADTEMPLATEFILE /var/lib/dpkg/info/ucf.templates ucf
| debconf (developer): --> 0
| Replacing config file /etc/default/grub with new version
| debconf (developer): <-- GET grub-pc/install_devices
| debconf (developer): --> 0 
| debconf (developer): <-- SUBST grub-pc/disk_description DEVICE /dev/sda
| debconf (developer): --> 0
| debconf (developer): <-- SUBST grub-pc/disk_description SIZE 6448
| debconf (developer): --> 0
| debconf (developer): <-- SUBST grub-pc/disk_description MODEL WDC_WD64AA
| debconf (developer): --> 0
| debconf (developer): <-- METAGET grub-pc/disk_description description
| debconf (developer): --> 0 /dev/sda (6448 MB, WDC_WD64AA)
| debconf (developer): <-- SUBST grub-pc/partition_description DEVICE /dev/sda1
| debconf (developer): --> 0
| debconf (developer): <-- SUBST grub-pc/partition_description SIZE 254
| debconf (developer): --> 0
| debconf (developer): <-- SUBST grub-pc/partition_description PATH /boot
| debconf (developer): --> 0
| debconf (developer): <-- METAGET grub-pc/partition_description description
| debconf (developer): --> 0 - /dev/sda1 (254 MB, /boot)
| debconf (developer): <-- SUBST grub-pc/disk_description DEVICE /dev/dm-0
| debconf (developer): --> 0
| debconf (developer): <-- SUBST grub-pc/disk_description SIZE 5867
| debconf (developer): --> 0
| debconf (developer): <-- SUBST grub-pc/disk_description MODEL copier-root
| debconf (developer): --> 0
| debconf (developer): <-- METAGET grub-pc/disk_description description
| debconf (developer): --> 0 /dev/dm-0 (5867 MB, copier-root)
| debconf (developer): <-- SUBST grub-pc/install_devices RAW_CHOICES /dev/disk/by-id/ata-WDC_WD64AA_WD-WM6531015187, /dev/disk/by-id/ata-WDC_WD64AA_WD-WM6531015187-part1, /dev/disk/by-id/dm-name-copier-root
| debconf (developer): --> 0
| debconf (developer): <-- SUBST grub-pc/install_devices CHOICES /dev/sda (6448 MB\, WDC_WD64AA), - /dev/sda1 (254 MB\, /boot), /dev/dm-0 (5867 MB\, copier-root)
| debconf (developer): --> 0
| debconf (developer): <-- INPUT high grub-pc/install_devices
| debconf (developer): --> 30 question skipped
| debconf (developer): <-- GO 
| debconf (developer): --> 0 ok
| debconf (developer): <-- GET grub-pc/install_devices
| debconf (developer): --> 0 
| debconf (developer): <-- GET grub-pc/install_devices
| debconf (developer): --> 0 
| debconf (developer): <-- GET grub-pc/install_devices_empty
| debconf (developer): --> 0 true
| debconf (developer): <-- INPUT critical grub-pc/install_devices_empty
| debconf (developer): --> 30 question skipped
| Generating grub.cfg ...
| Found linux image: /boot/vmlinuz-2.6.32-5-686
| Found initrd image: /boot/initrd.img-2.6.32-5-686
| Found linux image: /boot/vmlinuz-2.6.30-2-686
| Found initrd image: /boot/initrd.img-2.6.30-2-686
| Found linux image: /boot/vmlinuz-2.6.26-2-686
| Found initrd image: /boot/initrd.img-2.6.26-2-686
| done

Hmm, no debconf prompt, so no visible trouble.  But with
dpkg-reconfigure the problem is present.

| # dpkg-reconfigure grub-pc
| debconf (developer): starting /var/lib/dpkg/info/grub-pc.prerm upgrade 1.98+20100804-11
| debconf (developer): starting /var/lib/dpkg/info/grub-pc.config reconfigure 1.98+20100804-11
| debconf (developer): <-- SET grub2/linux_cmdline 
| debconf (developer): --> 0 value set
| debconf (developer): <-- SET grub2/linux_cmdline_default quiet
| debconf (developer): --> 0 value set
| debconf (developer): <-- INPUT high grub2/linux_cmdline
| debconf (developer): --> 0 question will be asked
| debconf (developer): <-- INPUT medium grub2/linux_cmdline_default
| debconf (developer): --> 0 question will be asked
| debconf (developer): <-- GO 
| debconf (developer): --> 0 ok
| debconf (developer): starting /var/lib/dpkg/info/grub-pc.postinst configure 1.98+20100804-11
| debconf (developer): <-- GET grub2/linux_cmdline
| debconf (developer): --> 0 
| debconf (developer): <-- GET grub2/linux_cmdline_default
| debconf (developer): --> 0 quiet
| debconf (developer): <-- X_LOADTEMPLATEFILE /var/lib/dpkg/info/ucf.templates ucf
| debconf (developer): --> 0
| debconf (developer): <-- GET grub-pc/install_devices
| debconf (developer): --> 0 
| debconf (developer): <-- SUBST grub-pc/disk_description DEVICE /dev/sda
| debconf (developer): --> 0
| debconf (developer): <-- SUBST grub-pc/disk_description SIZE 6448
| debconf (developer): --> 0
| debconf (developer): <-- SUBST grub-pc/disk_description MODEL WDC_WD64AA
| debconf (developer): --> 0
| debconf (developer): <-- METAGET grub-pc/disk_description description
| debconf (developer): --> 0 /dev/sda (6448 MB, WDC_WD64AA)
| debconf (developer): <-- SUBST grub-pc/partition_description DEVICE /dev/sda1
| debconf (developer): --> 0
| debconf (developer): <-- SUBST grub-pc/partition_description SIZE 254
| debconf (developer): --> 0
| debconf (developer): <-- SUBST grub-pc/partition_description PATH /boot
| debconf (developer): --> 0
| debconf (developer): <-- METAGET grub-pc/partition_description description
| debconf (developer): --> 0 - /dev/sda1 (254 MB, /boot)
| debconf (developer): <-- SUBST grub-pc/disk_description DEVICE /dev/dm-0
| debconf (developer): --> 0
| debconf (developer): <-- SUBST grub-pc/disk_description SIZE 5867
| debconf (developer): --> 0
| debconf (developer): <-- SUBST grub-pc/disk_description MODEL copier-root
| debconf (developer): --> 0
| debconf (developer): <-- METAGET grub-pc/disk_description description
| debconf (developer): --> 0 /dev/dm-0 (5867 MB, copier-root)
| debconf (developer): <-- SUBST grub-pc/install_devices RAW_CHOICES /dev/disk/by-id/ata-WDC_WD64AA_WD-WM6531015187, /dev/disk/by-id/ata-WDC_WD64AA_WD-WM6531015187-part1, /dev/disk/by-id/dm-name-copier-root
| debconf (developer): --> 0
| debconf (developer): <-- SUBST grub-pc/install_devices CHOICES /dev/sda (6448 MB\, WDC_WD64AA), - /dev/sda1 (254 MB\, /boot), /dev/dm-0 (5867 MB\, copier-root)
| debconf (developer): --> 0
| debconf (developer): <-- INPUT high grub-pc/install_devices
| debconf (developer): --> 0 question will be asked
| debconf (developer): <-- GO 
| debconf (developer): --> 0 ok
| debconf (developer): <-- GET grub-pc/install_devices
| debconf (developer): --> 0 
| debconf (developer): <-- GET grub-pc/install_devices
| debconf (developer): --> 0 
| debconf (developer): <-- GET grub-pc/install_devices_empty
| debconf (developer): --> 0 true
| debconf (developer): <-- INPUT critical grub-pc/install_devices_empty
| debconf (developer): --> 0 question will be asked
| debconf (developer): <-- GO 
| debconf (developer): --> 0 ok
| debconf (developer): <-- GET grub-pc/install_devices_empty
| debconf (developer): --> 0 true
| Generating grub.cfg ...
| Found linux image: /boot/vmlinuz-2.6.32-5-686
| Found initrd image: /boot/initrd.img-2.6.32-5-686
| Found linux image: /boot/vmlinuz-2.6.30-2-686
| Found initrd image: /boot/initrd.img-2.6.30-2-686
| Found linux image: /boot/vmlinuz-2.6.26-2-686
| Found initrd image: /boot/initrd.img-2.6.26-2-686
| done

[...]
> The good news is that this only affects frontends where debconf needs to
> compare strings in order to figure out which choice you meant.  I
> believe that this means only the editor frontend has a problem.

Good to know.

[...]
>>  - Infinite loop with no escape!  What if I just want to use the old
>>    version of grub-pc, which worked?  I tried exiting vi with :cq but
>>    that leaves me in the same loop.
>
> The escape is to answer "yes" to the "Continue without installing GRUB?"
> prompt.  It may not be *desirable*, but given the existence of this bug
> in the first place ...

Right.  What I was hoping for is a way to make postinst exit with
nonzero status so the package manager knows there was trouble, but
that is neither here nor there.

Thanks.





More information about the Pkg-grub-devel mailing list