Bug 1225709 - [RFE] Move signing trigger mechanism to [f]setxattr()
Summary: [RFE] Move signing trigger mechanism to [f]setxattr()
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: GlusterFS
Classification: Community
Component: bitrot
Version: 3.7.0
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Venky Shankar
QA Contact: RajeshReddy
bugs@gluster.org
URL:
Whiteboard:
Depends On: 1224600
Blocks: glusterfs-3.7.1 1227198
TreeView+ depends on / blocked
 
Reported: 2015-05-28 04:18 UTC by Venky Shankar
Modified: 2016-07-13 22:34 UTC (History)
5 users (show)

Fixed In Version: glusterfs-3.7.1
Doc Type: Bug Fix
Doc Text:
Clone Of: 1224600
: 1227198 (view as bug list)
Environment:
Last Closed: 2015-06-02 08:03:40 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)

Description Venky Shankar 2015-05-28 04:18:21 UTC
+++ This bug was initially created as a clone of Bug #1224600 +++

Description of problem:
Currently triggering signing for a file (explicit signing by bitd) is based on overloading writev(). This is a bit dangerous and not clean. Better to move it to setxattr() path (with a special key identified by bitd and stub).

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

--- Additional comment from Anand Avati on 2015-05-27 07:57:29 EDT ---

REVIEW: http://review.gluster.org/10942 (features/bitrot: stub improvements and fixes) posted (#1) for review on master by Venky Shankar (vshankar)

Comment 1 Anand Avati 2015-05-28 04:20:31 UTC
REVIEW: http://review.gluster.org/10953 (features/bitrot: stub improvements and fixes) posted (#1) for review on release-3.7 by Venky Shankar (vshankar)

Comment 2 Anand Avati 2015-05-31 04:12:52 UTC
COMMIT: http://review.gluster.org/10953 committed in release-3.7 by Venky Shankar (vshankar) 
------
commit 5e1f8629b15568ca43587fbf2d97dafc4491defe
Author: Venky Shankar <vshankar>
Date:   Tue May 26 21:51:31 2015 +0530

    features/bitrot: stub improvements and fixes
    
    This patch refactors the signing trigger mechanism used by bitrot
    daemon as a "catch up" meachanism to sign files which _missed_
    signing on the last run either due to bitrot being disabled and
    enabled again or if bitrot is enabled for a volume with existing
    data.
    
    Existing implementation relies on overloading writev() to trigger
    signing which just by the looks sounded dangerous and I hated it
    to the core. This change moves all that business to the setxattr
    interface thereby keeping the writev path strictly for client
    IO.
    
    Why not use IPC fop to trigger signing?
    There's a need to access the object's inode to perform various
    maintainance operations. inode is not _directly_ accessible in
    the IPC fop (although, it can be found via inode_grep() for the
    object's GFID - the inode just needs to be pinned in memory,
    which is the case if there's an active fd on the inode). This
    patch relies on good old technique of overloading fsetxattr()
    to do the job instead of using IPC fop.
    
    There are some pretty nice cleanups along the lines of memory
    deallocations, unncessary allocations and redundant ref()ing
    of structures (such as fd's) provided by this patch. All in
    all - much improved code navigation.
    
    Change-Id: Id93fe90b1618802d1a95a5072517dac342b96cb8
    BUG: 1225709
    Signed-off-by: Venky Shankar <vshankar>
    Reviewed-on: http://review.gluster.org/10953
    Tested-by: Gluster Build System <jenkins.com>
    Tested-by: NetBSD Build System <jenkins.org>

Comment 3 Niels de Vos 2015-06-02 08:03:40 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.7.1, please reopen this bug report.

glusterfs-3.7.1 has been announced on the Gluster Packaging mailinglist [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://thread.gmane.org/gmane.comp.file-systems.gluster.packaging/1
[2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user


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