# -*- text -*- LIST OF KNOWN BUGS IN AM-UTILS OR OPERATING SYSTEMS (1) mips-sgi-irix* [1A] known to have flaky NFS V.3 and TCP. Amd tends to hang or spin infinitely after a few hours or days of use. Users must install recommended patches from vendor. Patches help, but not all the time. Otherwise avoid using NFS V.3 and TCP on these systems, by setting /defaults opts:=vers=2,proto=udp [1B] yp_all() leaks a file descriptor. Eventually amd runs out of file descriptors and hangs. Am-utils circumvents this by using its own version of yp_all which uses udp and iterates over NIS maps. The latter isn't as reliable as yp_all() which uses TCP, but it is better than hanging. (I have some reports that older version of hpux-9, with older libc, also leak file descriptors.) (2) alpha-unknown-linux-gnu (RedHat Linux 4.2) hasmntopt(mnt, opt) can goes into an infinite loop if opt is any substring of mnt->mnt_opts. Redhat 5.0 does not have this libc bug. Here is an example program: #include #include main() { struct mntent mnt; char *cp; mnt.mnt_opts = "intr,rw,port=1023,timeo=8,foo=br,retrans=110,indirect,map=/usr/local/AMD/etc/amd.proj,boo"; cp = hasmntopt(&mnt, "ro"); printf("cp = %s\n", cp); exit(0); } It is possible that sufficiently newer version of libc for RH4.2 fix this problem. (3) mips-dec-ultrix4.3 Rainer Orth reports [3A] One needs the Kernel Config Files (UDTBIN430) subset installed to compile am-utils, otherwise essential header files (net/if.h, net/route.h, rpcsvc/mount.h, rpcsvc/yp_prot.h, rpcsvc/ypclnt.h, sys/proc.h) are missing. [3B] It's probably impossible to build am-utils with DEC C on Ultrix V4.3. This compiler is pseudo-ANSI only. Maybe the new ANSI C compiler in V4.3A and beyond will do. I successfully used gcc 2.8.1. [3C] You need to build against a recent libhesiod (I used 3.0.2) and libresolv/lib44bsd (I used BIND 4.9.5-P1). The resolver routines in libc seem to cause random memory corruption. It is necessary to specify LIBS=-l44bsd. lib44bsd is a helper library of libresolv used to supply functions like strdup which are missing on the host system. This isn't currently autoconfiscated. [3D] You need to configure with CONFIG_SHELL=/bin/sh5 /bin/sh5 buildall; /bin/sh cannot handle the shell functions used in buildall and is both buggy and slow. [3E] At least the gcc 2.7.0 fixincludes-mangled needs a forward declaration of struct utsname to avoid lots of gcc warnings: RCS file: RCS/utsname.h,v retrieving revision 1.1 diff -u -r1.1 utsname.h --- utsname.h 1995/06/19 13:07:01 1.1 +++ utsname.h 1998/01/27 12:34:26 @@ -59,6 +59,7 @@ #ifdef KERNEL #include "../h/limits.h" #else /* user mode */ +struct utsname; extern int uname _PARAMS((struct utsname *)); #endif #define __SYS_NMLN 32 (4) powerpc-ibm-aix4.2.1.0 [4A] "Randall S. Winchester" reports that for amd to start, you need to kill and restart rpc.mountd and possibly also make sure that nfsd is running. Normally these are not required. [4B] "Stefan Vogel" reports that if your amq executable dump core unexpectedly, then it may be a bug in gcc 2.7.x. Upgrade to gcc 2.8.x or use IBM's xlC compiler. [C] Do not link amd with libnsl. It is buggy and causes amd to core dump in strlen inside strdup inside svc_register(). (5) *-linux-gnu (RedHat Linux 5.1) There's a UDP file descriptor leak in libnsl in RedHat Linux 5.1. This library part of glibc2. Am-utils currently declares redhat 5.1 systems as having a "broken yp_all" and using an internal, slower, leak-free version. The leak is known to the glibc maintainers and a fix from them is due soon, but it is not yet in the glibc-2.0.7-19 RPM. (6) rs6000-ibm-aix4.1.x A bug in libc results in an amq binary that doesn't work; amq -v dumps core in xdr_string. There is no known fix (source code or vendor patch) at this time. (Please let amd-dev know if you know of a fix.) (7) *-aix4.3.2.0 The plock() function appears to fail with ENOMEM (Not Enough Space). When it fails, it consumes a lot of memory. This appears to be an AIX bug. I think plock returns an error code, but it partially succeeds to lock some pages, thus increasing memory consumption. When partial failures occur, it is possible that AIX fails to unlock those pages it did lock. Solution: turn off usage of plock on AIX. Put plock=no in your amd.conf file (which is the default if you do nothing). Erez.