Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-3713

Failure on test suite sanity test_17k: get_xattr_names: llistxattr failed

Details

    • Bug
    • Resolution: Duplicate
    • Blocker
    • None
    • Lustre 2.5.0
    • server and client: lustre-master build #1592
    • 3
    • 9563

    Description

      This issue was created by maloo for sarah <sarah@whamcloud.com>

      This issue relates to the following test suite run: http://maloo.whamcloud.com/test_sets/06ab5688-fb67-11e2-8c6e-52540035b04c.

      The sub-test test_17k failed with the following error:

      rsync failed with xattrs enabled

      test log:

      == sanity test 17k: symlinks: rsync with xattrs enabled =========================== 15:23:56 (1375309436)
      sending incremental file list
      rsync: get_xattr_names: llistxattr(".",1024) failed: No data available (61)
      
      sent 18 bytes  received 12 bytes  60.00 bytes/sec
      total size is 0  speedup is 0.00
      rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]
       sanity test_17k: @@@@@@ FAIL: rsync failed with xattrs enabled 
      

      Attachments

        Issue Links

          Activity

            [LU-3713] Failure on test suite sanity test_17k: get_xattr_names: llistxattr failed
            pjones Peter Jones added a comment -

            This fix is being tracked under LU-3669

            pjones Peter Jones added a comment - This fix is being tracked under LU-3669

            This bug is currently causing failures on ZFS on the following:
            conf-sanity/61
            replay-single/58c
            sanityn/14[acd]
            sanityn/25a
            sanityn/72-73
            sanity/17k (obv)
            sanity/102[abcfhj]
            sanity/102ha
            sanity/103
            sanity/125
            sanity/154a
            sanity/162
            sanity/226a

            utopiabound Nathaniel Clark added a comment - This bug is currently causing failures on ZFS on the following: conf-sanity/61 replay-single/58c sanityn/14 [acd] sanityn/25a sanityn/72-73 sanity/17k (obv) sanity/102 [abcfhj] sanity/102ha sanity/103 sanity/125 sanity/154a sanity/162 sanity/226a
            pjones Peter Jones added a comment -

            Thanks Panda! Hongchao, could you please take care of this patch?

            pjones Peter Jones added a comment - Thanks Panda! Hongchao, could you please take care of this patch?
            panda Andrew Perepechko added a comment - Updated http://review.whamcloud.com/#/c/7208/

            I will update http://review.whamcloud.com/#/c/7208/ with a fix for listxattr/getxattr in MDT, since there would be some overlap between the patches anyway.

            panda Andrew Perepechko added a comment - I will update http://review.whamcloud.com/#/c/7208/ with a fix for listxattr/getxattr in MDT, since there would be some overlap between the patches anyway.
            panda Andrew Perepechko added a comment - - edited

            Hm, osd-zfs/osd_xattr.c:osd_xattr_list() changes lb->lb_buf ignoring that it's not its internal variable and may have a side-effect.

            int osd_xattr_list(const struct lu_env *env, struct dt_object *dt,
                            struct lu_buf *lb, struct lustre_capa *capa)
            {
            ...
                                    lb->lb_buf += rc;
            ...
                                    lb->lb_buf++;
            ...
            }
            

            The MDT code expects that lb_buf points to the beginning of the buffer with EA names, which is likely to be the same as the input, but may be different.

            panda Andrew Perepechko added a comment - - edited Hm, osd-zfs/osd_xattr.c:osd_xattr_list() changes lb->lb_buf ignoring that it's not its internal variable and may have a side-effect. int osd_xattr_list( const struct lu_env *env, struct dt_object *dt, struct lu_buf *lb, struct lustre_capa *capa) { ... lb->lb_buf += rc; ... lb->lb_buf++; ... } The MDT code expects that lb_buf points to the beginning of the buffer with EA names, which is likely to be the same as the input, but may be different.
            panda Andrew Perepechko added a comment - - edited

            That looks like a bug somewhere in osd:

            00000004:00000001:0.0:1375316763.193530:0:11801:0:(mdt_xattr.c:175:mdt_getxattr()) Process entered
            00000004:00000002:0.0:1375316763.193532:0:11801:0:(mdt_xattr.c:180:mdt_getxattr()) getxattr [0x200000bd1:0x183:0x0]
            00000004:00000001:0.0:1375316763.193535:0:11801:0:(mdt_lib.c:419:old_init_ucred()) Process entered
            ...
            00000004:00000001:0.0:1375316763.193683:0:11801:0:(mdd_object.c:326:mdd_xattr_list()) Process entered
            00080000:00000001:0.0:1375316763.193687:0:11801:0:(osd_xattr.c:765:osd_xattr_list()) Process entered
            00080000:00000001:0.0:1375316763.193690:0:11801:0:(osd_xattr.c:781:osd_xattr_list()) Process leaving via out (rc=53 : 53 : 0x35)
            00080000:00000001:0.0:1375316763.193692:0:11801:0:(osd_xattr.c:814:osd_xattr_list()) Process leaving (rc=53 : 53 : 35)
            00000004:00000001:0.0:1375316763.193693:0:11801:0:(mdd_object.c:332:mdd_xattr_list()) Process leaving (rc=53 : 53 : 35)
            00000004:00000001:0.0:1375316763.193711:0:11801:0:(mdt_xattr.c:128:mdt_getxattr_one()) Process entered
            00000004:00000002:0.0:1375316763.193712:0:11801:0:(mdt_xattr.c:130:mdt_getxattr_one()) getxattr 
            00000004:00000001:0.0:1375316763.193713:0:11801:0:(mdd_object.c:268:mdd_xattr_get()) Process entered
            00000004:00000001:0.0:1375316763.193715:0:11801:0:(lod_object.c:370:lod_xattr_get()) Process entered
            00080000:00000001:0.0:1375316763.193716:0:11801:0:(osd_xattr.c:242:osd_xattr_get()) Process entered
            00080000:00000001:0.0:1375316763.193718:0:11801:0:(osd_xattr.c:256:osd_xattr_get()) Process leaving (rc=18446744073709551555 : -61 : ffffffffffffffc3)
            00000004:00000001:0.0:1375316763.193720:0:11801:0:(lod_object.c:374:lod_xattr_get()) Process leaving (rc=18446744073709551555 : -61 : ffffffffffffffc3)
            00000004:00000001:0.0:1375316763.193721:0:11801:0:(mdd_object.c:287:mdd_xattr_get()) Process leaving (rc=18446744073709551555 : -61 : ffffffffffffffc3)
            00000004:00020000:0.0:1375316763.193723:0:11801:0:(mdt_xattr.c:134:mdt_getxattr_one()) getxattr failed: -61
            00000004:00000001:0.0:1375316763.194795:0:11801:0:(mdt_xattr.c:135:mdt_getxattr_one()) Process leaving via out (rc=18446744073709551555 : -61 : 0xffffffffffffffc3)
            00000004:00000001:0.0:1375316763.194798:0:11801:0:(mdt_xattr.c:264:mdt_getxattr()) Process leaving via out (rc=18446744073709551555 : -61 : 0xffffffffffffffc3)
            
            

            osd tells that it filled out a buffer of 53 bytes of EA names, but osd_xattr_get() for the first item returns -ENODATA.

            panda Andrew Perepechko added a comment - - edited That looks like a bug somewhere in osd: 00000004:00000001:0.0:1375316763.193530:0:11801:0:(mdt_xattr.c:175:mdt_getxattr()) Process entered 00000004:00000002:0.0:1375316763.193532:0:11801:0:(mdt_xattr.c:180:mdt_getxattr()) getxattr [0x200000bd1:0x183:0x0] 00000004:00000001:0.0:1375316763.193535:0:11801:0:(mdt_lib.c:419:old_init_ucred()) Process entered ... 00000004:00000001:0.0:1375316763.193683:0:11801:0:(mdd_object.c:326:mdd_xattr_list()) Process entered 00080000:00000001:0.0:1375316763.193687:0:11801:0:(osd_xattr.c:765:osd_xattr_list()) Process entered 00080000:00000001:0.0:1375316763.193690:0:11801:0:(osd_xattr.c:781:osd_xattr_list()) Process leaving via out (rc=53 : 53 : 0x35) 00080000:00000001:0.0:1375316763.193692:0:11801:0:(osd_xattr.c:814:osd_xattr_list()) Process leaving (rc=53 : 53 : 35) 00000004:00000001:0.0:1375316763.193693:0:11801:0:(mdd_object.c:332:mdd_xattr_list()) Process leaving (rc=53 : 53 : 35) 00000004:00000001:0.0:1375316763.193711:0:11801:0:(mdt_xattr.c:128:mdt_getxattr_one()) Process entered 00000004:00000002:0.0:1375316763.193712:0:11801:0:(mdt_xattr.c:130:mdt_getxattr_one()) getxattr 00000004:00000001:0.0:1375316763.193713:0:11801:0:(mdd_object.c:268:mdd_xattr_get()) Process entered 00000004:00000001:0.0:1375316763.193715:0:11801:0:(lod_object.c:370:lod_xattr_get()) Process entered 00080000:00000001:0.0:1375316763.193716:0:11801:0:(osd_xattr.c:242:osd_xattr_get()) Process entered 00080000:00000001:0.0:1375316763.193718:0:11801:0:(osd_xattr.c:256:osd_xattr_get()) Process leaving (rc=18446744073709551555 : -61 : ffffffffffffffc3) 00000004:00000001:0.0:1375316763.193720:0:11801:0:(lod_object.c:374:lod_xattr_get()) Process leaving (rc=18446744073709551555 : -61 : ffffffffffffffc3) 00000004:00000001:0.0:1375316763.193721:0:11801:0:(mdd_object.c:287:mdd_xattr_get()) Process leaving (rc=18446744073709551555 : -61 : ffffffffffffffc3) 00000004:00020000:0.0:1375316763.193723:0:11801:0:(mdt_xattr.c:134:mdt_getxattr_one()) getxattr failed: -61 00000004:00000001:0.0:1375316763.194795:0:11801:0:(mdt_xattr.c:135:mdt_getxattr_one()) Process leaving via out (rc=18446744073709551555 : -61 : 0xffffffffffffffc3) 00000004:00000001:0.0:1375316763.194798:0:11801:0:(mdt_xattr.c:264:mdt_getxattr()) Process leaving via out (rc=18446744073709551555 : -61 : 0xffffffffffffffc3) osd tells that it filled out a buffer of 53 bytes of EA names, but osd_xattr_get() for the first item returns -ENODATA.

            People

              hongchao.zhang Hongchao Zhang
              maloo Maloo
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: