== sanity test 27D: validate llapi_layout API ============ 17:19:21 (1787606361) striped dir -i1 -c2 -H crush2 /mnt/lustre/d27D.sanity Creating new pool testpool oleg431-server: Pool lustre.testpool created Adding targets to pool oleg431-server: OST lustre-OST0000_UUID added to pool lustre.testpool oleg431-server: OST lustre-OST0001_UUID added to pool lustre.testpool llite.lustre-ffff92d853f6d800.enable_erasure_coding=1 test0 @1787606375: Read/write layout attributes then create a file ............ pass test1 @1787606375: Read test0 file by path and verify attributes .............. pass test2 @1787606375: Read test0 file by FD and verify attributes ................ pass test3 @1787606375: Read test0 file by FID and verify attributes ............... pass test4 @1787606375: Verify compatibility with 'lfs setstripe' .................. pass test5 @1787606375: llapi_layout_get_by_path ENOENT handling ................... pass test6 @1787606375: llapi_layout_get_by_fd EBADF handling ...................... pass test7 @1787606375: llapi_layout_get_by_path EACCES handling ................... pass test8 @1787606375: llapi_layout_get_by_path ENODATA handling .................. pass test9 @1787606375: verify llapi_layout_pattern_set() return values ............ pass test10 @1787606375: stripe_count error handling ............................... pass test11 @1787606376: stripe_size error handling ................................ pass test12 @1787606376: pool_name error handling .................................. pass test13 @1787606376: ost_index error handling .................................. pass test14 @1787606376: llapi_layout_file_create error handling ................... pass test15 @1787606376: Can't change striping attributes of existing file ......... pass test16 @1787606376: Default stripe attributes are applied as expected ......... pass test17 @1787606376: LLAPI_LAYOUT_WIDE is honored .............................. pass test18 @1787606376: Setting pool with fsname.pool notation .................... pass test19 @1787606376: Maximum length pool name is NULL-terminated ............... pass test20 @1787606377: LLAPI_LAYOUT_DEFAULT is honored ........................... pass test21 @1787606377: llapi_layout_file_create fails for non-Lustre file ........ pass test22 @1787606377: llapi_layout_file_create applied mode correctly ........... pass test23 @1787606377: llapi_layout_get_by_path fails for non-Lustre file ........ pass test24 @1787606377: LAYOUT_GET_EXPECTED works with existing file .............. pass test25 @1787606377: LAYOUT_GET_EXPECTED works with directory .................. pass test26 @1787606378: LAYOUT_GET_EXPECTED partially specified parent ............ pass test27 @1787606378: LAYOUT_GET_EXPECTED with non existing file ................ pass test28 @1787606378: LLAPI_LAYOUT_WIDE returned as expected .................... pass test29 @1787606378: set ost index to non-zero stripe number ................... pass test30 @1787606379: create composite file, traverse components ................ pass test31 @1787606379: add/delete component to/from existing file ................ pass test32 @1787606379: Test overstriping with layout_file_create ................. pass test33 @1787606379: Test overstriping with llapi_file_open .................... pass llapi_layout_test: Invalid layout: No adjacent extension space components test34 @1787606380: create simple valid & invalid self extending layouts ...... pass test35 @1787606380: create a file with layout different from default .......... pass test36 @1787606380: verify mirror count is validated .......................... pass test37 @1787606380: verify mirror count and mirror ids for existing files ..... pass test40 @1787606380: verify LCME_FL_PARITY cannot be set with flags_set function pass test41 @1787606380: verify comp_add_opts parameter validation for EC components pass test42 @1787606380: verify parity component with non-matching extent is refused pass test43 @1787606380: verify EC component cannot be added to incomplete layout .. pass test44 @1787606380: verify EC components with zero stripe counts are rejected . pass test45 @1787606380: verify overlapping EC extents are rejected ................ pass test46 @1787606380: verify invalid EC extent ranges are rejected .............. pass test47 @1787606380: verify EC parameter constraints are enforced .............. pass test48 @1787606380: verify duplicate EC components are rejected ............... pass test49 @1787606380: verify API parameter validation and error handling ........ pass test50 @1787606380: verify mixed parity mirror is rejected .................... pass test51 @1787606380: verify parity-first mixed mirror is rejected .............. pass test52 requires at least 6 OSTs, skipping test52 @1787606380: create simple EC layout with data and parity components ... pass test53 requires at least 6 OSTs, skipping test53 @1787606380: verify multiple data + multiple parity components layout .. pass test54 requires at least 3 OSTs, skipping test54 @1787606380: verify complex multi-component EC layout .................. pass test55 requires at least 3 OSTs, skipping test55 @1787606380: verify additional EC component ordering scenarios ......... pass test56 requires at least 6 OSTs, skipping test56 @1787606380: verify EC layout with two mirrors - EC only first mirror .. pass test57 requires at least 6 OSTs, skipping test57 @1787606380: verify EC layout with two mirrors - EC both mirrors ....... pass test58 requires at least 3 OSTs, skipping test58 @1787606380: verify three mirrors with different extents - EC first only pass test59 @1787606380: EC verify mirror count and data-parity comp linkage ....... pass test60 requires at least 6 OSTs, skipping test60 @1787606380: verify EC component stripe size matches data component .... pass test61 @1787606380: verify a protected data component can't be deleted ........ pass test62 @1787606380: verify multiple parity mirrors for one data mirror is rejected pass test63 requires at least 6 OSTs, skipping test63 @1787606380: verify DATA1, PARITY1, DATA2, PARITY2 binding ............. pass test64 requires at least 6 OSTs, skipping test64 @1787606380: verify DATA1, DATA2, PARITY1, PARITY2 binding ............. pass test65 requires at least 7 OSTs, skipping test65 @1787606380: verify layout merge preserves EC data-parity bindings ..... pass test66 @1787606380: EC mirror can override copied pool via llapi .............. pass test67 requires at least 3 OSTs, skipping test67 @1787606380: verify server blocks prefer flags on parity components .... pass Destroy the created pools: testpool lustre.testpool oleg431-server: OST lustre-OST0000_UUID removed from pool lustre.testpool oleg431-server: OST lustre-OST0001_UUID removed from pool lustre.testpool oleg431-server: Pool lustre.testpool destroyed