Bug 1202270 - Disperse volume: trusted.ec.version xattr lost when heal is invoked from the client
Summary: Disperse volume: trusted.ec.version xattr lost when heal is invoked from the ...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: GlusterFS
Classification: Community
Component: disperse
Version: mainline
Hardware: Unspecified
OS: Unspecified
unspecified
urgent
Target Milestone: ---
Assignee: Pranith Kumar K
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks: qe_tracker_everglades 1224130
TreeView+ depends on / blocked
 
Reported: 2015-03-16 09:29 UTC by Bhaskarakiran
Modified: 2016-11-23 23:13 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
: 1224130 (view as bug list)
Environment:
Last Closed: 2016-06-17 01:06:56 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)
sosreport of Node1 (16.18 MB, application/x-xz)
2015-03-16 09:34 UTC, Bhaskarakiran
no flags Details
sosreport of client (8.12 MB, application/x-xz)
2015-03-16 12:09 UTC, Bhaskarakiran
no flags Details

Description Bhaskarakiran 2015-03-16 09:29:32 UTC
Description of problem:
======================
xattrop trusted.ec.version on the brick is getting lost after the heal is invoked from the client. 2 of the bricks were brought down and let the IO run for some time in a 1x(8+4) disperse volume. Brought back the bricks by 'gluster v start force' command. Triggered heal from command using "find /mnt/nfs/ -d -exec getfattr -h -n trusted.ec.heal {} \;" and saw that the xattrs are lost on the bricks and the heal gets stuck.

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

[root@vertigo ~]# gluster --version
glusterfs 3.7dev built on Mar 12 2015 01:40:59
Repository revision: git://git.gluster.com/glusterfs.git
Copyright (c) 2006-2011 Gluster Inc. <http://www.gluster.com>
GlusterFS comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GlusterFS under the terms of the GNU General Public License.
[root@vertigo ~]# 

How reproducible:
=================
100%

Steps to Reproduce:
1. Create a disperse volume say 1x(8+4).
2. start IO on the volume (files and directory creation)
3. Bring down 2 of the bricks and let the IO continue for some time.
4. Start the volume using force option
5. Trigger heal from client using :
   "find /mnt/nfs/ -d -exec getfattr -h -n trusted.ec.heal {} \;"
6. check the bricks xattr's using getfattr.

In general it should show as below :
   
[root@ninja ~]# getfattr  -d -e hex -m. /rhs/brick*/*
getfattr: Removing leading '/' from absolute path names
# file: rhs/brick1/b1
trusted.ec.version=0x000000000000000c
trusted.gfid=0x00000000000000000000000000000001
trusted.glusterfs.dht=0x000000010000000000000000ffffffff
trusted.glusterfs.quota.dirty=0x3000
trusted.glusterfs.quota.limit-set=0x0000000280000000ffffffffffffffff
trusted.glusterfs.quota.size=0x0000000000000000
trusted.glusterfs.volume-id=0x7393260c51d14dca8fc8e1f5ad6fee14

But after the heal is triggered :

[root@vertigo ~]# getfattr -d -e hex -m. /rhs/brick*/*
getfattr: Removing leading '/' from absolute path names
# file: rhs/brick1/b1
trusted.gfid=0x00000000000000000000000000000001
trusted.glusterfs.dht=0x000000010000000000000000ffffffff
trusted.glusterfs.quota.dirty=0x3000
trusted.glusterfs.quota.limit-set=0x0000000280000000ffffffffffffffff
trusted.glusterfs.quota.size=0x000000000021fe00
trusted.glusterfs.volume-id=0x7393260c51d14dca8fc8e1f5ad6fee14

Actual results:
===============
xattr is getting lost

Expected results:
=================
xattr should not be lost and heal should be successful

Additional info:
===============
sosreports are attached.

Gluster volume options:
=======================
[root@vertigo ~]# gluster v get testvol all
Option                                  Value                                   
------                                  -----                                   
cluster.lookup-unhashed                 on                                      
cluster.min-free-disk                   10%                                     
cluster.min-free-inodes                 5%                                      
cluster.rebalance-stats                 off                                     
cluster.subvols-per-directory           (null)                                  
cluster.readdir-optimize                off                                     
cluster.rsync-hash-regex                (null)                                  
cluster.extra-hash-regex                (null)                                  
cluster.dht-xattr-name                  trusted.glusterfs.dht                   
cluster.randomize-hash-range-by-gfid    off                                     
cluster.local-volume-name               (null)                                  
cluster.weighted-rebalance              on                                      
cluster.switch-pattern                  (null)                                  
cluster.entry-change-log                on                                      
cluster.read-subvolume                  (null)                                  
cluster.read-subvolume-index            -1                                      
cluster.read-hash-mode                  1                                       
cluster.background-self-heal-count      16                                      
cluster.metadata-self-heal              on                                      
cluster.data-self-heal                  on                                      
cluster.entry-self-heal                 on                                      
cluster.self-heal-daemon                on                                      
cluster.heal-timeout                    600                                     
cluster.self-heal-window-size           1                                       
cluster.data-change-log                 on                                      
cluster.metadata-change-log             on                                      
cluster.data-self-heal-algorithm        (null)                                  
cluster.eager-lock                      on                                      
cluster.quorum-type                     none                                    
cluster.quorum-count                    (null)                                  
cluster.choose-local                    true                                    
cluster.self-heal-readdir-size          1KB                                     
cluster.post-op-delay-secs              1                                       
cluster.ensure-durability               on                                      
cluster.stripe-block-size               128KB                                   
cluster.stripe-coalesce                 true                                    
diagnostics.latency-measurement         off                                     
diagnostics.dump-fd-stats               off                                     
diagnostics.count-fop-hits              off                                     
diagnostics.brick-log-level             INFO                                    
diagnostics.client-log-level            INFO                                    
diagnostics.brick-sys-log-level         CRITICAL                                
diagnostics.client-sys-log-level        CRITICAL                                
diagnostics.brick-logger                (null)                                  
diagnostics.client-logger               (null)                                  
diagnostics.brick-log-format            (null)                                  
diagnostics.client-log-format           (null)                                  
diagnostics.brick-log-buf-size          5                                       
diagnostics.client-log-buf-size         5                                       
diagnostics.brick-log-flush-timeout     120                                     
diagnostics.client-log-flush-timeout    120                                     
performance.cache-max-file-size         0                                       
performance.cache-min-file-size         0                                       
performance.cache-refresh-timeout       1                                       
performance.cache-priority                                                      
performance.cache-size                  32MB                                    
performance.io-thread-count             16                                      
performance.high-prio-threads           16                                      
performance.normal-prio-threads         16                                      
performance.low-prio-threads            16                                      
performance.least-prio-threads          1                                       
performance.enable-least-priority       on                                      
performance.least-rate-limit            0                                       
performance.cache-size                  128MB                                   
performance.flush-behind                on                                      
performance.nfs.flush-behind            on                                      
performance.write-behind-window-size    1MB                                     
performance.nfs.write-behind-window-size1MB                                     
performance.strict-o-direct             off                                     
performance.nfs.strict-o-direct         off                                     
performance.strict-write-ordering       off                                     
performance.nfs.strict-write-ordering   off                                     
performance.lazy-open                   yes                                     
performance.read-after-open             no                                      
performance.read-ahead-page-count       4                                       
performance.md-cache-timeout            1                                       
features.encryption                     off                                     
encryption.master-key                   (null)                                  
encryption.data-key-size                256                                     
encryption.block-size                   4096                                    
network.frame-timeout                   1800                                    
network.ping-timeout                    42                                      
network.tcp-window-size                 (null)                                  
features.lock-heal                      off                                     
features.grace-timeout                  10                                      
network.remote-dio                      disable                                 
client.event-threads                    2                                       
network.tcp-window-size                 (null)                                  
network.inode-lru-limit                 16384                                   
auth.allow                              *                                       
auth.reject                             (null)                                  
transport.keepalive                     (null)                                  
server.allow-insecure                   (null)                                  
server.root-squash                      off                                     
server.anonuid                          65534                                   
server.anongid                          65534                                   
server.statedump-path                   /var/run/gluster                        
server.outstanding-rpc-limit            64                                      
features.lock-heal                      off                                     
features.grace-timeout                  (null)                                  
server.ssl                              (null)                                  
auth.ssl-allow                          *                                       
server.manage-gids                      off                                     
client.send-gids                        on                                      
server.gid-timeout                      2                                       
server.own-thread                       (null)                                  
server.event-threads                    2                                       
performance.write-behind                on                                      
performance.read-ahead                  on                                      
performance.readdir-ahead               off                                     
performance.io-cache                    on                                      
performance.quick-read                  on                                      
performance.open-behind                 on                                      
performance.stat-prefetch               on                                      
performance.client-io-threads           off                                     
performance.nfs.write-behind            on                                      
performance.nfs.read-ahead              off                                     
performance.nfs.io-cache                off                                     
performance.nfs.quick-read              off                                     
performance.nfs.stat-prefetch           off                                     
performance.nfs.io-threads              off                                     
performance.force-readdirp              true                                    
features.file-snapshot                  off                                     
features.uss                            on                                      
features.snapshot-directory             .snaps                                  
features.show-snapshot-directory        off                                     
network.compression                     off                                     
network.compression.window-size         -15                                     
network.compression.mem-level           8                                       
network.compression.min-size            0                                       
network.compression.compression-level   -1                                      
network.compression.debug               false                                   
features.limit-usage                    (null)                                  
features.quota-timeout                  0                                       
features.default-soft-limit             80%                                     
features.soft-timeout                   60                                      
features.hard-timeout                   5                                       
features.alert-time                     86400                                   
features.quota-deem-statfs              off                                     
geo-replication.indexing                off                                     
geo-replication.indexing                off                                     
geo-replication.ignore-pid-check        off                                     
geo-replication.ignore-pid-check        off                                     
features.quota                          on                                      
debug.trace                             off                                     
debug.log-history                       no                                      
debug.log-file                          no                                      
debug.exclude-ops                       (null)                                  
debug.include-ops                       (null)                                  
debug.error-gen                         off                                     
debug.error-failure                     (null)                                  
debug.error-number                      (null)                                  
debug.random-failure                    off                                     
debug.error-fops                        (null)                                  
nfs.enable-ino32                        no                                      
nfs.mem-factor                          15                                      
nfs.export-dirs                         on                                      
nfs.export-volumes                      on                                      
nfs.addr-namelookup                     off                                     
nfs.dynamic-volumes                     off                                     
nfs.register-with-portmap               on                                      
nfs.outstanding-rpc-limit               16                                      
nfs.port                                2049                                    
nfs.rpc-auth-unix                       on                                      
nfs.rpc-auth-null                       on                                      
nfs.rpc-auth-allow                      all                                     
nfs.rpc-auth-reject                     none                                    
nfs.ports-insecure                      off                                     
nfs.trusted-sync                        off                                     
nfs.trusted-write                       off                                     
nfs.volume-access                       read-write                              
nfs.export-dir                                                                  
nfs.disable                             false                                   
nfs.nlm                                 on                                      
nfs.acl                                 on                                      
nfs.mount-udp                           off                                     
nfs.mount-rmtab                         /var/lib/glusterd/nfs/rmtab             
nfs.rpc-statd                           /sbin/rpc.statd                         
nfs.server-aux-gids                     off                                     
nfs.drc                                 off                                     
nfs.drc-size                            0x20000                                 
nfs.read-size                           (1 * 1048576ULL)                        
nfs.write-size                          (1 * 1048576ULL)                        
nfs.readdir-size                        (1 * 1048576ULL)                        
features.read-only                      off                                     
features.worm                           off                                     
storage.linux-aio                       off                                     
storage.batch-fsync-mode                reverse-fsync                           
storage.batch-fsync-delay-usec          0                                       
storage.owner-uid                       -1                                      
storage.owner-gid                       -1                                      
storage.node-uuid-pathinfo              off                                     
storage.health-check-interval           30                                      
storage.build-pgfid                     off                                     
storage.bd-aio                          off                                     
cluster.server-quorum-type              off                                     
cluster.server-quorum-ratio             0                                       
changelog.changelog                     off                                     
changelog.changelog-dir                 (null)                                  
changelog.encoding                      ascii                                   
changelog.rollover-time                 15                                      
changelog.fsync-interval                5                                       
changelog.changelog-barrier-timeout     120                                     
features.barrier                        disable                                 
features.barrier-timeout                120                                     
locks.trace                             (null)                                  
cluster.disperse-self-heal-daemon       enable                                  
cluster.quorum-reads                    no                                      
client.bind-insecure                    (null)                                  
[root@vertigo ~]# 


Gluster volume status and info:
===============================

[root@vertigo ~]# gluster v status
Status of volume: testvol
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick vertigo:/rhs/brick1/b1                49152     0          Y       18310
Brick ninja:/rhs/brick1/b1                  49152     0          Y       23975
Brick vertigo:/rhs/brick2/b2                49153     0          Y       18323
Brick ninja:/rhs/brick2/b2                  49153     0          Y       23988
Brick vertigo:/rhs/brick3/b3                49154     0          Y       19653
Brick ninja:/rhs/brick3/b3                  49154     0          Y       14341
Brick vertigo:/rhs/brick4/b4                49155     0          Y       19666
Brick ninja:/rhs/brick4/b4                  49155     0          Y       14354
Brick vertigo:/rhs/brick1/b1-1              49156     0          Y       19679
Brick ninja:/rhs/brick1/b1-1                49156     0          Y       14367
Brick vertigo:/rhs/brick2/b2-1              49157     0          Y       19692
Brick ninja:/rhs/brick2/b2-1                49157     0          Y       14380
Snapshot Daemon on localhost                49158     0          Y       21305
NFS Server on localhost                     2049      0          Y       27104
Quota Daemon on localhost                   N/A       N/A        Y       27123
Snapshot Daemon on ninja                    49158     0          Y       15763
NFS Server on ninja                         2049      0          Y       24002
Quota Daemon on ninja                       N/A       N/A        Y       24023
 
Task Status of Volume testvol
------------------------------------------------------------------------------
There are no active volume tasks
 
[root@vertigo ~]# gluster v info
 
Volume Name: testvol
Type: Disperse
Volume ID: 7393260c-51d1-4dca-8fc8-e1f5ad6fee14
Status: Started
Number of Bricks: 1 x (8 + 4) = 12
Transport-type: tcp
Bricks:
Brick1: vertigo:/rhs/brick1/b1
Brick2: ninja:/rhs/brick1/b1
Brick3: vertigo:/rhs/brick2/b2
Brick4: ninja:/rhs/brick2/b2
Brick5: vertigo:/rhs/brick3/b3
Brick6: ninja:/rhs/brick3/b3
Brick7: vertigo:/rhs/brick4/b4
Brick8: ninja:/rhs/brick4/b4
Brick9: vertigo:/rhs/brick1/b1-1
Brick10: ninja:/rhs/brick1/b1-1
Brick11: vertigo:/rhs/brick2/b2-1
Brick12: ninja:/rhs/brick2/b2-1
Options Reconfigured:
features.uss: on
client.event-threads: 2
server.event-threads: 2
features.quota: on
[root@vertigo ~]#

Comment 1 Bhaskarakiran 2015-03-16 09:34:53 UTC
Created attachment 1002166 [details]
sosreport of Node1

Comment 2 Bhaskarakiran 2015-03-16 12:09:50 UTC
Created attachment 1002238 [details]
sosreport of client

Comment 3 Pranith Kumar K 2015-03-17 02:53:56 UTC
Heal is not succeeding according to the logs attached:
[2015-03-16 07:27:45.385185] W [ec-common.c:162:ec_check_status] 0-testvol-disperse-0: Operation failed on some subvolumes (up=FFF, mask=FFA, remaining=0, good=FFA, bad=5)

Do you have the logs for the first and 3rd bricks?

Comment 4 Pranith Kumar K 2015-03-17 02:54:36 UTC
We need the logs of vertigo as well. Sosreports are attached for ninja only.

Comment 8 Niels de Vos 2016-06-16 16:47:20 UTC
Pranith, should this be CLOSED/DUPLICATE of 1215265 ?

Comment 9 Pranith Kumar K 2016-06-17 01:06:56 UTC
This bug got fixed as part of that bug, but it is not duplicate. So we should move it to CLOSED CURRENTRELEASE


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