diff options
author | David Spisla <david.spisla@iternity.com> | 2020-02-25 10:57:36 +0100 |
---|---|---|
committer | Amar Tumballi <amar@kadalu.io> | 2020-03-17 04:24:14 +0000 |
commit | 476139c962c298b2d00a3d42b90632fc25401526 (patch) | |
tree | bf4ee55352605542e1d9a646844e90945bc01ab6 /tests/features/worm.t | |
parent | b30f76980fc5d01b569d9409b68d24d809444ff8 (diff) |
WORM-Xlator: Initial write of a file succeeds if auto-commit-period 0
If worm-file-level enabled and auto-commit-period 0 an initial write
of a file (e.g. $ echo test >> file1.txt) would lead to an zero byte
file because the WORM xlator immediately WORMed the file when it was
created.
To avoid this we move the setting of trusted.worm_file from
worm_create_cbk to worm_release . This means that this xattr will set
when the filehandle is closed and all initial WRITE FOPs succeed.
Finally we also perform gf_worm_state_transition in worm_release to
ensure that the file will be immediately WORMed after the file handle
was closed.
Change-Id: I5d02e18975b646ca1a27ed41d836e9d0dc333204
Fixes: bz#1808421
Signed-off-by: David Spisla <david.spisla@iternity.com>
Diffstat (limited to 'tests/features/worm.t')
-rwxr-xr-x | tests/features/worm.t | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/tests/features/worm.t b/tests/features/worm.t index 8b2574c8a47..168d326571b 100755 --- a/tests/features/worm.t +++ b/tests/features/worm.t @@ -72,6 +72,14 @@ sleep 10 TEST `echo "worm 1" >> $M0/file4` TEST ! rm -f $M0/file4 +## Test for state transition if auto-commit-period is 0 +TEST $CLI volume set $V0 features.auto-commit-period 0 +TEST `echo "worm 1" > $M0/file5` +EXPECT '3/10/0' echo $(getfattr -e text --absolute-names --only-value -n "trusted.reten_state" $B0/${V0}1/file5) +EXPECT 'worm 1' cat $M0/file5 +TEST ! rm -f $M0/file5 +TEST $CLI volume set $V0 features.auto-commit-period 5 + ## Test for checking if retention-period is updated on increasing the access time of a WORM-RETAINED file. TEST $CLI volume set $V0 features.worm-files-deletable 1 TEST `echo "worm 1" >> $M0/file1` |