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

osd-zfs: sanity-sec test_16, test_22: 27919 != 26845 + 1M after write

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • Lustre 2.8.0
    • Lustre 2.7.0
    • 3
    • 17497

    Description

      This issue was created by maloo for Isaac Huang <he.huang@intel.com>

      This issue relates to the following test suite run: https://testing.hpdd.intel.com/test_sets/f61d2cb6-b2a2-11e4-a8f5-5254006e85c2.

      The sub-test test_22 failed with the following error:

      27919 != 26845 + 1M after write
      

      It seemed that the test was using 4096 as blocksize for the ZFS OST to estimate quota, which would fail.

      On the client:

      [root@eagle-44vm2 ~]# cat /proc/fs/lustre/osc/lustre-OST0000-osc-ffff88007a5bb800/import
      import:
          name: lustre-OST0000-osc-ffff88007a5bb800
          target: lustre-OST0000_UUID
          state: FULL
          connect_flags: [ write_grant, server_lock, version, request_portal, truncate_lock, max_byte_per_rpc, early_lock_cancel, adaptive_timeouts, lru_resize, alt_checksum_algorithm, fid_is_enabled, version_recovery, full20, layout_lock, 64bithash, object_max_bytes, jobstats, einprogress, lvb_type, lfsck ]
          connect_data:
             flags: 0x404af0e3440478
             instance: 1
             target_version: 2.6.94.0
             initial_grant: 1048576
             max_brw_size: 4194304
             grant_block_size: 0
             grant_inode_size: 0
             grant_extent_overhead: 0
             cksum_types: 0x2
             max_easize: 32768
             max_object_bytes: 9223372036854775807
          import_flags: [ replayable, pingable, connect_tried ]
          connection:
             failover_nids: [ 10.100.4.126@tcp ]
             current_connection: 10.100.4.126@tcp
             connection_attempts: 1
             generation: 1
             in-progress_invalidations: 0
          rpcs:
             inflight: 0
             unregistering: 0
             timeouts: 0
             avg_waittime: 1702 usec
          service_estimates:
             services: 1 sec
             network: 1 sec
          transactions:
             last_replay: 0
             peer_committed: 0
             last_checked: 0
      [root@eagle-44vm2 ~]# lctl get_param -n osc.lustre-OST0000-*.blocksize
      4096
      

      On the OSS:

      [root@eagle-44vm1 lustre]# cat /proc/fs/lustre/osd-zfs/lustre-OST0000/blocksize 
      131072
      

      This seems to be the code that resets blocksize to 4K

      int ofd_statfs(const struct lu_env *env,  struct obd_export *exp,
      ......
              if (obd->obd_self_export != exp && ofd_grant_compat(exp, ofd)) {
                      /* clients which don't support OBD_CONNECT_GRANT_PARAM
                       * should not see a block size > page size, otherwise
                       * cl_lost_grant goes mad. Therefore, we emulate a 4KB (=2^12)
                       * block size which is the biggest block size known to work
                       * with all client's page size. */
                      osfs->os_blocks <<= ofd->ofd_blockbits - COMPAT_BSIZE_SHIFT;
                      osfs->os_bfree  <<= ofd->ofd_blockbits - COMPAT_BSIZE_SHIFT;
                      osfs->os_bavail <<= ofd->ofd_blockbits - COMPAT_BSIZE_SHIFT;
                      osfs->os_bsize    = 1 << COMPAT_BSIZE_SHIFT;
              }
      

      I'm not familiar with the code, but if the code is correct then the test should be fixed or skipped for ZFS OSTs.

      Attachments

        Activity

          [LU-6247] osd-zfs: sanity-sec test_16, test_22: 27919 != 26845 + 1M after write

          People

            utopiabound Nathaniel Clark
            maloo Maloo
            Votes:
            0 Vote for this issue
            Watchers:
            10 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: