[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#987368: Installer fails at first menu "Choose language"



Hi James,

[cc-ing submitter back, and youpi for the final comment]

James Addison <jay@jp-hosting.net> (2021-05-28):
> Does d-i tend to use udpkg for bootstrapping?
> 
> If so, I think https://salsa.debian.org/installer-team/udpkg/-/blob/master/status.c#L390
> could be a potential section of code to investigate further.
> 
> It doesn't look like full-fat dpkg performs these kind of renames on
> the status file.

Since that happens quite early, my first instinct was to look under the
main-menu source package, which indeed contains some references to udpkg:

    kibi@tokyo:~/debian-installer/packages/main-menu$ git grep -i udpkg
    debian/changelog:    - add "exec" to the udpkg calls, ash isn't able to optimize the fork
    debian/changelog:    - Don't run udpkg --configure on virtual packages
    main-menu.c:    /* Tell udpkg to shut up. */
    main-menu.c:    setenv("UDPKG_QUIET", "y", 1);
    main-menu.c:    if (asprintf(&configcommand, "exec udpkg --configure --force-configure %s", p->p.package) == -1)

If you want to read it online:
  https://salsa.debian.org/installer-team/main-menu/-/blob/master/main-menu.c#L835

main-menu is also the one getting the error according to Frédéric's
syslog excerpt, so that would be somewhat consistent. I'm quoting it
again before some comments:

    Apr 22 12:11:57 reopen-console: Looking at console hvc0 from /proc/consoles
    Apr 22 12:11:57 reopen-console:    Adding hvc0 to possible consoles list
    Apr 22 12:11:57 reopen-console:    hvc0 is preferred
    Apr 22 12:11:57 reopen-console:    Adding tty0 to possible consoles list
    Apr 22 12:11:57 reopen-console: Adding inittab entry for hvc0
    Apr 22 12:11:57 reopen-console: Adding inittab entry for tty0
    Apr 22 12:11:57 reopen-console: Restarting init to start d-i on the console(s) we found
    Apr 22 12:11:57 init: reloading /etc/inittab
    Apr 22 12:11:57 init: starting pid 239, tty '/dev/tty4': '/usr/bin/tail -f /var/log/syslog'
    Apr 22 12:11:57 init: starting pid 240, tty '/dev/hvc0': '/sbin/debian-installer'
    Apr 22 12:11:57 init: starting pid 241, tty '/dev/tty0': '/sbin/debian-installer
    Apr 22 12:11:57 debconf: Setting debconf/language to en
    Apr 22 12:11:57 main-menu[272]: INFO: Falling back to the package description for brltty-udeb
    Apr 22 12:11:57 debconf: Setting debconf/language to en
    Apr 22 12:11:57 main-menu[272]: INFO: Menu item 'localechooser' selected
    Apr 22 12:11:57 main-menu[278]: INFO: Falling back to the package description for brltty-udeb
    Apr 22 12:11:57 main-menu[278]: INFO: Menu item 'localechooser' selected
    Apr 22 12:11:57 main-menu[278]: /var/lib/dpkg/status: No such file or directory
    Apr 22 12:11:57 main-menu[272]: /var/lib/dpkg/status: No such file or directory
    Apr 22 12:11:57 main-menu[272]: /var/lib/dpkg/status: No such file or directory

Looking at that log, one sees two PIDs for main-menu (272 and 278),
which could explain a very nice race condition: udpkg racing, one of
them making the status file disappear from under the feet of the other
one?

See also two /sbin/debian-installer processes getting started beforehand
(one on /dev/hvc0, one on /dev/tty).

It looks to me this is a clear problem on the debian-installer side (how
it deals with multiple consoles, similar to #940028 as you mentioned
initially), rather than some possible issues with emulation?


Cheers,
-- 
Cyril Brulebois (kibi@debian.org)            <https://debamax.com/>
D-I release manager -- Release team member -- Freelance Consultant

Attachment: signature.asc
Description: PGP signature


Reply to: