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

Re: Looping in stage-1



Nov 16 23:37:11 anna[3244]: DEBUG: resolver (anna): accept cdebconf-udeb, already installed
...
Nov 16 23:37:11 debconf: --> SUBST anna/progress_step_retr PACKAGE cdebconf-udeb
Nov 16 23:37:11 debconf: Adding [PACKAGE] -> [cdebconf-udeb]
Nov 16 23:37:11 debconf: <-- 0
Nov 16 23:37:11 debconf: --> SUBST anna/progress_step_inst PACKAGE cdebconf-udeb
Nov 16 23:37:11 debconf: Adding [PACKAGE] -> [cdebconf-udeb]
Nov 16 23:37:11 debconf: <-- 0
Nov 16 23:37:11 debconf: --> PROGRESS INFO anna/progress_step_retr
...
Nov 16 23:37:11 debconf: --> X_LOADTEMPLATEFILE /var/lib/dpkg/info/cdebconf-udeb.templates

Very strange, it should not be downloading and installing cdebconf-udeb,
which is of course built into the d-i initrd, but apparently it does
anyway. It does the same thing for anna itself and for other packages
in the initrd. I don't see this behavior locally.

After this when we get back to the main menu, it does this:

Nov 16 23:37:21 debconf: --> SUBST debian-installer/main-menu MENU Choose language, Select a keyboard layout, Detect network hardware, Configure the network, Choose a mirror of the Debian archive, Download instal
Nov 16 23:37:21 debconf: Adding [MENU] -> [Choose language, Select a keyboard layout, Detect network hardware, Configure the network, Choose a mirror of the Debian archive, Download installer components]
Nov 16 23:37:21 debconf: <-- 0
Nov 16 23:37:21 debconf: --> INPUT medium debian-installer/main-menu
Nov 16 23:37:21 debconf: <-- 30 question skipped
Nov 16 23:37:21 debconf: --> GO
Nov 16 23:37:21 debconf: <-- 0 ok
Nov 16 23:37:21 debconf: --> GET debian-installer/main-menu
Nov 16 23:37:21 debconf: <-- 0 Download installer components

Now, the main-menu code is this:

        debconf_subst(debconf, MAIN_MENU, "MENU", menu);
        if (menudefault) {
                menu_entry(debconf, menudefault, buf, sizeof (buf));
                debconf_set(debconf, MAIN_MENU, buf);
        }
        debconf_input(debconf, MENU_PRIORITY, MAIN_MENU);
        debconf_go(debconf);
        debconf_get(debconf, MAIN_MENU);
        s = strdup(debconf->value);

So apparently menudefault is not set or it would choose something else.
menudefault is set by di_system_package(), and it has only one case where
it returns NULL, which is if all the available menu items are marked
as alredy having been run, or if the input list has no menu items on it.

After the first anna run which for some reason reinstalls everything
that's already on the initrd, further anna runs do nothing at all,
anna knows then that everything is already installed.

So we're left with two unexplained strange behaviors in two different
programs. The common element is that both involve the udpkg status file,
and the libd-i code that reads it. If that code gets confused and
somehow the first anna run gets a list with nothing in it, and main-menu
gets a list with all the menu items marked as run (or an empty list),
that would explain both behaviors.

I wonder what the /var/lib/dpkg/status file from the installer looks
like?

Of course on top of this there's still the original d-i crash and
restart:

Nov 16 23:37:09 debconf: --> METAGET debian-installer/choose-mirror/title Description-en_GB.UTF-8
Nov 16 23:37:09 debconf: <-- 0 Choose a mirror of the Debian archive
Nov 16 23:37:09 debconf: --> SET debian-installer/main-menu Choose a mirror of the Debian archive
Nov 16 23:37:09 debconf: <-- 0 value set
Nov 16 23:37:09 debconf: --> INPUT medium debian-installer/main-menu
Nov 16 23:37:09 debconf: <-- 30 question skipped
Nov 16 23:37:09 debconf: --> GO
Nov 16 23:37:09 init: ^MProcess '/sbin/debian-installer' (pid 1218) exited.  Scheduling it for restart.

That's the first thing to go wrong, before all the other crazy stuff,
and it seems to me that it must be related or even the cause of it. It's
probably not cooincidental that this crash is near the same block of code
that I pasted above. Apprently in between the GO and the GET, although I
can't imagine how it could crash there.

I think the next step would be running main-menu in gdb as it crashes
and seeing what the actual problem is. If you're familiar with gdb I can
try to prepare an image that can do that.

-- 
see shy jo

Attachment: signature.asc
Description: Digital signature


Reply to: