Subject: bug#7198: ls-misc failure with Oct 10 snapshot

From: Paul Eggert <[email-masked]>
Date: Tue, 12 Oct 2010 16:42:38 -0700

On 10/12/10 10:57, Jim Meyering wrote:

> What version of RHEL 5.N?  I.e., what's "N"?

/etc/issue says "Red Hat Enterprise Linux Server release 5.5 (Tikanga)".
uname -a says "Linux lnxsrv01.seas.ucla.edu 2.6.18-194.17.1.el5 #1 SMP Mon Sep 20 07:12:06 EDT 2010 x86_64 GNU/Linux".

> What does perl -v print?

This is perl, v5.8.8 built for x86_64-linux-thread-multi

> I couldn't reproduce that on a 5.5 x86-based system using
> /usr/bin/gcc. Can you reproduce it with the standard compiler?

Ouch.  Now I can't reproduce the problem with either the standard
compiler or with my GCC 4.5.1.  However, with the standard compiler
I get different problems.

test-rand-isaac.c: In function 'main':                                          
test-rand-isaac.c:599: warning: passing argument 2 of 'strtol' makes pointer fr\
om integer without a cast                                                       
test-rand-isaac.c:599: warning: passing argument 3 of 'strtol' makes integer fr\
om pointer without a cast        

Something odd is going on here, as that's an obvious typo in the
test case that GCC 4.5.1 should also have caught.  Dunno why it
didn't, and don't know why you didn't notice that problem on your
end, with the standard compiler.

Oh, and when running atop an NFS file system I found another problem,
which occurs with both the standard gcc and with my GCC 4.5.1:

FAIL: test-rename (exit: 134)
=============================

test-rename.h:121: assertion failed

Here's the output of "strace ./test-rename" in gnulib-tests:

mkdir("test-rename.tdir2", 0700)        = 0
creat("test-rename.tdir/file", 0600)    = 4
close(4)                                = 0
rename("test-rename.tdir2", "test-rename.tdir") = -1 ENOTEMPTY (Directory not empty)
rename("test-rename.tdir2/", "test-rename.tdir") = -1 ENOTEMPTY (Directory not empty)
rename("test-rename.tdir2", "test-rename.tdir/") = -1 ENOTEMPTY (Directory not empty)
rename("test-rename.tdir", "test-rename.tdir2") = 0
stat("test-rename.tdir", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
write(2, "test-rename.h:121: assertion fai"..., 36test-rename.h:121: assertion failed
) = 36

The amusing thing is that, after the strace, "ls -l test-rename.t*"
reports only this:

$ ls -ltd test-rename.tdir*
drwx------ 2 eggert csfac 4096 Oct 12 16:35 test-rename.tdir2

Perhaps there's a bug in the RHEL 5.5 NFS client?  That might
conceivably explain the misc/ls-misc problem that started this thread.

I'll try to look into this more latter; gotta run now.