Bad Descriptor error (autofs/nfs)

James Colby Kraybill (colby@astron.berkeley.edu)
Sun, 3 Nov 2002 17:36:28 -0800 (PST)


Hello,

I am attempting to integrate some RedHat 7.3 based Linux machines
into a pre-existing network of ~150 sunsparc solaris machines.

I have run across an odd problem which did not yield to many
google web and usetnet searches.

Here's the problem:

I am logged into the machine and everything seems to work
fine interoperating with the solaris machines. User directories
are mounted via NFS (using autofs), so, I try to do an ls of another
user's directory and get the following:

% ls ~user
ls: write error: Bad file descriptor

I can cd ~user and run ls and it works fine, I see the
files in the user's directory.
If I cd ~ and then do the ls ~user again, it works fine,
I see the files in the user's directory. So, it's as if
some table somewhere isn't properly uptodate on the
intial ls.

When I run strace on both instances, I see everything
looking about the same (except for some pointers and
file descriptor numbers being different) up to this
point:

ioctl(1, SNDCTL_TMR_TIMEBASE, 0xbffff550) = -1 EBADF (Bad file descriptor)
ioctl(1, 0x5413, 0xbffff618) = -1 EBADF (Bad file descriptor)

Under the "correctly" working one, I see this:

ioctl(1, SNDCTL_TMR_TIMEBASE, 0xbffff560) = -1 ENOTTY (Inappropriate ioctl
for device)
ioctl(1, 0x5413, 0xbffff628) = -1 ENOTTY (Inappropriate ioctl
for device)

In the case of the Bad descriptor, there are more error messages
further into ls that also return EBADF, but there are _no_ EBADF's in
the "correctly" running one.

Here is why I think this might be a kernel related problem:

I am running autofs. When I do the ls ~user, the correct
disk does get mounted, but it will still return the EBADF
message. When I cd into the directory, and do the ls,
it works fine. And from that point on, I can ls ~user
with impunity, unless I let the automounter unmount
the disk automatically. Then the same thing starts
happening. Perhaps there is something in the way that
the file system routines are failing to
create a fully proper file descriptor until some other
init routine runs by cd'ing to the disk (causing
a different cascade of stat's to be executed?)

The autofs version is autofs-3.1.7-28

Other important information:

I am using nis+. The user information is coming from
the nis+ server. The nis utils are version 1.4.1

Output of ver_linux:

Linux lynx 2.4.18-17.7.xcustom #2 Mon Oct 28 13:15:36 PST 2002 i686
unknown

Gnu C 2.96
Gnu make 3.79.1
util-linux 2.11n
mount 2.11n
modutils 2.4.14
e2fsprogs 1.27
reiserfsprogs 3.x.0j
PPP 2.4.1
isdn4k-utils 3.1pre1
Linux C Library 2.2.5
Dynamic linker (ldd) 2.2.5
Procps 2.0.7
Net-tools 1.60
Console-tools 0.3.3
Sh-utils 2.0.11
Modules Loaded binfmt_misc vmnet parport_pc parport vmmon autofs
nfs lockd sunrpc natsemi ipchains ide-cd cdrom ext3 jbd
usb-uhci usbcore

Thanks in advance for any advice on this.

---------------------------------------------------------------------
James Colby Kraybill Radio Astronomy Laboratory
colby@astro.berkeley.edu University of California, Berkeley

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/