Bug 1438810 - File-level WORM allows ftruncate() on read-only files
Summary: File-level WORM allows ftruncate() on read-only files
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: GlusterFS
Classification: Community
Component: unclassified
Version: mainline
Hardware: x86_64
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: Karthik U S
QA Contact:
URL:
Whiteboard: worm
Depends On:
Blocks: 1437763 1439112
TreeView+ depends on / blocked
 
Reported: 2017-04-04 13:19 UTC by Karthik U S
Modified: 2017-05-30 18:49 UTC (History)
3 users (show)

Fixed In Version: glusterfs-3.11.0
Clone Of: 1437763
Environment:
Last Closed: 2017-05-30 18:49:22 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github #123 0 None None None 2017-04-04 13:19:45 UTC

Description Karthik U S 2017-04-04 13:19:45 UTC
+++ This bug was initially created as a clone of Bug #1437763 +++

Description of problem:

file is truncated on File level WORM volume.

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


How reproducible:


Steps to Reproduce:
1. create worm volume (File Level)
$ gluster volume create vol_repl gm0604:/home/glu_test
$ gluster volume set vol_repl features.worm-file-level "on"
$ gluster volume set vol_repl features.worm "off"
$ gluster volume set vol_repl features.auto-commit-period 1
$ gluster volume set vol_repl features.retention-mode relax
$ gluster volume start vol_repl
$ mount -t glusterfs -o worm gm0604:/vol_repl /home/glu_gate

Volume Name: vol_repl
Type: Distribute
Volume ID: 603d32ef-9290-423d-8a66-20776d4ef252
Status: Started
Snapshot Count: 0
Number of Bricks: 1
Transport-type: tcp
Bricks:
Brick1: gm0604:/home/glu_test
Options Reconfigured:
nfs.disable: on
performance.readdir-ahead: on
transport.address-family: inet
features.worm-file-level: on
features.worm: off
features.auto-commit-period: 1
features.retention-mode: relax

2. create file on WORM volume (File Level)
$ cd /home/glu_gate
$ ls -l / > test1
$ ls -l
total 2
-rw-r--r-- 1 root root 1786 Feb 17 09:16 test1

3. delete or overwrite a file on WORM volume (File Level)
$ rm test1
rm: remove regular file 'test1'? y
rm: cannot remove 'test1': Read-only file system
$ ls -l / > test1
ls: write error: Read-only file system
$ ls -l
total 0
-rw-r--r-- 1 root root 0 Feb 17 09:16 test1

Actual results:
- the file should not be changed.

Expected results:
- the file should not be truncated.

Additional info:

--- Additional comment from Geunmoon Oh on 2017-03-31 02:38:28 EDT ---

i corrected some explanation.

Actual results:
- the file was truncated.

Related github issue:
https://github.com/gluster/glusterfs/issues/123

Comment 1 Worker Ant 2017-04-04 13:37:07 UTC
REVIEW: https://review.gluster.org/16995 (features/worm: Adding implementation for ftruncate) posted (#1) for review on master by Karthik U S (ksubrahm)

Comment 2 Worker Ant 2017-04-04 13:41:47 UTC
REVIEW: https://review.gluster.org/16995 (features/worm: Adding implementation for ftruncate) posted (#2) for review on master by Karthik U S (ksubrahm)

Comment 3 Worker Ant 2017-04-05 08:11:54 UTC
COMMIT: https://review.gluster.org/16995 committed in master by Niels de Vos (ndevos) 
------
commit c5a4a77848024d2adf8cd4f35d550ba90c174fc7
Author: karthik-us <ksubrahm>
Date:   Tue Apr 4 18:57:32 2017 +0530

    features/worm: Adding implementation for ftruncate
    
    Problem:
    Since the ftruncate fop was not handled in the worm feature, when
    truncate and write was happening on a worm-retained/worm file, it was
    giving the EROFS error but truncating the file, which is not correct.
    
    Change-Id: I1a7e904655210d78bce9e01652ac56f3783b5aed
    BUG: 1438810
    Signed-off-by: karthik-us <ksubrahm>
    Reviewed-on: https://review.gluster.org/16995
    NetBSD-regression: NetBSD Build System <jenkins.org>
    Reviewed-by: Niels de Vos <ndevos>
    CentOS-regression: Gluster Build System <jenkins.org>
    Reviewed-by: Ravishankar N <ravishankar>
    Smoke: Gluster Build System <jenkins.org>
    Reviewed-by: Amar Tumballi <amarts>
    Reviewed-by: Raghavendra Talur <rtalur>

Comment 4 Shyamsundar 2017-05-30 18:49:22 UTC
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.11.0, please open a new bug report.

glusterfs-3.11.0 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution.

[1] http://lists.gluster.org/pipermail/announce/2017-May/000073.html
[2] https://www.gluster.org/pipermail/gluster-users/


Note You need to log in before you can comment on or make changes to this bug.