Subject: Netscape 4.51 Solaris binary can't DNS/NIS resolve hosts under 1.3.3
To: None <port-sparc@netbsd.org>
From: Greg Earle <earle@isolar.Tujunga.CA.US>
List: port-sparc
Date: 04/09/1999 01:50:50
Anyone tried the Netscape 4.51 Solaris 2.5.1 128-bit binary under stock 1.3.3?

It seems to work fine so far, as long as I only go to hosts in the hosts file!
(i.e., about 2 machines that actually run Web servers, heh)

All other host lookups fail ... I have this in /emul/svr4/etc/nsswitch.conf:

netbsd4me:1:63 % egrep hosts /emul/svr4/etc/nsswitch.conf 
hosts:      dns nis files

I get stuff like this from the "(dns helper) (netscape)" app that Netscape
forks at startup:

[...]
  2908 netscape NAMI  "/emul/svr4"
  2908 netscape NAMI  "/emul/svr4/usr/lib/nss_dns.so.1"
  2908 netscape RET   open 6
  2908 netscape CALL  fstat(0x6,0xefffae2c)
  2908 netscape RET   fstat 0
[...]
  2908 netscape CALL  stat(0x110ab538,0xefffa458)
  2908 netscape NAMI  "/emul/svr4/etc/resolv.conf"
  2908 netscape NAMI  "/emul/svr4"
  2908 netscape NAMI  "/emul/svr4/etc/resolv.conf"
  2908 netscape RET   stat 0
  2908 netscape CALL  getpid
  2908 netscape RET   getpid 2908/0xb5c
  2908 netscape CALL  open(0xe33b18,0x2,0)
  2908 netscape NAMI  "/emul/svr4/dev/udp"
  2908 netscape NAMI  "/emul/svr4"
  2908 netscape NAMI  "/emul/svr4/dev/udp"
  2908 netscape RET   open 6
[...]
  2908 netscape CALL  getmsg(0x6,0xefff9ff4,0xefff9f40,0xefff9f4c)
  2908 netscape RET   getmsg 0
  2908 netscape CALL  putmsg(0x6,0xefffa174,0xefffa0d8,0)
  2908 netscape RET   putmsg -1 errno 89 Unknown error: 89
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  2908 netscape CALL  close(0x6)
  2908 netscape RET   close 0

and then

  2908 netscape CALL  open(0xe33b18,0x2,0)
  2908 netscape NAMI  "/emul/svr4/dev/udp"
  2908 netscape NAMI  "/emul/svr4"
  2908 netscape NAMI  "/emul/svr4/dev/udp"
  2908 netscape RET   open 6
[...]
  2908 netscape CALL  ioctl(0x6,_IO('S',0xa,0),0xefff9fcc)
  2908 netscape RET   ioctl -1 errno 22 Invalid argument
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  2908 netscape CALL  close(0x6)
  2908 netscape RET   close 0

This iterates a couple of times over (the failed putmsg() and the failed ioctl)
and then it gives up and moves on to NIS:

  2908 netscape CALL  open(0x1002a684,0,0x1002aaf0)
  2908 netscape NAMI  "/emul/svr4/usr/lib/nss_nis.so.1"
  2908 netscape NAMI  "/emul/svr4"
  2908 netscape NAMI  "/emul/svr4/usr/lib/nss_nis.so.1"
  2908 netscape RET   open 6
  2908 netscape CALL  fstat(0x6,0xefffae2c)
  2908 netscape RET   fstat 0
[...]
  2908 netscape CALL  open(0xe33bd8,0x2,0)
  2908 netscape NAMI  "/emul/svr4/dev/ticotsord"
  2908 netscape NAMI  "/emul/svr4"
  2908 netscape NAMI  "/emul/svr4/dev/ticotsord"
  2908 netscape RET   open 6
[...]
  2908 netscape CALL  ioctl(0x6,_IO('S',0x1,0),0xefffa854)
  2908 netscape RET   ioctl 0
  2908 netscape CALL  putmsg(0x6,0xefffa8bc,0,0)
  2908 netscape NAMI  "tbsd4me.rpc"
  2908 netscape RET   putmsg -1 errno 2 No such file or directory
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[...]
  2908 netscape CALL  close(0x6)
  2908 netscape RET   close 0

(Note that "tbsd4me.rpc" contains part of - but not all of - the hostname,
 which is "netbsd4me" [no comments on lack of originality, please  :-P].)

and at this point it moves on to nss_files.so and finds things in /etc/hosts.

I have pretty much every library and /etc file from Solaris 2.5.1 that I can
think of - other than /emul/svr4/etc/.name_service_door and obscure things
like /emul/svr4/var/yp/binding/<NIS domainname>/cache_binding - so I have
no idea what the problem is.

One possibility: a couple of the libraries aren't stock 2.5.1; we Y2K-ized
our remaining 2.5.1 systems and in the process, some of the /usr/lib .so's
that are used in SVR4 emulation got updated.  Could that be the problem here?
Or is it something more generic?  (The "Unknown error 89" from putmsg() smells
fishy)  Then again, the nss_nis.so library appears to be unpatched ...

	- Greg

P.S. In case it helps:

netbsd4me:1:67 % ls -lt /emul/svr4/usr/lib/
total 5113
-rwxr-xr-x  1 bin   bin      65700 Mar 26 01:30 libresolv.so.2*
-rwxr-xr-x  1 bin   bin       9336 Mar 26 01:30 nss_dns.so.1*
-rwxr-xr-x  1 bin   bin     137160 May  2  1996 ld.so.1*
-rwxr-xr-x  1 bin   bin      24576 May  2  1996 ld.so*
-r-xr-xr-x  1 bin   bin       1224 May  2  1996 lddstub*
-rwxr-xr-x  1 bin   bin      22564 May  2  1996 libvolmgt.so.1*
-rwxr-xr-x  1 bin   bin      11456 May  2  1996 libposix4.so.1*
-rwxr-xr-x  1 bin   bin      24404 May  2  1996 nss_nis.so.1*
-rwxr-xr-x  1 bin   bin      21144 May  2  1996 nss_files.so.1*
-rwxr-xr-x  1 bin   bin       9312 May  2  1996 straddr.so.2*
-rwxr-xr-x  1 bin   bin      28788 May  2  1996 librpcsvc.so.1*
-rwxr-xr-x  1 bin   bin      68780 May  2  1996 libsocket.so.1*
-rwxr-xr-x  1 bin   bin     566700 May  2  1996 libnsl.so.1*
-rwxr-xr-x  1 bin   bin      27424 May  2  1996 libkvm.so.1*
-rwxr-xr-x  1 bin   bin     116584 May  2  1996 libadm.so.1*
-rwxr-xr-x  1 bin   bin      15720 May  2  1996 libmp.so.1*
-rwxr-xr-x  1 bin   bin     662764 May  2  1996 libc.so.1*
-rwxr-xr-x  1 bin   bin      15720 May  2  1996 libintl.so.1*
-rwxr-xr-x  1 bin   bin      39932 May  2  1996 libw.so.1*
-rwxr-xr-x  1 bin   bin      66736 May  2  1996 libelf.so.1*
lrwxrwxrwx  1 root  staff       14 Mar 26  1996 straddr.so@ -> ./straddr.so.2
-rwxr-xr-x  1 bin   bin      86452 Feb 28  1995 libthread.so.1*
-rwxrwxr-x  1 bin   bin    1904952 Jul 18  1994 libXm.so.3*
-rwxr-xr-x  1 bin   bin     114764 Jul 18  1994 libm.so.1*
-rwxr-xr-x  1 bin   bin       3492 Jul 15  1994 libdl.so.1*
-rwxr-xr-x  1 root  bin     515216 Jul  8  1994 libX11.so.4*
-rwxr-xr-x  1 root  bin     111228 Jun 23  1994 libXmu.so.4*
-rwxr-xr-x  1 root  bin     330956 Jun 23  1994 libXt.so.4*
-rw-rw-r--  1 root  bin      40864 Jun 23  1994 libXi.so.5
-rwxr-xr-x  1 root  bin      66764 Jun 23  1994 libXext.so.0*

P.P.S. At least Netscape doesn't fall right over like Photoshop 3.0:

netbsd4me:1:74 % photoshop
expr: syntax error
Illegal instruction - core dumped
Bad system call - core dumped

      (Those are from "CALL  #164 (unimplemented lwp_self)")