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

Bug#165358: Also caused segfaults in su and ssh



On Fri, Oct 18, 2002 at 12:09:14PM -0700, Jeff Bailey wrote:
> On Fri, Oct 18, 2002 at 01:37:51PM -0500, Zed Pobre wrote:
> 
> > Attempting to su to root (even from root) with 2.3.1-1 on one of my
> > test systems caused an immediate segfault.  Also, attempting to ssh
> 
> The ssh problem is probably the known bug that anything using NSS
> needs to be restarted after the libc upgrade.  The next package will
> warn about that.
> 
> I've been using test versions of the 2.3 package for almost a month
> now and haven't seen any su segfaults.  Please investigate that
> further.

    The problem was that root uses zsh-static as a shell, and static
libraries got broken by this (a bug has already been filed on
zsh-static about this).  Should it be the responsibility of all
packages containing statically compiled binaries to declare an
explicit dependency on the version of libc used to compile them?  This
*really badly damaged* a few systems using static binaries out here
when I forgot that I'd manually moved their libcs out of stable and
into testing some time back and never put them on hold for a mass
upgrade of stable/security packages...  (yeah, yeah, my fault for not
paying attention, but this wasn't the kind of thing I expected to get
hit by).

    I also have to add that I find this to be completely contradictory
behaviour to how I expect static binaries to behave.  I compile things
statically when I want them to work properly no matter what version of
various libraries are on the system.  If they're not going to work
correctly without a particular version of libc6, might as well stop
providing libc.a and force everything to acknowledge the fact that
they're tied to the system libc.  

    Okay, the above is inflammatory, and I've debated deleting it with
myself for a little while, but I'm going to let it stand, because some
upgrade path is going to have to be provided by the next release --
and certainly neither this libc6, nor anything compiled against it,
should go into testing until some mechanism is found to prevent
someone running woody with a statically linked shell from apt-get
installing something compiled against the new libc6 and finding
himself unable to log in afterwards to fix all the things that
suddenly broke.  Possibly this could be handled by putting new
versions of busybox-static, sash, zsh-static, kiss, and e2fsck-static
(do we ship any other statically linked admin tools?) into woody that
conflict the newer version of libc6, and adding to policy that future
packages that ship statically compiled binaries have to conflict with
any libc6 with a larger minor number than the one used to compile
them, but I truly think there should be a better answer.  Is there no
way to get the code of whatever is breaking to be included in a
statically compiled binary, so this doesn't happen again in the
future?


> learning from failures is nice in theory...
> but in practice, it sucks :)
>  - Wolfgang Jaehrling

    Indeed.

-- 
Zed Pobre <zed@debian.org> a.k.a. Zed Pobre <zed@resonant.org>
PGP key and fingerprint available on finger; encrypted mail welcomed.

Attachment: pgpfEhS9TzK4A.pgp
Description: PGP signature


Reply to: