Subject: Test Fail: "tests/chown/separator"

From: Assaf Gordon <[email-masked]>
Date: Thu, 23 Jan 2014 13:41:30 -0500

Hello,

Testing the latest coreutils (v8.22.16-be97f) on an old Ubuntu server, 
results in a test failure "tests/chown/separator" (log + strace below).

System is:
====
$ uname -a
Linux club 2.6.32-24-server #43-Ubuntu SMP Thu Sep 16 16:05:42 UTC 2010 
x86_64 GNU/Linux

$ cat /etc/issue
Ubuntu 10.04.4 LTS \n \l

## Failed on the following file-system
$ stat -f /data/gordon/projects/coreutils/
   File: "/data/gordon/projects/coreutils/"
     ID: 83000000000 Namelen: 255     Type: xfs
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 1952592384 Free: 86807222   Available: 86807222
Inodes: Total: 1429327392 Free: 1388915606
====

strace (same command which failed in the log below):
=====
$ pwd
/data/gordon/projects/coreutils/
$ mkdir foo
$ cd foo
$ strace ../src/chown 34574:users . 2>&1 | grep -A 5 -B 5 chown
--
mmap(NULL, 895, PROT_READ, MAP_SHARED, 3, 0) = 0x7fb7ce753000
lseek(3, 895, SEEK_SET)                 = 895
munmap(0x7fb7ce753000, 895)             = 0
close(3)                                = 0
newfstatat(AT_FDCWD, ".", {st_mode=S_IFDIR|0755, st_size=6, ...}, 
AT_SYMLINK_NOFOLLOW) = 0
fchownat(AT_FDCWD, ".", 34574, 100, 0)  = -1 EPERM (Operation not permitted)
open("/usr/local/share/locale/en_US.UTF-8/LC_MESSAGES/coreutils.mo", 
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/share/locale/en_US.utf8/LC_MESSAGES/coreutils.mo", 
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/share/locale/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY) 
= -1 ENOENT (No such file or directory)
open("/usr/local/share/locale/en.UTF-8/LC_MESSAGES/coreutils.mo", 
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/share/locale/en.utf8/LC_MESSAGES/coreutils.mo", 
O_RDONLY) = -1 ENOENT (No such file or directory)
--
=====

FAIL: tests/chown/separator
===========================

++ initial_cwd_=/data/gordon/projects/coreutils
++ fail=0
+++ testdir_prefix_
+++ printf gt
++ pfx_=gt
+++ mktempd_ /data/gordon/projects/coreutils gt-separator.sh.XXXX
+++ case $# in
+++ destdir_=/data/gordon/projects/coreutils
+++ template_=gt-separator.sh.XXXX
+++ MAX_TRIES_=4
+++ case $destdir_ in
+++ case $template_ in
++++ unset TMPDIR
+++ d=/data/gordon/projects/coreutils/gt-separator.sh.fh9P
+++ case $d in
+++ test -d /data/gordon/projects/coreutils/gt-separator.sh.fh9P
++++ ls -dgo /data/gordon/projects/coreutils/gt-separator.sh.fh9P
++++ tr S -
+++ perms='drwx------ 2 6 Jan 23 13:22 
/data/gordon/projects/coreutils/gt-separator.sh.fh9P'
+++ case $perms in
+++ test 0 = 0
+++ echo /data/gordon/projects/coreutils/gt-separator.sh.fh9P
+++ return
++ test_dir_=/data/gordon/projects/coreutils/gt-separator.sh.fh9P
++ cd /data/gordon/projects/coreutils/gt-separator.sh.fh9P
++ gl_init_sh_nl_='
'
++ IFS=' 	
'
++ for sig_ in 1 2 3 13 15
+++ expr 1 + 128
++ eval 'trap '\''Exit 129'\'' 1'
+++ trap 'Exit 129' 1
++ for sig_ in 1 2 3 13 15
+++ expr 2 + 128
++ eval 'trap '\''Exit 130'\'' 2'
+++ trap 'Exit 130' 2
++ for sig_ in 1 2 3 13 15
+++ expr 3 + 128
++ eval 'trap '\''Exit 131'\'' 3'
+++ trap 'Exit 131' 3
++ for sig_ in 1 2 3 13 15
+++ expr 13 + 128
++ eval 'trap '\''Exit 141'\'' 13'
+++ trap 'Exit 141' 13
++ for sig_ in 1 2 3 13 15
+++ expr 15 + 128
++ eval 'trap '\''Exit 143'\'' 15'
+++ trap 'Exit 143' 15
++ trap remove_tmp_ 0
+ path_prepend_ ./src
+ test 1 '!=' 0
+ path_dir_=./src
+ case $path_dir_ in
+ abs_path_dir_=/data/gordon/projects/coreutils/./src
+ case $abs_path_dir_ in
+ 
PATH=/data/gordon/projects/coreutils/./src:/data/gordon/projects/coreutils/src:/data/gordon/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
+ create_exe_shims_ /data/gordon/projects/coreutils/./src
+ case $EXEEXT in
+ return 0
+ shift
+ test 0 '!=' 0
+ export PATH
+ print_ver_ chown
+ test yes = yes
+ local i
+ for i in '$*'
+ env chown --version
chown (GNU coreutils) 8.22.16-be97f
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
<http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David MacKenzie and Jim Meyering.
++ id -u
+ id_u=34574
+ test -n 34574
++ id -un
+ id_un=agordon
+ test -n agordon
++ id -g
+ id_g=1000
+ test -n 1000
++ id -gn
+ id_gn=users
+ test -n users
+ case $host_triplet in
+ chown '' .
+ for u in '$id_u' '"$id_un"' ''\'''\'''
+ for g in '$id_g' '"$id_gn"' ''\'''\'''
+ case $u$g in
+ seps=': .'
+ for sep in '$seps'
+ case $u$sep$g in
+ chown 34574:1000 .
+ for sep in '$seps'
+ case $u$sep$g in
+ chown 34574.1000 .
+ for g in '$id_g' '"$id_gn"' ''\'''\'''
+ case $u$g in
+ seps=': .'
+ for sep in '$seps'
+ case $u$sep$g in
+ chown 34574:users .
chown: changing ownership of '.': Operation not permitted
+ fail=1
+ for sep in '$seps'
+ case $u$sep$g in
+ chown 34574.users .
chown: changing ownership of '.': Operation not permitted
+ fail=1
+ for g in '$id_g' '"$id_gn"' ''\'''\'''
+ case $u$g in
+ seps=': .'
+ for sep in '$seps'
+ case $u$sep$g in
+ chown 34574: .
+ for sep in '$seps'
+ case $u$sep$g in
+ chown 34574. .
+ for u in '$id_u' '"$id_un"' ''\'''\'''
+ for g in '$id_g' '"$id_gn"' ''\'''\'''
+ case $u$g in
+ seps=': .'
+ for sep in '$seps'
+ case $u$sep$g in
+ chown agordon:1000 .
+ for sep in '$seps'
+ case $u$sep$g in
+ chown agordon.1000 .
+ for g in '$id_g' '"$id_gn"' ''\'''\'''
+ case $u$g in
+ seps=': .'
+ for sep in '$seps'
+ case $u$sep$g in
+ chown agordon:users .
chown: changing ownership of '.': Operation not permitted
+ fail=1
+ for sep in '$seps'
+ case $u$sep$g in
+ chown agordon.users .
chown: changing ownership of '.': Operation not permitted
+ fail=1
+ for g in '$id_g' '"$id_gn"' ''\'''\'''
+ case $u$g in
+ seps=': .'
+ for sep in '$seps'
+ case $u$sep$g in
+ chown agordon: .
+ for sep in '$seps'
+ case $u$sep$g in
+ chown agordon. .
+ for u in '$id_u' '"$id_un"' ''\'''\'''
+ for g in '$id_g' '"$id_gn"' ''\'''\'''
+ case $u$g in
+ seps=': .'
+ for sep in '$seps'
+ case $u$sep$g in
+ chown :1000 .
+ for sep in '$seps'
+ case $u$sep$g in
+ chown .1000 .
+ for g in '$id_g' '"$id_gn"' ''\'''\'''
+ case $u$g in
+ seps=': .'
+ for sep in '$seps'
+ case $u$sep$g in
+ chown :users .
chown: changing group of '.': Operation not permitted
+ fail=1
+ for sep in '$seps'
+ case $u$sep$g in
+ chown .users .
chown: changing group of '.': Operation not permitted
+ fail=1
+ for g in '$id_g' '"$id_gn"' ''\'''\'''
+ case $u$g in
+ seps=': .'
+ for sep in '$seps'
+ case $u$sep$g in
+ chown : .
+ for sep in '$seps'
+ case $u$sep$g in
+ chown . .
+ Exit 1
+ set +e
+ exit 1
+ exit 1
+ remove_tmp_
+ __st=1
+ cleanup_
+ :
+ cd /data/gordon/projects/coreutils
+ chmod -R u+rwx /data/gordon/projects/coreutils/gt-separator.sh.fh9P
+ rm -rf /data/gordon/projects/coreutils/gt-separator.sh.fh9P
+ exit 1
===