BUGS revision 82794
1# -*- text -*-
2
3	    LIST OF KNOWN BUGS IN AM-UTILS OR OPERATING SYSTEMS
4
5
6(1) mips-sgi-irix*
7
8[1A] known to have flaky NFS V.3 and TCP.  Amd tends to hang or spin
9infinitely after a few hours or days of use.  Users must install recommended
10patches from vendor.  Patches help, but not all the time.  Otherwise avoid
11using NFS V.3 and TCP on these systems, by setting
12
13	/defaults opts:=vers=2,proto=udp
14
15[1B] yp_all() leaks a file descriptor.  Eventually amd runs out of file
16descriptors and hangs.  Am-utils circumvents this by using its own version
17of yp_all which uses udp and iterates over NIS maps.  The latter isn't as
18reliable as yp_all() which uses TCP, but it is better than hanging.
19
20(I have some reports that older version of hpux-9, with older libc, also
21leak file descriptors.)
22
23
24(2) alpha-unknown-linux-gnu (RedHat Linux 4.2)
25
26hasmntopt(mnt, opt) can goes into an infinite loop if opt is any substring
27of mnt->mnt_opts.  Redhat 5.0 does not have this libc bug.  Here is an
28example program:
29
30#include <stdio.h>
31#include <mntent.h>
32main()
33{
34  struct mntent mnt;
35  char *cp;
36  mnt.mnt_opts = "intr,rw,port=1023,timeo=8,foo=br,retrans=110,indirect,map=/usr/local/AMD/etc/amd.proj,boo";
37  cp = hasmntopt(&mnt, "ro");
38  printf("cp = %s\n", cp);
39  exit(0);
40}
41
42It is possible that sufficiently newer version of libc for RH4.2 fix this
43problem.
44
45
46(3) mips-dec-ultrix4.3
47
48Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> reports
49
50[3A] One needs the Kernel Config Files (UDTBIN430) subset installed to
51compile am-utils, otherwise essential header files (net/if.h, net/route.h,
52rpcsvc/mount.h, rpcsvc/yp_prot.h, rpcsvc/ypclnt.h, sys/proc.h) are
53missing.
54
55[3B] It's probably impossible to build am-utils with DEC C on Ultrix V4.3.
56This compiler is pseudo-ANSI only.  Maybe the new ANSI C compiler in V4.3A
57and beyond will do.  I successfully used gcc 2.8.1.
58
59[3C] You need to build against a recent libhesiod (I used 3.0.2) and
60libresolv/lib44bsd (I used BIND 4.9.5-P1).  The resolver routines in
61libc seem to cause random memory corruption.  It is necessary to specify
62LIBS=-l44bsd.  lib44bsd is a helper library of libresolv used to supply
63functions like strdup which are missing on the host system.  This isn't
64currently autoconfiscated.
65
66[3D] You need to configure with CONFIG_SHELL=/bin/sh5 /bin/sh5 buildall;
67/bin/sh cannot handle the shell functions used in buildall and is both
68buggy and slow.
69
70[3E] At least the gcc 2.7.0 fixincludes-mangled <sys/utsname.h> needs a
71forward declaration of struct utsname to avoid lots of gcc warnings:
72
73RCS file: RCS/utsname.h,v
74retrieving revision 1.1
75diff -u -r1.1 utsname.h
76--- utsname.h   1995/06/19 13:07:01     1.1
77+++ utsname.h   1998/01/27 12:34:26
78@@ -59,6 +59,7 @@
79 #ifdef KERNEL
80 #include "../h/limits.h"
81 #else /* user mode */
82+struct utsname;
83 extern int     uname _PARAMS((struct utsname *));
84 #endif
85 #define __SYS_NMLN 32
86
87
88(4) powerpc-ibm-aix4.2.1.0
89
90[4A] "Randall S. Winchester" <rsw@Glue.umd.edu> reports that for amd to
91start, you need to kill and restart rpc.mountd and possibly also make sure
92that nfsd is running.  Normally these are not required.
93
94[4B] "Stefan Vogel" <vogel@physik.unizh.ch> reports that if your amq
95executable dump core unexpectedly, then it may be a bug in gcc 2.7.x.
96Upgrade to gcc 2.8.x or use IBM's xlC compiler.
97
98[C] Do not link amd with libnsl.  It is buggy and causes amd to core dump
99in strlen inside strdup inside svc_register().
100
101
102(5) *-linux-gnu (RedHat Linux 5.1)
103
104There's a UDP file descriptor leak in libnsl in RedHat Linux 5.1.  This
105library part of glibc2.  Am-utils currently declares redhat 5.1 systems as
106having a "broken yp_all" and using an internal, slower, leak-free version.
107The leak is known to the glibc maintainers and a fix from them is due soon,
108but it is not yet in the glibc-2.0.7-19 RPM.
109
110
111(6) rs6000-ibm-aix4.1.x
112
113A bug in libc results in an amq binary that doesn't work; amq -v dumps core
114in xdr_string.  There is no known fix (source code or vendor patch) at this
115time.  (Please let amd-dev know if you know of a fix.)
116
117
118(7) *-aix4.3.2.0
119
120The plock() function will pre-reserve all of the memory up to the maximum
121listed in the ulimit.  If the ulimit is infinite, plock() will try to take
122all of the system's memory, and fail with ENOMEM (Not Enough Space).
123Normally ulimit may be set to a few gigs of max memory usage, but even that
124is too much; Amd doesn't need more than a few megs of resident memory size
125(depending on the particular usage, number of maps, etc.)  Solution: lower
126your ulimit before starting amd.  This can be done inside the ctl-amd
127script, but be careful not to limit it too low.  Alternatively, don't use
128plock on aix-4.3: set it to plock=no in amd.conf (which is the default if
129you do nothing).
130
131
132(8) *-linux-gnu (systems using glibc 2.1, such as RedHat-6.1)
133
134There's a UDP file descriptor leak in the nis routines in glibc, especially
135those that do yp_bind.  Until this is bug fixed, do not set nis_domain in
136amd.conf, but let the system pick up the default domain name as set by your
137system.  That would avoid using the buggy yp_bind routines in libc.
138
139
140(9) *-linux-gnu (SuSE systems using unfsd)
141
142The user-level nfsd (2.2beta44) on SuSE Linux systems (and possibly others)
143dies with a SEGV when amd tries to contact it for access to a volume that
144does not exist, or one for which there is no permission to mount.
145
146
147(10) *-*-hpux11
148
149If you're using NFSv3, you must install HP patches PHNE_20344 and
150PHNE_20371.  If you don't, and you try to use amd with NFSv3 over TCP, your
151kernel will panic.
152
153(11) *-linux* (any system using a 2.2.18+ kernel)
154
155The Linux kernels don't support Amd's direct mounts very well, leading to
156erratic behavior: shares that don't get remounted after the first timeout,
157inability to restart Amd because its mount points cannot be unmounted,
158etc. There are some kernel patches on the am-utils Web site, which solve
159these problems.
160
161
162Erez.
163