Bug#131709: [rjohnson@dogstar-interactive.com: Re: Bug#131709: chroot segfaults]
----- Forwarded message from Rich Johnson <rjohnson@dogstar-interactive.com> -----
X-Virus-Scanner: McAfee Virus Engine
X-Spam-Status: Scanner Called
X-Sent: 2 Feb 2002 15:14:43 GMT
From: Rich Johnson <rjohnson@dogstar-interactive.com>
To: Ben Collins <bcollins@debian.org>
Subject: Re: Bug#131709: chroot segfaults
X-Spam-Status: No, hits=0.0 required=6.5 tests= version=2.1
Rich Johnson wrote:
> I poked around a bit more. I've distilled some of the results below/
>
> The machine state is the result of:
> 1) booted from floppies (mac_hfs_boot, root.bin)
> 2) downloaded kernel & drivers from ftp.us.debian.org
> 3) downloaded base .debs from ftp.us.debian.org
> 4) extracted base .debs from ftp.us.debian.org
> 5) installation of base .debs failed with "Failure trying to run : chroot
> /target dpkg"
>
Ben--
I did still more digging--i.e. lots of reboots and manual invocations of <debootstrap >.
Here's a report to pass on to the appropriate folks--perhaps it's a <dpkg> or
<debootstrap> issue?
a) <chroot> runs fine intslling the first few <dpkg>'s
b) <chroot> start's failing with <repeat 5 ....dpkg .... $(debfor $required)>
c) the system would also hang--such that <ctl-C> does't work; sometimes even
<ctl-alt-del> didn't work.
d) fsck after a forced reboot invariably showed several cross-linked files--almost
always in /usr/share/zoneinfo.
This indicates that the 3000 or so files indicated by "$(debfor required)" overstresses
<dpkg>. Hanging also indicates falling into an infinite loop somewhere; perhaps a
corrupted linked list or hash table?
I was able to install all the packages by rewriting install_subs() to "unwind" the
installation such that <dpkg> was invoked on a _single_ packages at a time. Experience
with cross-linked files also caused me to defensively put a <sync> after every <dpkg>.
The modified script ran to completion. This supports the hypothesis of an overstressed
<dpkg>.
I replaced the two <repeat 5> lines with loops. Running each loop once left nothing
more to do. The <repeat> seemed superfluous, but I may be missing some subtleties .
Here's the modified fragment (sorry, no diff's yet--I'm still configuring the system):
<...snip...>
for rdeb in ${required}; do
in_target dpkg --force-depends --unpack $(debfor $rdeb)
sync
sleep 3; #--throttle to give time to scan results.
done
<...snip...>
for bdeb in ${base}; do
in_target dpkg --force-auto-select --force-overwrite --force-confold
--skip-same-version --install $(debfor $bdeb)
sync
sleep 3 #--throttle to give time to scan results.
done
in_target dpkg --configure --pending --force-config-any --force-depends
#--walk through
That's all for now...on to XBoot and finishing my configuration....
--rich
----- End forwarded message -----
--
.----------=======-=-======-=========-----------=====------------=-=-----.
/ Ben Collins -- Debian GNU/Linux -- WatchGuard.com \
` bcollins@debian.org -- Ben.Collins@watchguard.com '
`---=========------=======-------------=-=-----=-===-======-------=--=---'
Reply to: