Details
-
Bug
-
Resolution: Fixed
-
Minor
-
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.
Patch landed to master