[LU-4924] /usr/bin/touch removes the setgid bit on directories Created: 17/Apr/14  Updated: 27/May/14  Resolved: 13/May/14

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.6.0, Lustre 2.4.2
Fix Version/s: Lustre 2.6.0, Lustre 2.5.2

Type: Bug Priority: Critical
Reporter: Oz Rentas Assignee: Nathaniel Clark
Resolution: Fixed Votes: 0
Labels: mn4
Environment:

Centos 6.5/Debian 6 clients, DDN Exascaler servers.


Severity: 4
Rank (Obsolete): 13611

 Description   

MDS/OSS are running Centos 6.4 and Lustre 2.4.2. Clients also running 2.4.2.

Calling "touch -a" to update the atime on a directory clears the setgid bit from that directory.

Example:

$ mkdir foo
$ ls -ld foo
drwxrwx--x 2 user user 4096 Apr 17 11:47 foo
$ chgrp group foo
ls -ld foo
drwxrwx--x 2 user group 4096 Apr 17 11:47 foo
$ chmod g+s foo
$ ls -ld foo
drwxrws--x 2 user group 4096 Apr 17 11:47 foo
$ touch -a foo
$ ls -ld foo
drwxrwx--x 2 user group 4096 Apr 17 11:47 foo

This is unexpected behavior, and seems like a bug. I don't get this behavior on local or NFS filesystems. If it's relevant, our identity_upcall setting is "NONE"

Thanks,
Peter



 Comments   
Comment by Jodi Levi (Inactive) [ 17/Apr/14 ]

Nathaniel,
Could you please have a look at this one?
Thank you!

Comment by Andreas Dilger [ 17/Apr/14 ]

I tested this locally on 2.4.2 and master with the default identity_upcall, and the problem is present in both versions.

Comment by Andreas Dilger [ 17/Apr/14 ]

strace of "touch -a /mnt/testfs/foo" on master:

open("/mnt/testfs/foo", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = -1 EISDIR (Is a directory)
stat("/mnt/testfs/foo", {st_mode=S_IFDIR|S_ISGID|0775, st_size=4096, ...}) = 0
utimensat(AT_FDCWD, "/mnt/testfs/foo", {UTIME_NOW, {1397756585, 0}}, 0) = 0
Comment by Oz Rentas [ 22/Apr/14 ]

Is there any new information to report back to the customer on this one? Thanks!

Comment by Nathaniel Clark [ 23/Apr/14 ]

http://review.whamcloud.com/10071

Comment by Andreas Dilger [ 29/Apr/14 ]

Patch 10071 was landed because it was marked Maloo +1, but this was unfortunately a lie due to TEI-1508, and it was actually failing its own test 100% of the time because the test script was missing from lustre/tests/Makefile.am, so was immediately reverted. Could you please submit a replacement patch (I suspect it will need to use a new ChangeId).

Comment by Nathaniel Clark [ 29/Apr/14 ]

With the Makefile.am change this time:
http://review.whamcloud.com/10153

Comment by Nathaniel Clark [ 13/May/14 ]

Fix landed to master

Comment by Bob Glossman (Inactive) [ 21/May/14 ]

backport to b2_5:
http://review.whamcloud.com/10405

Generated at Sat Feb 10 01:47:01 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.