Subject: bug#16532: closed (Re: bug#16532: Test Fail: "tests/chown/separator")

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 24 Jan 2014 01:45:03 +0000

Your bug report

#16532: Test Fail: "tests/chown/separator"

which was filed against the coreutils package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
16532: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16532
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#16532: Test Fail: "tests/chown/separator"
From: Pádraig Brady <[email-masked]>
To: Assaf Gordon <[email-masked]>
Cc: [email-masked], Bernhard Voelker <[email-masked]>
Date: Fri, 24 Jan 2014 01:43:57 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

On 01/24/2014 01:38 AM, Assaf Gordon wrote:
> This patch makes the test skip on my server (did not test it on other systems).
> 
> On 01/23/2014 08:09 PM, Pádraig Brady wrote:
>> On 01/23/2014 11:41 PM, Assaf Gordon wrote:
> 
>>> So I guess this is not a bug, and can be closed.
>>> I'll just ignore this failure on this system.
>>
>> It is a false failure though so would be worth avoiding.
>> It's important to have robust tests we and builders can rely on.
>>
>> Would something along the following be possible?
>>
>> test $(getent group $group | wc -l) != 1 || skip_ "multiple ids for group $group: $(getent group $group)"
>>
> 
> 
> From 3737105eacbb23cbe453a3d210359fea614b7154 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?P=C3=A1draig=20Brady?= <[email-masked]>
> Date: Thu, 23 Jan 2014 20:34:52 -0500
> Subject: [PATCH] tests: skip chown/separator with duplicated groups
> 
> * tests/chwon/separator.sh: skip test if the user's group has

s/chwon/chown/

> multiple entries.
> Fixes http://bugs.gnu.org/16532
> ---
>  tests/chown/separator.sh | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/tests/chown/separator.sh b/tests/chown/separator.sh
> index f64b738..ec33f4a 100755
> --- a/tests/chown/separator.sh
> +++ b/tests/chown/separator.sh
> @@ -31,6 +31,9 @@ test -n "$id_g" || framework_failure_
>  id_gn=$(id -gn) || framework_failure_
>  test -n "$id_gn" || framework_failure_
> 
> +test $(getent group $id_gn | wc -l) != 1 ||
> +  skip_ "multiple ids for group $id_gn: $(getent group $id_gn)"
> +
>  # FreeBSD 6.x's getgrnam fails to look up a group name containing
>  # a space. On such a system, skip this test if the group name contains
>  # a byte not in the portable filename character set.

Cool I'll push that in your name since you
did the hard work of tracking it down,
generating the patch and testing.

Marking this as done.

cheers,
Pádraig.

Subject: Test Fail: "tests/chown/separator"
From: Assaf Gordon <[email-masked]>
To: [email-masked]
Date: Thu, 23 Jan 2014 13:41:30 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

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
===