[Bugs] [Bug 1723761] New: [Ganesha]: truncate operation not updating the ctime

bugzilla at redhat.com bugzilla at redhat.com
Tue Jun 25 10:41:18 UTC 2019


https://bugzilla.redhat.com/show_bug.cgi?id=1723761

            Bug ID: 1723761
           Summary: [Ganesha]: truncate operation not updating the ctime
           Product: GlusterFS
           Version: 5
            Status: ASSIGNED
         Component: posix
          Keywords: Triaged
          Severity: high
          Assignee: jthottan at redhat.com
          Reporter: jthottan at redhat.com
                CC: amukherj at redhat.com, bugs at gluster.org,
                    dang at redhat.com, ffilz at redhat.com,
                    grajoria at redhat.com, jthottan at redhat.com,
                    khiremat at redhat.com, kkeithle at redhat.com,
                    mbenjamin at redhat.com, msaini at redhat.com,
                    rhs-bugs at redhat.com, sankarshan at redhat.com,
                    skoduri at redhat.com, storage-qa-internal at redhat.com,
                    vdas at redhat.com
            Blocks: 1720163
  Target Milestone: ---
    Classification: Community



+++ This bug was initially created as a clone of Bug #1720163 +++

Description of problem:


truncate/00.t and chown/00.t tests are failing in posix compliance when ran
over 3.5.0 build v3 mount.These used to pass in 3.4.0 release

-------------------

# prove -r /home/ntfs-3g-pjd-fstest/tests/chown/00.t 
/home/ntfs-3g-pjd-fstest/tests/chown/00.t .. Failed 1/171 subtests 

Test Summary Report
-------------------
/home/ntfs-3g-pjd-fstest/tests/chown/00.t (Wstat: 0 Tests: 171 Failed: 1)
  Failed test:  118
Files=1, Tests=171, 17 wallclock secs ( 0.03 usr  0.01 sys +  0.52 cusr  0.73
csys =  1.29 CPU)
Result: FAIL


# prove -r /home/ntfs-3g-pjd-fstest/tests/truncate/00.t 
/home/ntfs-3g-pjd-fstest/tests/truncate/00.t .. Failed 1/21 subtests 

Test Summary Report
-------------------
/home/ntfs-3g-pjd-fstest/tests/truncate/00.t (Wstat: 0 Tests: 21 Failed: 1)
  Failed test:  15
Files=1, Tests=21,  2 wallclock secs ( 0.01 usr  0.01 sys +  0.07 cusr  0.10
csys =  0.19 CPU)
Result: FAIL


Version-Release number of selected component (if applicable):

# rpm -qa | grep ganesha
nfs-ganesha-gluster-2.7.3-4.el7rhgs.x86_64
nfs-ganesha-debuginfo-2.7.3-4.el7rhgs.x86_64
glusterfs-ganesha-6.0-5.el7rhgs.x86_64
nfs-ganesha-2.7.3-4.el7rhgs.x86_64

# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.7 Beta (Maipo)

How reproducible:
3/3


Steps to Reproduce:
1.Create 4 node Ganesha cluster
2.Create 12*3 Distributed-Replicate Volume.
3.Export the volume via Ganesha
4.Mount the volume on client via v3.0
5.Run posix compliance test 

Actual results:
===============

truncate/00.t and chown/00.t tests were failing with 3.5.0.
These test used to pass with older LIVE bits

3.5.0
------

Test Summary Report
-------------------
/home/ntfs-3g-pjd-fstest/tests/chmod/00.t    (Wstat: 0 Tests: 106 Failed: 2)
  Failed tests:  31, 39
/home/ntfs-3g-pjd-fstest/tests/chown/00.t    (Wstat: 0 Tests: 171 Failed: 1)
  Failed test:  118
/home/ntfs-3g-pjd-fstest/tests/ftruncate/00.t (Wstat: 0 Tests: 26 Failed: 1)
  Failed test:  24
/home/ntfs-3g-pjd-fstest/tests/mknod/03.t    (Wstat: 0 Tests: 12 Failed: 9)
  Failed tests:  1-3, 5-7, 9-11
/home/ntfs-3g-pjd-fstest/tests/truncate/00.t (Wstat: 0 Tests: 21 Failed: 1)
  Failed test:  15


3.4.0
-----

Test Summary Report
-------------------
/root/ntfs-3g-pjd-fstest/tests/chmod/00.t    (Wstat: 0 Tests: 106 Failed: 2)
  Failed tests:  31, 39
/root/ntfs-3g-pjd-fstest/tests/ftruncate/00.t (Wstat: 0 Tests: 26 Failed: 1)
  Failed test:  24
/root/ntfs-3g-pjd-fstest/tests/link/00.t     (Wstat: 0 Tests: 82 Failed: 4)
  Failed tests:  57-58, 64-65
/root/ntfs-3g-pjd-fstest/tests/mknod/03.t    (Wstat: 0 Tests: 12 Failed: 9)
  Failed tests:  1-3, 5-7, 9-11

Expected results:
==========
truncate/00.t and chown/00.t tests should pass

Additional info:



--- Additional comment from Jiffin on 2019-06-13 10:29:54 UTC ---

Failures cases:

ctime is not getting updated properly for truncate operation on v3 and v4
mounts(truncate)

ctime is not getting updated properly for mkdir in v3 operation (chown), it
seems to be hard to believe for me every other operation apart from mkdir is
passing(create,mkfifo, symlink)

If possible can u please try to olders nfs-clients than rhel 7.7

--- Additional comment from Manisha Saini on 2019-06-13 19:44:29 UTC ---

(In reply to Jiffin from comment #5)
> Failures cases:
> 
> ctime is not getting updated properly for truncate operation on v3 and v4
> mounts(truncate)
> 
> ctime is not getting updated properly for mkdir in v3 operation (chown), it
> seems to be hard to believe for me every other operation apart from mkdir is
> passing(create,mkfifo, symlink)
> 
> If possible can u please try to olders nfs-clients than rhel 7.7

Hi Jiffin,

Posix compliance on 3.4.0 was ran with RHEL 7.7 clients only.Hence it does not
seems to be RHEL client issue since its passing with 3.4.0+ RHEL 7.7 but
failing with 3.5.0+ RHEL 7.7

--- Additional comment from Jiffin on 2019-06-18 09:56:20 UTC ---

As I mentioned before the failure for truncate operation is genuine. But I was
able to pass test case for chown if I increase the sleep from 1s to 2s, so most
probably a timing issue.

--- Additional comment from RHEL Product and Program Management on 2019-06-20
06:14:28 UTC ---

This BZ is being approved for the RHGS 3.5.0 release, upon receipt of the 3
ACKs (PM,Devel,QA) for the release flag 'rhgs-3.5.0', and on being attached to
an official RHGS 3.5.0 BZ Tracker

--- Additional comment from Jiffin on 2019-06-24 09:26:33 UTC ---

The test was in the following part
# successful truncate(2) updates ctime.
expect 0 create ${n0} 0644
ctime1=`${fstest} stat ${n0} ctime`
sleep 1
expect 0 truncate ${n0} 123 
ctime2=`${fstest} stat ${n0} ctime`
test_check $ctime1 -lt $ctime2 --->  failure. The ctime1 and ctime2 was same
while running this test nfs mounts. 
expect 0 unlink ${n0}


But when I tried to create the same scenario manually and via test script. In
both cases the ctime is getting updated properly.

# vim /root/ntfs-3g-pjd-fstest/tests/truncate/00.t
-sh-4.2# touch foo
-sh-4.2# stat foo
  File: ‘foo’
  Size: 0               Blocks: 0          IO Block: 1048576 regular empty file
Device: 2bh/43d Inode: 9680437269025099955  Links: 1
Access: (0644/-rw-r--r--)  Uid: (   99/  nobody)   Gid: (   99/  nobody)
Context: system_u:object_r:nfs_t:s0
Access: 2019-06-21 15:10:43.000000000 +0530
Modify: 2019-06-21 15:10:43.000000000 +0530
Change: 2019-06-21 15:10:43.000000000 +0530
 Birth: -
-sh-4.2# truncate -s 0 foo
-sh-4.2# stat foo
  File: ‘foo’
  Size: 0               Blocks: 0          IO Block: 1048576 regular empty file
Device: 2bh/43d Inode: 9680437269025099955  Links: 1
Access: (0644/-rw-r--r--)  Uid: (   99/  nobody)   Gid: (   99/  nobody)
Context: system_u:object_r:nfs_t:s0
Access: 2019-06-21 15:10:43.000000000 +0530
Modify: 2019-06-21 15:11:04.000000000 +0530
Change: 2019-06-21 15:11:04.000000000 +0530
 Birth: -


# cat test.sh
#!/bin/bash

touch fqwe

stat fqwe


sleep 1


truncate -s 123 fqwe


stat fqwe


# ./test.sh 
  File: ‘fqwe’
  Size: 0               Blocks: 0          IO Block: 1048576 regular empty file
Device: 2bh/43d Inode: 13678437881096575140  Links: 1
Access: (0644/-rw-r--r--)  Uid: (   99/  nobody)   Gid: (   99/  nobody)
Context: system_u:object_r:nfs_t:s0
Access: 2019-06-21 15:18:17.000000000 +0530
Modify: 2019-06-21 15:18:17.000000000 +0530
Change: 2019-06-21 15:18:17.000000000 +0530
 Birth: -
  File: ‘fqwe’
  Size: 0               Blocks: 0          IO Block: 1048576 regular empty file
Device: 2bh/43d Inode: 13678437881096575140  Links: 1
Access: (0644/-rw-r--r--)  Uid: (   99/  nobody)   Gid: (   99/  nobody)
Context: system_u:object_r:nfs_t:s0
Access: 2019-06-21 15:18:17.000000000 +0530
Modify: 2019-06-21 15:18:18.000000000 +0530
Change: 2019-06-21 15:18:18.000000000 +0530


will check via packet traces as well and confirm

--- Additional comment from Sunil Kumar Acharya on 2019-06-24 14:50:59 UTC ---

Please updated the RDT flag/text appropriately.

--- Additional comment from Jiffin on 2019-06-25 10:36:45 UTC ---

RCA : with ctime feature posix_ftruncate was not setting up the ctime which
resulted in this failure.
Thanks Kotresh for pointing out the fix. will post the patch soon.


Referenced Bugs:

https://bugzilla.redhat.com/show_bug.cgi?id=1720163
[Bug 1720163] [Ganesha] Posix compliance truncate/00.t and chown/00.t tests are
failing on 3.5.0 build
-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Bugs mailing list