Details
-
Bug
-
Resolution: Fixed
-
Critical
-
None
-
None
-
3
-
9223372036854775807
Description
Currently, in lov_init_composite() will quit with error when reading an unknown LOV pattern:
CERROR("%s: unknown composite layout entry type %i\n", lov2obd(dev->ld_lov)->obd_name, lsm->lsm_entries[i]->lsme_pattern);
Since FLR will be used for upcoming new features, like PCC-RO, an old client should still be able to read the old format mirrors and ignore the new types of mirrors.
On the MDS, it should skip mirrors with unknown/foreign component types and mark them stale when selecting which component to use for writes.
For some reason the change in the patch LCM_FL_PCC_RDONLY exposes a bug that I have seen with the port to the native Linux client. With the patch I get:
Lustre: DEBUG MARKER: == sanity test 63b: async write errors should be returned to fsync ============================
======= 10:58:33 (1627916313)
Lustre: *** cfs_fail_loc=406, val=0***
LustreError: 20036:0:(osc_request.c:2586:osc_build_rpc()) prep_req failed: -12
LustreError: 20036:0:(osc_cache.c:2259:osc_check_rpcs()) Write request failed with -12
LustreError: 20042:0:(lu_object.c:215:lu_object_put()) ASSERTION( list_empty(&top->loh_lru) ) failed:
LustreError: 20042:0:(lu_object.c:215:lu_object_put()) LBUG
kernel: Pid: 20042, comm: lctl 5.7.0-rc7+ #1 SMP PREEMPT Sat Jul 31 13:04:46 EDT 2021
kernel: Call Trace:
kernel: libcfs_call_trace+0x62/0x80 [libcfs]
kernel: lbug_with_loc+0x41/0xa0 [libcfs]
kernel: lu_object_put+0x31b/0x340 [obdclass]
kernel: vvp_pgcache_current+0x7e/0x150 [lustre]
kernel: seq_read+0x200/0x3c0
kernel: full_proxy_read+0x4d/0x70
kernel: vfs_read+0xb3/0x17
kernel: ksys_read+0x5f/0xd0
kernel: do_syscall_64+0x6d/0x4f0
kernel: entry_SYSCALL_64_after_hwframe+0x49/0xb3
kernel: Kernel panic - not syncing: LBUG