Details
-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
None
-
3
-
9223372036854775807
Description
if target_handle_connect() races with an export eviction then the following scenario can happen:
- mdt_obd_reconnect() -> .. nodemap_add_member() grabs a reference to the export
- then target_handle_connect() finds the export invalide and exits with -ENODEV:
if (export->exp_disconnected) { spin_unlock(&export->exp_lock); GOTO(out, rc = -ENODEV);
after umount won't be able to complete with the following symptoms:
00000020:02000400:1.0:1673726953.882508:0:8583:0:(genops.c:1792:obd_exports_barrier()) lustre-MDT0000 is waiting for obd_unlinked_exports more than 7 seconds. The obd refcount = 4. Is it stuck? 00000020:02000400:1.0:1673726953.889142:0:8583:0:(genops.c:1758:print_export_data()) lustre-MDT0000: UNLINKED 000000002760c5c2 5a4bd497-6ace-43e0-8e46-c6b0e7dc84ba 0@lo 1 (0 0 0) 1 0 1 0: 00000000e9920e55 4294967301 stale:0