Subject: Re: __stat13 undefined
To: None <entropy@zippy.bernstein.com>
From: None <Havard.Eidnes@runit.sintef.no>
List: current-users
Date: 11/07/1997 10:23:38
Simon Burge <simonb@telstra.com.au> said:

>The setup I've got is two machines, each with root and /var on a local
>disk, and /usr mounted of a file server.  Both of these machines were
>running -current of about August 26th.  I've recently run a "make build"
>with October 29 sources on one of the machines (vlad), and now the other
>machine (mona) is a little knackered.  Trying to telnet to mona gives
>the following:
>
>	balrog:~ 3> telnet mona
>	Trying 172.73.42.230...
>	Connected to mona.supp.cpr.itg.telecom.com.au.
>	Escape character is '^]'.
>	telnetd: undefined symbol: '__stat13' 12
>	Connection closed by foreign host.

Jonathan's comments elided, <entropy@zippy.bernstein.com> said:

> 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.

I don't think so.  The error message may come from ld.so, but
I'll claim that it's not really ld.so's fault that this happens,
it's most likely working "as advertised".

From=20the initial description it sounds like new libraries and new
/usr executables were installed on the common NFS /usr directory
accessible to the two machines, and that the NFS client wasn't
rebooted (at least not at first).

First, The NFS client complains because its /var/run/ld.so.hints
hasn't been updated by ldconfig after the installation of the new
libraries and executables in /usr.  The new libc.so.12.20
contains __stat13.  If one could get into the machine one could
try to run 'ldconfig -r' to check the current hints just to
verify this claim.  (This can also be done single-user after
mounting /var.)

Second, I suspect that once you *do* run ldconfig on 'mona' to
update ld.so.hints, you will have the problem that the kernel is
too old.  I beleive that will be the case if it's of Aug 26
vintage, among other things the Aug 26 kernel will most likely
not have support for the __stat13 system call, which will create
the 'illegal system call' core dumps mentioned here before.

This should then be remedied by installing a new kernel on
'mona', and once 'mona' is rebooted with the new kernel, ldconfig
will be run to fix the first problem above.  I think you can
install a new kernel by using a 1.3_ALPHA INSTALL floppy by
dropping to the shell and doing it from within that environment.


I beleive this is yet another instance of breaking the rule that
you should always update (all) your kernels before installing a
new user-land.


- Havard