mbox series

[0/4] fstests: more quota related tests

Message ID 9c9a63f3-13ab-d5b6-923c-4ea684b6b2f8@redhat.com (mailing list archive)
Headers show
Series fstests: more quota related tests | expand

Message

Eric Sandeen May 18, 2020, 7:59 p.m. UTC
This collects zorro's outstanding patch to test per-type quota
timers, as well as one test from darrick to test limit survival
after quotacheck,  plus 2 more from me to test grace time extension.

zorro's still needs ENOSPC vs. EDQUOT filtering, darrick's might
need to be made generic, and mine are new.

Comments

Darrick J. Wong May 20, 2020, 3:39 p.m. UTC | #1
On Mon, May 18, 2020 at 02:59:01PM -0500, Eric Sandeen wrote:
> This collects zorro's outstanding patch to test per-type quota
> timers, as well as one test from darrick to test limit survival
> after quotacheck,  plus 2 more from me to test grace time extension.
> 
> zorro's still needs ENOSPC vs. EDQUOT filtering, darrick's might
> need to be made generic, and mine are new.

Err, I saw the following quota fstests regressions overnight.  Are these
expected?  Note that I didn't patch any of the userspace, nor have I
added any of the tests in this series...

--D

--- RESULTS FOR HOST: doh-mtr00.local
FSTESTS LOG DIR "/var/tmp/fstests":
SECTION      -- -no-sections-
FSTYP        -- xfs
MKFS_OPTIONS --  -m reflink=1,rmapbt=1, -i sparse=1,
MOUNT_OPTIONS --  -o usrquota,grpquota,prjquota,
HOST_OPTIONS -- local.config
CHECK_OPTIONS -- -g auto
XFS_MKFS_OPTIONS -- -bsize=4096
TIME_FACTOR  -- 1
LOAD_FACTOR  -- 1
TEST_DIR     -- /mnt
TEST_DEV     -- /dev/sda
SCRATCH_DEV  -- /dev/sdf
SCRATCH_MNT  -- /opt
OVL_UPPER    -- ovl-upper
OVL_LOWER    -- ovl-lower
OVL_WORK     -- ovl-work
KERNEL       -- 5.7.0-rc4-djw
--- xfs/106.out
+++ xfs/106.out.bad
@@ -151,7 +151,7 @@
 checking restore command (type=u)
 
 checking report command (type=u)
-fsgqa 1024 512 2048 00 [7 days] 15 10 20 00 [7 days]
+fsgqa 1024 512 2048 00 [0 days] 15 10 20 00 [0 days]
 
 
 checking state command (type=u)
@@ -159,9 +159,9 @@
  Accounting: ON
  Enforcement: ON
  Inode: #[INO] (X blocks, Y extents)
-Blocks grace time: [7 days]
-Inodes grace time: [7 days]
-Realtime Blocks grace time: [7 days]
+Blocks grace time: [--------]
+Inodes grace time: [--------]
+Realtime Blocks grace time: [--------]
 cleanup files
 ----------------------- gquota,sync ---------------------------
 init quota limit and timer, and dump it
@@ -315,7 +315,7 @@
 checking restore command (type=g)
 
 checking report command (type=g)
-fsgqa 1024 512 2048 00 [7 days] 15 10 20 00 [7 days]
+fsgqa 1024 512 2048 00 [0 days] 15 10 20 00 [0 days]
 
 
 checking state command (type=g)
@@ -323,9 +323,9 @@
  Accounting: ON
  Enforcement: ON
  Inode: #[INO] (X blocks, Y extents)
-Blocks grace time: [7 days]
-Inodes grace time: [7 days]
-Realtime Blocks grace time: [7 days]
+Blocks grace time: [--------]
+Inodes grace time: [--------]
+Realtime Blocks grace time: [--------]
 cleanup files
 ----------------------- pquota,sync ---------------------------
 init quota limit and timer, and dump it
@@ -479,7 +479,7 @@
 checking restore command (type=p)
 
 checking report command (type=p)
-fsgqa 1024 512 2048 00 [7 days] 15 10 20 00 [7 days]
+fsgqa 1024 512 2048 00 [0 days] 15 10 20 00 [0 days]
 
 
 checking state command (type=p)
@@ -487,7 +487,7 @@
  Accounting: ON
  Enforcement: ON
  Inode: #[INO] (X blocks, Y extents)
-Blocks grace time: [7 days]
-Inodes grace time: [7 days]
-Realtime Blocks grace time: [7 days]
+Blocks grace time: [--------]
+Inodes grace time: [--------]
+Realtime Blocks grace time: [--------]
 cleanup files
--- xfs/299.out
+++ xfs/299.out.bad
@@ -16,19 +16,19 @@
 
 *** push past the soft inode limit
 [ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 0 100 500 00 [--------] 5 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] 0 100 500 00 [--------] 5 4 10 00 [0 days] 0 0 0 00 [--------]
 
 *** push past the soft block limit
 [ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 200 100 500 00 [7 days] 6 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] 200 100 500 00 [7 days] 6 4 10 00 [0 days] 0 0 0 00 [--------]
 
 *** push past the hard inode limit (expect EDQUOT)
 [ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 200 100 500 00 [7 days] 9 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] 200 100 500 00 [7 days] 9 4 10 00 [0 days] 0 0 0 00 [--------]
 
 *** push past the hard block limit (expect EDQUOT)
 [ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] =OK= 100 500 0 [7 days] 9 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] =OK= 100 500 0 [7 days] 9 4 10 00 [0 days] 0 0 0 00 [--------]
 
 
 *** report no quota settings
--- xfs/050.out
+++ xfs/050.out.bad
@@ -16,19 +16,20 @@
 
 *** push past the soft inode limit
 [ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 0 200 1000 00 [--------] 5 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] 0 200 1000 00 [--------] 5 4 10 00 [0 days] 0 0 0 00 [--------]
 
 *** push past the soft block limit
 [ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 300 200 1000 00 [7 days] 6 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] 0 200 1000 00 [--------] 5 4 10 00 [0 days] 0 0 0 00 [--------]
 
 *** push past the hard inode limit (expect EDQUOT)
 [ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 300 200 1000 00 [7 days] 10 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] 0 200 1000 00 [--------] 5 4 10 00 [0 days] 0 0 0 00 [--------]
 
 *** push past the hard block limit (expect EDQUOT)
 [ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] =OK= 200 1000 0 [7 days] 10 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] =OK= 200 1000 0 [--------] 5 4 10 00 [0 days] 0 0 0 00 [--------]
+ URK 65534: 0 is out of range! [3481600,4096000]
 
 *** unmount
 *** group
@@ -48,19 +49,19 @@
 
 *** push past the soft inode limit
 [ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 0 200 1000 00 [--------] 5 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] 0 200 1000 00 [--------] 5 4 10 00 [0 days] 0 0 0 00 [--------]
 
 *** push past the soft block limit
 [ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 300 200 1000 00 [7 days] 6 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] 300 200 1000 00 [7 days] 6 4 10 00 [0 days] 0 0 0 00 [--------]
 
 *** push past the hard inode limit (expect EDQUOT)
 [ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 300 200 1000 00 [7 days] 10 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] 300 200 1000 00 [7 days] 10 4 10 00 [0 days] 0 0 0 00 [--------]
 
 *** push past the hard block limit (expect EDQUOT)
 [ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] =OK= 200 1000 0 [7 days] 10 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] =OK= 200 1000 0 [7 days] 10 4 10 00 [0 days] 0 0 0 00 [--------]
 
 *** unmount
 *** uqnoenforce
@@ -144,19 +145,19 @@
 
 *** push past the soft inode limit
 [ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 0 200 1000 00 [--------] 5 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] 0 200 1000 00 [--------] 5 4 10 00 [0 days] 0 0 0 00 [--------]
 
 *** push past the soft block limit
 [ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 300 200 1000 00 [7 days] 6 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] 300 200 1000 00 [7 days] 6 4 10 00 [0 days] 0 0 0 00 [--------]
 
 *** push past the hard inode limit (expect EDQUOT)
 [ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 300 200 1000 00 [7 days] 9 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] 300 200 1000 00 [7 days] 9 4 10 00 [0 days] 0 0 0 00 [--------]
 
 *** push past the hard block limit (expect EDQUOT)
 [ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] =OK= 200 1000 0 [7 days] 9 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] =OK= 200 1000 0 [7 days] 9 4 10 00 [0 days] 0 0 0 00 [--------]
 
 *** unmount
 *** pqnoenforce
--- generic/594.out
+++ generic/594.out.bad
@@ -5,31 +5,31 @@
 *** Report for group quotas on device SCRATCH_DEV
 Block grace time: DEF_TIME; Inode grace time: DEF_TIME
 *** Report for project quotas on device SCRATCH_DEV
-Block grace time: 00:10; Inode grace time: 00:20
+Block grace time: DEF_TIME; Inode grace time: DEF_TIME
 
 2. set group quota timer
 *** Report for user quotas on device SCRATCH_DEV
 Block grace time: DEF_TIME; Inode grace time: DEF_TIME
 *** Report for group quotas on device SCRATCH_DEV
-Block grace time: 00:30; Inode grace time: 00:40
+Block grace time: DEF_TIME; Inode grace time: DEF_TIME
 *** Report for project quotas on device SCRATCH_DEV
-Block grace time: 00:10; Inode grace time: 00:20
+Block grace time: DEF_TIME; Inode grace time: DEF_TIME
 
 3. set user quota timer
 *** Report for user quotas on device SCRATCH_DEV
 Block grace time: 00:50; Inode grace time: 01:00
 *** Report for group quotas on device SCRATCH_DEV
-Block grace time: 00:30; Inode grace time: 00:40
+Block grace time: 00:50; Inode grace time: 01:00
 *** Report for project quotas on device SCRATCH_DEV
-Block grace time: 00:10; Inode grace time: 00:20
+Block grace time: 00:50; Inode grace time: 01:00
 
 4. cycle mount test-1
 *** Report for user quotas on device SCRATCH_DEV
 Block grace time: 00:50; Inode grace time: 01:00
 *** Report for group quotas on device SCRATCH_DEV
-Block grace time: 00:30; Inode grace time: 00:40
+Block grace time: 00:50; Inode grace time: 01:00
 *** Report for project quotas on device SCRATCH_DEV
-Block grace time: 00:10; Inode grace time: 00:20
+Block grace time: 00:50; Inode grace time: 01:00
 
 5. fsck to force quota check
 
@@ -37,14 +37,14 @@
 *** Report for user quotas on device SCRATCH_DEV
 Block grace time: 00:50; Inode grace time: 01:00
 *** Report for group quotas on device SCRATCH_DEV
-Block grace time: 00:30; Inode grace time: 00:40
+Block grace time: 00:50; Inode grace time: 01:00
 *** Report for project quotas on device SCRATCH_DEV
-Block grace time: 00:10; Inode grace time: 00:20
+Block grace time: 00:50; Inode grace time: 01:00
 
 7. cycle mount test-3
 *** Report for user quotas on device SCRATCH_DEV
 Block grace time: 00:50; Inode grace time: 01:00
 *** Report for group quotas on device SCRATCH_DEV
-Block grace time: 00:30; Inode grace time: 00:40
+Block grace time: 00:50; Inode grace time: 01:00
 *** Report for project quotas on device SCRATCH_DEV
-Block grace time: 00:10; Inode grace time: 00:20
+Block grace time: 00:50; Inode grace time: 01:00
--- generic/235.out
+++ generic/235.out.bad
@@ -1,25 +1,25 @@
 QA output created by 235
 *** Report for user quotas on device SCRATCH_DEV
-Block grace time: 7days; Inode grace time: 7days
+Block grace time: 00:00; Inode grace time: 00:00
                         Block limits                File limits
 User            used    soft    hard  grace    used  soft  hard  grace
 ----------------------------------------------------------------------
 fsgqa     --       0       0       0              1     0     0       
 *** Report for group quotas on device SCRATCH_DEV
-Block grace time: 7days; Inode grace time: 7days
+Block grace time: 00:00; Inode grace time: 00:00
                         Block limits                File limits
 Group           used    soft    hard  grace    used  soft  hard  grace
 ----------------------------------------------------------------------
 fsgqa     --       0       0       0              1     0     0       
 touch: cannot touch 'SCRATCH_MNT/failed': Read-only file system
 *** Report for user quotas on device SCRATCH_DEV
-Block grace time: 7days; Inode grace time: 7days
+Block grace time: 00:00; Inode grace time: 00:00
                         Block limits                File limits
 User            used    soft    hard  grace    used  soft  hard  grace
 ----------------------------------------------------------------------
 fsgqa     --       0       0       0              2     0     0       
 *** Report for group quotas on device SCRATCH_DEV
-Block grace time: 7days; Inode grace time: 7days
+Block grace time: 00:00; Inode grace time: 00:00
                         Block limits                File limits
 Group           used    soft    hard  grace    used  soft  hard  grace
 ----------------------------------------------------------------------
--- xfs/263.out
+++ xfs/263.out.bad
@@ -14,9 +14,9 @@
   Accounting: OFF
   Enforcement: OFF
   Inode: N/A
-Blocks grace time: [7 days]
-Inodes grace time: [7 days]
-Realtime Blocks grace time: [7 days]
+Blocks grace time: [--------]
+Inodes grace time: [--------]
+Realtime Blocks grace time: [--------]
 == Options: grpquota,rw ==
 User quota state on SCRATCH_MNT (SCRATCH_DEV)
   Accounting: OFF
@@ -30,9 +30,9 @@
   Accounting: OFF
   Enforcement: OFF
   Inode: N/A
-Blocks grace time: [7 days]
-Inodes grace time: [7 days]
-Realtime Blocks grace time: [7 days]
+Blocks grace time: [--------]
+Inodes grace time: [--------]
+Realtime Blocks grace time: [--------]
 == Options: usrquota,grpquota,rw ==
 User quota state on SCRATCH_MNT (SCRATCH_DEV)
   Accounting: ON
@@ -62,9 +62,9 @@
   Accounting: ON
   Enforcement: ON
   Inode #XXX (1 blocks, 1 extents)
-Blocks grace time: [7 days]
-Inodes grace time: [7 days]
-Realtime Blocks grace time: [7 days]
+Blocks grace time: [--------]
+Inodes grace time: [--------]
+Realtime Blocks grace time: [--------]
 == Options: usrquota,prjquota,rw ==
 User quota state on SCRATCH_MNT (SCRATCH_DEV)
   Accounting: ON
@@ -98,9 +98,9 @@
   Accounting: OFF
   Enforcement: OFF
   Inode: N/A
-Blocks grace time: [7 days]
-Inodes grace time: [7 days]
-Realtime Blocks grace time: [7 days]
+Blocks grace time: [--------]
+Inodes grace time: [--------]
+Realtime Blocks grace time: [--------]
 == Options: grpquota,rw ==
 User quota state on SCRATCH_MNT (SCRATCH_DEV)
   Accounting: OFF
@@ -114,9 +114,9 @@
   Accounting: OFF
   Enforcement: OFF
   Inode: N/A
-Blocks grace time: [7 days]
-Inodes grace time: [7 days]
-Realtime Blocks grace time: [7 days]
+Blocks grace time: [--------]
+Inodes grace time: [--------]
+Realtime Blocks grace time: [--------]
 == Options: usrquota,grpquota,rw ==
 User quota state on SCRATCH_MNT (SCRATCH_DEV)
   Accounting: ON
@@ -146,9 +146,9 @@
   Accounting: ON
   Enforcement: ON
   Inode #XXX (1 blocks, 1 extents)
-Blocks grace time: [7 days]
-Inodes grace time: [7 days]
-Realtime Blocks grace time: [7 days]
+Blocks grace time: [--------]
+Inodes grace time: [--------]
+Realtime Blocks grace time: [--------]
 == Options: usrquota,prjquota,rw ==
 User quota state on SCRATCH_MNT (SCRATCH_DEV)
   Accounting: ON
@@ -178,9 +178,9 @@
   Accounting: ON
   Enforcement: ON
   Inode #XXX (1 blocks, 1 extents)
-Blocks grace time: [7 days]
-Inodes grace time: [7 days]
-Realtime Blocks grace time: [7 days]
+Blocks grace time: [--------]
+Inodes grace time: [--------]
+Realtime Blocks grace time: [--------]
 == Options: usrquota,grpquota,prjquota,rw ==
 User quota state on SCRATCH_MNT (SCRATCH_DEV)
   Accounting: ON
Eric Sandeen May 20, 2020, 3:46 p.m. UTC | #2
On 5/20/20 10:39 AM, Darrick J. Wong wrote:
> On Mon, May 18, 2020 at 02:59:01PM -0500, Eric Sandeen wrote:
>> This collects zorro's outstanding patch to test per-type quota
>> timers, as well as one test from darrick to test limit survival
>> after quotacheck,  plus 2 more from me to test grace time extension.
>>
>> zorro's still needs ENOSPC vs. EDQUOT filtering, darrick's might
>> need to be made generic, and mine are new.
> 
> Err, I saw the following quota fstests regressions overnight.  Are these
> expected?  Note that I didn't patch any of the userspace, nor have I
> added any of the tests in this series...

hrmph, let me dig into this.  I'm not actually sure.
sorry,
-Eric