Subject: None
To: None <jonathan@DSG.Stanford.EDU>
From: maximum entropy <entropy@zippy.bernstein.com>
List: current-users
Date: 11/07/1997 00:01:51
>From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
>
>maximum entropy writes:
>>Make sure the kernel and *all* of userland on mona (especially /bin
>>and /sbin which are not on the shared /usr filesystem) are up to date.
>>Reboot mona and all should be well.
>
>>This isn't really a kernel problem, it's caused by out-of-date
>>userland binaries but up-to-date shared libs.
>
>The glass is half full, or the glass is half empty.  It's still the same glass.
>
>The problem is that the accidentally-updated /usr makes syscalls which
>are not implemented by the 1.2G kernel.  Which you call out-of-date
>and which up-to-date is semantics. Simon didn't realize a `make build'
>on one machine would also clobber the NFS-mounted /usr on the second
>machine.
>
>The simplest way to rescue Mona is to netboot a kernel that *does*
>have the new xxx13 syscalls (from the good machine) on Mona. Then
>mount Mona's local root as root.  The updated /usr will then work,
>because the net-booted-mounted kernel has the 1.3 syscalls.  Then
>proceed to do an upgrade on the affected machine. 

You're correct that old kernels are not happy with new binaries, and
that NFS-mounted userland makes keeping everything in synch more
complicated.  However this is *not* the problem Simon is experiencing.
The problem he is having can show up *even with an up to date kernel
installed and running*.  In fact, I actually did experience exactly
this problem, on two different architectures, while running "make
build", with a 1.3_Alpha kernel running.

This isn't a matter of "semantics".  This specific problem is with
ld.so and *not* the kernel.  It seems to be more or less the same as
the problem that forced the decision to back out libc.13, reduced to
the window of time while libc and userland are out of synch.

>From: Simon Burge <simonb@telstra.com.au>
>	telnetd: undefined symbol: '__stat13' 12

[54]entropy@ubik:/usr/libexec $ strings ld.so | grep 'undefined symbol'
%s: undefined symbol: '%s' %x

Please stop correcting me when I'm right :-)

Cheers,
entropy

--
entropy -- it's not just a good idea, it's the second law.