Home | History | Annotate | Line # | Download | only in dist
BUGS revision 1.1.1.1
      1  1.1  christos 	    LIST OF KNOWN BUGS IN AM-UTILS OR OPERATING SYSTEMS
      2  1.1  christos 
      3  1.1  christos Note: report am-utils bugs via Bugzilla to https://bugzilla.am-utils.org/ or
      4  1.1  christos by email to the am-utils mailing list (see www.am-utils.org).
      5  1.1  christos 
      6  1.1  christos 
      7  1.1  christos (1) mips-sgi-irix*
      8  1.1  christos 
      9  1.1  christos [1A] known to have flaky NFS V.3 and TCP.  Amd tends to hang or spin
     10  1.1  christos infinitely after a few hours or days of use.  Users must install recommended
     11  1.1  christos patches from vendor.  Patches help, but not all the time.  Otherwise avoid
     12  1.1  christos using NFS V.3 and TCP on these systems, by setting
     13  1.1  christos 
     14  1.1  christos 	/defaults opts:=vers=2,proto=udp
     15  1.1  christos 
     16  1.1  christos [1B] yp_all() leaks a file descriptor.  Eventually amd runs out of file
     17  1.1  christos descriptors and hangs.  Am-utils circumvents this by using its own version
     18  1.1  christos of yp_all which uses udp and iterates over NIS maps.  The latter isn't as
     19  1.1  christos reliable as yp_all() which uses TCP, but it is better than hanging.
     20  1.1  christos 
     21  1.1  christos (I have some reports that older version of hpux-9, with older libc, also
     22  1.1  christos leak file descriptors.)
     23  1.1  christos 
     24  1.1  christos [1C] SGI's MIPSpro C compiler on IRIX 6 has the unfortunate habit of
     25  1.1  christos creating code specificially for the machine it runs on.  The ABI and ISA
     26  1.1  christos used depend very much on the OS version and compiler release used.  This
     27  1.1  christos means that the resulting amd binary won't run on machines different from
     28  1.1  christos the build host, particularly older ones.  Older versions of am-utils
     29  1.1  christos enforced the O32 ABI when compiling with cc to work around this, but this
     30  1.1  christos ABI is deprecated in favor of the N32 ABI now, so we use -n32 -mips3 to
     31  1.1  christos ensure that the binaries run on every host capable of running IRIX 6 at
     32  1.1  christos all.  If this is not appropriate for you, configure with something like
     33  1.1  christos CC='cc -64' instead to get the desired ABI and ISA.
     34  1.1  christos 
     35  1.1  christos (2) alpha-unknown-linux-gnu (RedHat Linux 4.2)
     36  1.1  christos 
     37  1.1  christos hasmntopt(mnt, opt) can go into an infinite loop if opt is any substring
     38  1.1  christos of mnt->mnt_opts.  Redhat 5.0 does not have this libc bug.  Here is an
     39  1.1  christos example program:
     40  1.1  christos 
     41  1.1  christos #include <stdio.h>
     42  1.1  christos #include <mntent.h>
     43  1.1  christos main()
     44  1.1  christos {
     45  1.1  christos   struct mntent mnt;
     46  1.1  christos   char *cp;
     47  1.1  christos   mnt.mnt_opts = "intr,rw,port=1023,timeo=8,foo=br,retrans=110,indirect,map=/usr/local/AMD/etc/amd.proj,boo";
     48  1.1  christos   cp = hasmntopt(&mnt, "ro");
     49  1.1  christos   printf("cp = %s\n", cp);
     50  1.1  christos   exit(0);
     51  1.1  christos }
     52  1.1  christos 
     53  1.1  christos It is possible that sufficiently newer version of libc for RH4.2 fix this
     54  1.1  christos problem.
     55  1.1  christos 
     56  1.1  christos 
     57  1.1  christos (3) mips-dec-ultrix4.3
     58  1.1  christos 
     59  1.1  christos Rainer Orth <ro (a] TechFak.Uni-Bielefeld.DE> reports
     60  1.1  christos 
     61  1.1  christos [3A] One needs the Kernel Config Files (UDTBIN430) subset installed to
     62  1.1  christos compile am-utils, otherwise essential header files (net/if.h, net/route.h,
     63  1.1  christos rpcsvc/mount.h, rpcsvc/yp_prot.h, rpcsvc/ypclnt.h, sys/proc.h) are
     64  1.1  christos missing.
     65  1.1  christos 
     66  1.1  christos [3B] It's probably impossible to build am-utils with DEC C on Ultrix V4.3.
     67  1.1  christos This compiler is pseudo-ANSI only.  Maybe the new ANSI C compiler in V4.3A
     68  1.1  christos and beyond will do.  I successfully used gcc 2.8.1.
     69  1.1  christos 
     70  1.1  christos [3C] You need to build against a recent libhesiod (I used 3.0.2) and
     71  1.1  christos libresolv/lib44bsd (I used BIND 4.9.5-P1).  The resolver routines in
     72  1.1  christos libc seem to cause random memory corruption.  It is necessary to specify
     73  1.1  christos LIBS=-l44bsd.  lib44bsd is a helper library of libresolv used to supply
     74  1.1  christos functions like strdup which are missing on the host system.  This isn't
     75  1.1  christos currently autoconfiscated.
     76  1.1  christos 
     77  1.1  christos [3D] You need to configure with CONFIG_SHELL=/bin/sh5 /bin/sh5 buildall;
     78  1.1  christos /bin/sh cannot handle the shell functions used in buildall and is both
     79  1.1  christos buggy and slow.
     80  1.1  christos 
     81  1.1  christos [3E] At least the gcc 2.7.0 fixincludes-mangled <sys/utsname.h> needs a
     82  1.1  christos forward declaration of struct utsname to avoid lots of gcc warnings:
     83  1.1  christos 
     84  1.1  christos RCS file: RCS/utsname.h,v
     85  1.1  christos retrieving revision 1.1
     86  1.1  christos diff -u -r1.1 utsname.h
     87  1.1  christos --- utsname.h   1995/06/19 13:07:01     1.1
     88  1.1  christos +++ utsname.h   1998/01/27 12:34:26
     89  1.1  christos @@ -59,6 +59,7 @@
     90  1.1  christos  #ifdef KERNEL
     91  1.1  christos  #include "../h/limits.h"
     92  1.1  christos  #else /* user mode */
     93  1.1  christos +struct utsname;
     94  1.1  christos  extern int     uname _PARAMS((struct utsname *));
     95  1.1  christos  #endif
     96  1.1  christos  #define __SYS_NMLN 32
     97  1.1  christos 
     98  1.1  christos 
     99  1.1  christos (4) powerpc-ibm-aix4.2.1.0
    100  1.1  christos 
    101  1.1  christos [4A] "Randall S. Winchester" <rsw AT Glue.umd.edu> reports that for amd to
    102  1.1  christos start, you need to kill and restart rpc.mountd and possibly also make sure
    103  1.1  christos that nfsd is running.  Normally these are not required.
    104  1.1  christos 
    105  1.1  christos [4B] "Stefan Vogel" <vogel AT physik.unizh.ch> reports that if your amq
    106  1.1  christos executable dump core unexpectedly, then it may be a bug in gcc 2.7.x.
    107  1.1  christos Upgrade to gcc 2.8.x or use IBM's xlC compiler.
    108  1.1  christos 
    109  1.1  christos [C] Do not link amd with libnsl.  It is buggy and causes amd to core dump
    110  1.1  christos in strlen inside strdup inside svc_register().
    111  1.1  christos 
    112  1.1  christos 
    113  1.1  christos (5) *-linux-rh51 (RedHat Linux 5.1)
    114  1.1  christos 
    115  1.1  christos There's a UDP file descriptor leak in libnsl in RedHat Linux 5.1.  This
    116  1.1  christos library part of glibc2.  Am-utils currently declares redhat 5.1 systems as
    117  1.1  christos having a "broken yp_all" and using an internal, slower, leak-free version.
    118  1.1  christos The leak is known to the glibc maintainers and a fix from them is due soon,
    119  1.1  christos but it is not yet in the glibc-2.0.7-19 RPM.
    120  1.1  christos 
    121  1.1  christos 
    122  1.1  christos (6) rs6000-ibm-aix4.1.x
    123  1.1  christos 
    124  1.1  christos A bug in libc results in an amq binary that doesn't work; amq -v dumps core
    125  1.1  christos in xdr_string.  There is no known fix (source code or vendor patch) at this
    126  1.1  christos time.  (Please let us know if you have a fix; see www.am-utils.org.)
    127  1.1  christos 
    128  1.1  christos 
    129  1.1  christos (7) *-aix4.3.2.0
    130  1.1  christos 
    131  1.1  christos The plock() function will pre-reserve all of the memory up to the maximum
    132  1.1  christos listed in the ulimit.  If the ulimit is infinite, plock() will try to take
    133  1.1  christos all of the system's memory, and fail with ENOMEM (Not Enough Space).
    134  1.1  christos Normally ulimit may be set to a few gigs of max memory usage, but even that
    135  1.1  christos is too much; Amd doesn't need more than a few megs of resident memory size
    136  1.1  christos (depending on the particular usage, number of maps, etc.)  Solution: lower
    137  1.1  christos your ulimit before starting amd.  This can be done inside the ctl-amd
    138  1.1  christos script, but be careful not to limit it too low.  Alternatively, don't use
    139  1.1  christos plock on aix-4.3: set it to plock=no in amd.conf (which is the default if
    140  1.1  christos you do nothing).
    141  1.1  christos 
    142  1.1  christos 
    143  1.1  christos (8) *-linux (systems using glibc 2.1, such as RedHat-6.x)
    144  1.1  christos 
    145  1.1  christos There's a UDP file descriptor leak in the NIS routines in glibc, especially
    146  1.1  christos those that do yp_bind.  Until this is bug fixed, do not set nis_domain in
    147  1.1  christos amd.conf, but let the system pick up the default domain name as set by your
    148  1.1  christos system.  That would avoid using the buggy yp_bind routines in libc.
    149  1.1  christos 
    150  1.1  christos 
    151  1.1  christos (9) *-linux (SuSE systems using unfsd)
    152  1.1  christos 
    153  1.1  christos The user-level nfsd (2.2beta44) on older SuSE Linux systems (and possibly
    154  1.1  christos others) dies with a SEGV when amd tries to contact it for access to a volume
    155  1.1  christos that does not exist, or one for which there is no permission to mount.
    156  1.1  christos 
    157  1.1  christos 
    158  1.1  christos (10) *-*-hpux11
    159  1.1  christos 
    160  1.1  christos If you're using NFSv3, you must install HP patches PHNE_20344 and
    161  1.1  christos PHNE_20371.  If you don't, and you try to use amd with NFSv3 over TCP, your
    162  1.1  christos kernel will panic.
    163  1.1  christos 
    164  1.1  christos 
    165  1.1  christos (11) *-linux* (any system using a 2.2.18+ kernel)
    166  1.1  christos 
    167  1.1  christos The Linux kernels don't support Amd's direct mounts very well, leading to
    168  1.1  christos erratic behavior: shares that don't get remounted after the first timeout,
    169  1.1  christos inability to restart Amd because its mount points cannot be unmounted, etc.
    170  1.1  christos There are some kernel patches on the am-utils Web site, which solve these
    171  1.1  christos problems.  See http://www.am-utils.org/patches/.
    172  1.1  christos 
    173  1.1  christos Later 2.4.x kernels completely disallow the hack amd was using for direct
    174  1.1  christos mounts, so another solution will have to be found.
    175  1.1  christos 
    176  1.1  christos Note: the above is for the old-style amd mount_type = nfs. The autofs mounts
    177  1.1  christos don't support direct mounts at all (due to lack of kernel support).
    178  1.1  christos 
    179  1.1  christos (12) *-aix5.1.0.0 and *-hpux9*
    180  1.1  christos 
    181  1.1  christos /bin/sh is broken and fails to run the configure script properly. You need
    182  1.1  christos to use /bin/ksh instead. The buildall script will do it for you; if for some
    183  1.1  christos reason you need to run configure directly, run it using 'ksh configure'
    184  1.1  christos instead of just 'configure'.
    185  1.1  christos 
    186  1.1  christos [12A] *-aix5.2.*
    187  1.1  christos 
    188  1.1  christos Apparently there is an NFS client side bug in vmount() which causes amd to
    189  1.1  christos hang when it starts (and tries to NFS-mount itself).  According to IBM
    190  1.1  christos engineers, this has to do with partial support code for IPv6: the NFS kernel
    191  1.1  christos code doesn't appear to recognize the sin_family of the amd vmount(),
    192  1.1  christos although amd does the right thing.  The bug doesn't appear to be in 5.1 or
    193  1.1  christos 4.3.3.  A fix from IBM is available, APAR number IY41417.
    194  1.1  christos 
    195  1.1  christos A binary built on 4.3.3 will not work on 5.2, because the kernel ABIs have
    196  1.1  christos changed.
    197  1.1  christos 
    198  1.1  christos [12C] *-aix*
    199  1.1  christos 
    200  1.1  christos It is important that you install bos.net.nfs.adt before configuring and
    201  1.1  christos building am-utils.  If you don't, you will get compile-time or
    202  1.1  christos configure-time errors, especially when configure tries to find AIX's
    203  1.1  christos definition of struct nfs_args.
    204  1.1  christos 
    205  1.1  christos (13) *-linux and *-darwin6.0
    206  1.1  christos 
    207  1.1  christos Certain linux kernels (2.4.18+ are fine, 2.4.10- are probably bad, those in
    208  1.1  christos between have not been tested) have a bug which causes them to reconnect
    209  1.1  christos broken NFS/TCP connections using unprivileged ports (greater than 1024),
    210  1.1  christos unlike the initial connections which do originate from privileged
    211  1.1  christos ports.  This can upset quite a few NFS servers and causes accesses to the
    212  1.1  christos mounted shares to fail with "Operation not permitted" (EPERM).
    213  1.1  christos 
    214  1.1  christos The darwin (MacOS X) kernel defaults to using unprivileged ports, but that
    215  1.1  christos can be changed by setting the resvport mount flag (which amd sets by
    216  1.1  christos default).  Nonetheless, if a TCP connection breaks, under certain unclear
    217  1.1  christos circumstances the kernel might "forget" about that flag and start using
    218  1.1  christos unprivileged ports, causing the same EPERM error above.
    219  1.1  christos 
    220  1.1  christos (14) Solaris
    221  1.1  christos 
    222  1.1  christos The line "%option" in *.l files may cause Solaris /usr/ccs/bin/lex to abort
    223  1.1  christos with the error "missing translation value."  This is a bug in Solaris lex.
    224  1.1  christos 
    225  1.1  christos Moreover, both Solaris yacc and lex produce code that does not pass strict
    226  1.1  christos compilation such as "gcc -Wall -Werror".
    227  1.1  christos 
    228  1.1  christos Use GNU Flex and Bison instead.  You can download ready-made binaries from
    229  1.1  christos www.sunfreeware.com.  Note, however, that sometimes the binaries on
    230  1.1  christos sunfreeware.com don't seem to work, often because they are built against an
    231  1.1  christos older revision of Solaris or build tools.  In that case, build a fresh
    232  1.1  christos version of GNU flex and/or bison from the latest stable sources.  See
    233  1.1  christos http://www.gnu.org/software/flex/ and http://www.gnu.org/software/bison/.
    234  1.1  christos 
    235  1.1  christos (15) Solaris 8 + patch 10899[34]-xx (18 <= xx < 25) or patch 11260[56]-xx
    236  1.1  christos 
    237  1.1  christos With this patch, Sun updated the autofs kernel module and automountd
    238  1.1  christos userspace daemon from version 3 to version 4.  They also updated the
    239  1.1  christos /usr/include/rpcsvc/autofs_prot.x file, but forgot to regenerate the
    240  1.1  christos autofs_prot.h file.  Thus, when amd is compiled, it uses the old header and
    241  1.1  christos thinks it should use autofs version 3, when in fact the kernel now supports
    242  1.1  christos (and expects) only version 4.
    243  1.1  christos 
    244  1.1  christos The workaround is to run 'rpcgen -C -h /usr/include/rpcsvc/autofs_prot.x >
    245  1.1  christos /usr/include/rpcsvc/autofs_prot.h' and completely reconfigure and rebuild
    246  1.1  christos am-utils (removing config.cache before running configure).
    247  1.1  christos 
    248  1.1  christos The problem is fixed in patch revisions 10899[34]-25 and up.
    249  1.1  christos 
    250  1.1  christos 
    251  1.1  christos (16) Linux kernel 2.4+ and lofs mounts
    252  1.1  christos 
    253  1.1  christos Lofs mounts are not supported by the linux kernel, at all, but since 2.4.0
    254  1.1  christos the kernel supports a similar type of mount called a bind mount.  Its
    255  1.1  christos semantics are closer to those of a hardlink than to those of lofs, and one
    256  1.1  christos of the results is that bind mounts ignore any mount options paseed to them.
    257  1.1  christos 
    258  1.1  christos Amd uses bind mounts internally to emulate lofs mounts, which means that
    259  1.1  christos lofs mounts on linux will effectively ignore their mount parameters and
    260  1.1  christos inherit whatever options the original filesystem mounted upon had.
    261  1.1  christos 
    262  1.1  christos 
    263  1.1  christos (17) autoconf 2.57
    264  1.1  christos 
    265  1.1  christos If you see configure warnings of the following kind:
    266  1.1  christos 
    267  1.1  christos configure: WARNING: sys/proc.h: present but cannot be compiled
    268  1.1  christos configure: WARNING: sys/proc.h: check for missing prerequisite headers?
    269  1.1  christos configure: WARNING: sys/proc.h: proceeding with the preprocessor's result
    270  1.1  christos configure: WARNING:     ## ------------------------------------ ##
    271  1.1  christos configure: WARNING:     ## Report this to bug-autoconf (a] gnu.org. ##
    272  1.1  christos configure: WARNING:     ## ------------------------------------ ##
    273  1.1  christos 
    274  1.1  christos please ignore them.  They are not real errors, and neither
    275  1.1  christos bug-autoconf (a] gnu.org nor the am-utils maintainers are interested in hearing
    276  1.1  christos about them.  Autoconf simply tries to do more than we need and attempts to
    277  1.1  christos compile each header in isolation, which fails for many system headers.
    278  1.1  christos That's ok, because we only need to know if a header file exists -- we know
    279  1.1  christos how to use it properly ourselves.
    280  1.1  christos 
    281  1.1  christos While autoconf does offer a way to specify other files to be included with
    282  1.1  christos the tested header, in order to avoid these warnings, using it would enlarge
    283  1.1  christos the resulting configure script by an order of magnitude, and for no real
    284  1.1  christos gain.  Configure is big enough as it is, we don't need any more useless
    285  1.1  christos baggage in it.
    286  1.1  christos 
    287  1.1  christos (18) NetBSD 2.0.2, FreeBSD 5.4, OpenBSD 3.7, and quite possibly most other
    288  1.1  christos      BSDs and other OSs (as of September 2005)
    289  1.1  christos 
    290  1.1  christos Some BSD kernels don't have a way to turn off the NFS attribute cache.  They
    291  1.1  christos don't have a 'noac' mount flag, and setting various cache timeout fields in
    292  1.1  christos struct nfs_args doesn't turn off the attribute cache; instead, it sets the
    293  1.1  christos attribute cache timeout to some internal hard-coded default (usually
    294  1.1  christos anywhere from 5-30 seconds).  If Amd cannot turn off the NFS attribute
    295  1.1  christos cache, under heavy Amd usage, users could get ESTALE errors from automounted
    296  1.1  christos symlinks, or find that those symlinks point to the wrong place.  One
    297  1.1  christos workaround which would minimize this effect is to set auto_attrcache=1 in
    298  1.1  christos your amd.conf, but it doesn't eliminate the problem!  The best solutions are
    299  1.1  christos (1) to use Amd in Autofs mode, if it's supported in your OS, and (2) talk to
    300  1.1  christos your OS vendor to support a true "noac" flag.  See README.attrcache for more
    301  1.1  christos details.
    302  1.1  christos 
    303  1.1  christos Erez & the am-utils team.
    304