Hello,
we found a case, where chmod from coreutils 9.0 fails (exit value 1), while the
one from 8.29 succeeds. (exit value 0)
Unfortunately, no (error) message is given, just the exit value is 0 and 1
respectively.
Here is the example:
== 8.29: fine
>chmod --version
chmod (GNU coreutils) 8.29
...
> chmod -R go+r-w MB_192378
> echo $?
0
Exit value 0, everyone happy.
== 8.30: bad
> /build/home//coreutils-9.0/src/chmod --version
chmod (GNU coreutils) 9.0
> /build/home/.../coreutils-9.0/src/chmod -R go+r-w MB_192378
> echo $?
1
Exit value 1 - no error message given.
==
Notes:
1 this call, using "go+r-w" is generated by some tool, outside our immediate
control.
I would expect 'go+r,go-w'. Can you confirm to me, whether the used syntax
is ok ?
(From the description in the info-page, I'm not sure; OTOH no diagnostic
given for both versions.)
1 a I tried " chmod -R go+r,go-w" with 9.0, but that had the same behaviour (No
error indication; exit value 1)
2 How can I (try to) find what is causing the bug ?
(Note: The tree I'm changing, is rather big...)
I'm currently trying to run the command "under" strace in an emacs shell
buffer - but I'm afraid that will be overwhelming...
3. The chmod is done on a NFS mounted FS
The chmod binary - both 8.29 as well as 9.0 - are located on NFS as well.
4. The "configure' options for 8.29 and 9.0 are the same; both are build on the
same machine. (*)
Both were build after a 'make distclean' in short succession (a few hours);
8.29 intended to "downdate" to that one again, after I ran into the problem.
The test runs above, had been running on a different machine compared to the
build machine.
(*) I just learned the hard way, that e.g. 'GNU cp' is silently ignoring
options like capabilities or ACL, if the needed development (header) packages
aren't installed on the build machine. That triggered the whole "update" thing.
5. Both 8.29 as well as 9.0 passed 'make check' after compilation.
Regards
Martin