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

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"


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

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):


      for rdeb in ${required}; do
         in_target dpkg --force-depends --unpack $(debfor $rdeb)
         sleep 3; #--throttle to give time to scan results.


      for bdeb in ${base}; do
         in_target dpkg --force-auto-select --force-overwrite --force-confold
--skip-same-version --install $(debfor $bdeb)
         sleep 3    #--throttle to give time to scan results.
     in_target dpkg --configure --pending --force-config-any --force-depends
#--walk through

That's all for now...on to XBoot and finishing my configuration....


----- End forwarded message -----

/       Ben Collins    --    Debian GNU/Linux    --    WatchGuard.com      \
`          bcollins@debian.org   --   Ben.Collins@watchguard.com           '

Reply to: