<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>The test is failing on master without any patches:</p>
    <tt>[root@tuxpad glusterfs]# prove tests/bugs/bug-1371806_1.t</tt><tt><br>
    </tt><tt>tests/bugs/bug-1371806_1.t .. 7/9 setfattr: ./tmp1: No such
      file or directory</tt><tt><br>
    </tt><tt>setfattr: ./tmp2: No such file or directory</tt><tt><br>
    </tt><tt>setfattr: ./tmp3: No such file or directory</tt><tt><br>
    </tt><tt>setfattr: ./tmp4: No such file or directory</tt><tt><br>
    </tt><tt>setfattr: ./tmp5: No such file or directory</tt><tt><br>
    </tt><tt>setfattr: ./tmp6: No such file or directory</tt><tt><br>
    </tt><tt>setfattr: ./tmp7: No such file or directory</tt><tt><br>
    </tt><tt>setfattr: ./tmp8: No such file or directory</tt><tt><br>
    </tt><tt>setfattr: ./tmp9: No such file or directory</tt><tt><br>
    </tt><tt>setfattr: ./tmp10: No such file or directory</tt><tt><br>
    </tt><tt>./tmp1: user.foo: No such attribute</tt><tt><br>
    </tt><tt>tests/bugs/bug-1371806_1.t .. Failed 2/9 subtests</tt><tt><br>
    </tt><br>
    Mount log for one of the directories:<br>
    <tt>[2017-10-06 05:32:10.059798] I [MSGID: 109005]
      [dht-selfheal.c:2458:dht_selfheal_directory] 0-patchy-dht:
      Directory selfheal failed: Unable to form layout for directory
      /tmp1</tt><tt><br>
    </tt><tt>[2017-10-06 05:32:10.060013] E [MSGID: 109011]
      [dht-common.c:5011:dht_dir_common_setxattr] 0-patchy-dht: Failed
      to get mds subvol for path /tmp1gfid is
      00000000-0000-0000-0000-000000000000</tt><tt><br>
    </tt><tt>[2017-10-06 05:32:10.060041] W
      [fuse-bridge.c:1377:fuse_err_cbk] 0-glusterfs-fuse: 99: SETXATTR()
      /tmp1 =&gt; -1 (No such file or directory)</tt><br>
    <br>
    Request the patch authors to take a look at it.<br>
    Thanks<br>
    Ravi<br>
    <br>
    <div class="moz-cite-prefix">On 10/05/2017 06:04 PM, Atin Mukherjee
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAGNCGH34XBbNMvu9y-VuxOJ3SZuFVbGs6cMncHGtLmEvf7ms_g@mail.gmail.com">
      <div dir="ltr">The following commit has broken the brick
        multiplexing regression job. tests/bugs/bug-1371806_1.t has
        failed couple of times.  One of the latest regression job report
        is at <a
href="https://build.gluster.org/job/regression-test-with-multiplex/406/console"
          moz-do-not-send="true">https://build.gluster.org/job/regression-test-with-multiplex/406/console</a>
        .<br>
        <br>
        <br>
        commit 9b4de61a136b8e5ba7bf0e48690cdb1292d0dee8<br>
        Author: Mohit Agrawal &lt;<a href="mailto:moagrawa@redhat.com"
          moz-do-not-send="true">moagrawa@redhat.com</a>&gt;<br>
        Date:   Fri May 12 21:12:47 2017 +0530<br>
        <br>
            cluster/dht : User xattrs are not healed after brick
        stop/start<br>
            <br>
            Problem: In a distributed volume custom extended attribute
        value for a directory<br>
                     does not display correct value after stop/start or
        added newly brick.<br>
                     If any extended(acl) attribute value is set for a
        directory after stop/added<br>
                     the brick the attribute(user|acl|quota) value is
        not updated on brick<br>
                     after start the brick.<br>
            <br>
            Solution: First store hashed subvol or subvol(has internal
        xattr) on inode ctx and<br>
                      consider it as a MDS subvol.At the time of update
        custom xattr<br>
                      (user,quota,acl, selinux) on directory first check
        the mds from<br>
                      inode ctx, if mds is not present on inode ctx then
        throw EINVAL error<br>
                      to application otherwise set xattr on MDS subvol
        with internal xattr<br>
                      value of -1 and then try to update the attribute
        on other non MDS<br>
                      volumes also.If mds subvol is down in that case
        throw an<br>
                      error "Transport endpoint is not connected". In
        dht_dir_lookup_cbk|<br>
                      dht_revalidate_cbk|dht_discover_complete call
        dht_call_dir_xattr_heal<br>
                      to heal custom extended attribute.<br>
                      In case of gnfs server if hashed subvol has not
        found based on<br>
                      loc then wind a call on all subvol to update
        xattr.<br>
            <br>
            Fix:    1) Save MDS subvol on inode ctx<br>
                    2) Check if mds subvol is present on inode ctx<br>
                    3) If mds subvol is down then call unwind with error
        ENOTCONN and if it is up<br>
                       then set new xattr "GF_DHT_XATTR_MDS" to -1 and
        wind a call on other<br>
                       subvol.<br>
                    4) If setxattr fop is successful on non-mds subvol
        then increment the value of<br>
                       internal xattr to +1<br>
                    5) At the time of directory_lookup check the value
        of new xattr GF_DHT_XATTR_MDS<br>
                    6) If value is not 0 in dht_lookup_dir_cbk(other
        cbk) functions then call heal<br>
                       function to heal user xattr<br>
                    7) syncop_setxattr on hashed_subvol to reset the
        value of xattr to 0<br>
                       if heal is successful on all subvol.<br>
            <br>
            Test : To reproduce the issue followed below steps<br>
                   1) Create a distributed volume and create mount point<br>
                   2) Create some directory from mount point mkdir
        tmp{1..5}<br>
                   3) Kill any one brick from the volume<br>
                   4) Set extended attribute from mount point on
        directory<br>
                      setfattr -n user.foo -v "abc" ./tmp{1..5}<br>
                      It will throw error " Transport End point is not
        connected "<br>
                      for those hashed subvol is down<br>
                   5) Start volume with force option to start brick
        process<br>
                   6) Execute getfattr command on mount point for
        directory<br>
                   7) Check extended attribute on brick<br>
                      getfattr -n user.foo
        &lt;volume-location&gt;/tmp{1..5}<br>
                      It shows correct value for directories for those<br>
                      xattr fop were executed successfully.<br>
            <br>
            Note: The patch will resolve xattr healing problem only for
        fuse mount<br>
                  not for nfs mount.<br>
            <br>
            BUG: 1371806<br>
            Signed-off-by: Mohit Agrawal &lt;<a
          href="mailto:moagrawa@redhat.com" moz-do-not-send="true">moagrawa@redhat.com</a>&gt;<br>
            <br>
            Change-Id: I4eb137eace24a8cb796712b742f1d177a65343d5<br>
        <br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Gluster-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Gluster-devel@gluster.org">Gluster-devel@gluster.org</a>
<a class="moz-txt-link-freetext" href="http://lists.gluster.org/mailman/listinfo/gluster-devel">http://lists.gluster.org/mailman/listinfo/gluster-devel</a></pre>
    </blockquote>
    <br>
  </body>
</html>