Details
-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
None
-
None
-
2.12
-
3
-
9223372036854775807
Description
The problem is 100% reproducable:
- # ls new_Inode -l
lrwxrwxrwx 10 root root 7 Mar 4 01:48 new_Inode -> unknown - lfs path2fid new_Inode
[0x200000402:0x83f:0x0] - touch /mnt/bgdzjiq1/.lustre/fid/[0x200000402:0x83f:0x0]
touch: setting times of '/mnt/bgdzjiq1/.lustre/fid/[0x200000402:0x83f:0x0]': Invalid argument
On the client side, the error logs are:
00000002:00000001:1.0:1583284421.042097:0:19386:0:(mdc_locks.c:1001:mdc_finish_intent_lock()) Process entered 00000002:00000001:1.0:1583284421.042098:0:19386:0:(mdc_locks.c:1028:mdc_finish_intent_lock()) Process leaving via out (rc=18446744073709551594 : -22 : 0xffffffffffffffea) 00000002:00000001:1.0:1583284421.042099:0:19386:0:(mdc_locks.c:1250:mdc_intent_lock()) Process leaving (rc=18446744073709551594 : -22 : ffffffffffffffea) 00800000:00000001:1.0:1583284421.042100:0:19386:0:(lmv_intent.c:354:lmv_intent_open()) Process leaving (rc=18446744073709551594 : -22 : ffffffffffffffea) 00800000:00000001:1.0:1583284421.042102:0:19386:0:(lmv_intent.c:526:lmv_intent_lock()) Process leaving (rc=18446744073709551594 : -22 : ffffffffffffffea) 00000080:00000001:1.0:1583284421.042103:0:19386:0:(namei.c:796:ll_lookup_it()) Process leaving via out (rc=18446744073709551594 : -22 : 0xffffffffffffffea) 00000100:00000001:1.0:1583284421.042105:0:19386:0:(client.c:2519:__ptlrpc_req_finished()) Process entered
On the MDS, the logs are:
00000004:00000400:0.0:1583284633.757717:0:4400:0:(mdd_device.c:775:obf_lookup()) bgdzjiq1-MDD0000: Trying to lookup invalid FID [unknown] in .lustre/fid, FID format should be [0x200000400:0x1:0x0] 00000004:00000001:0.0:1583284633.757724:0:4400:0:(mdd_device.c:776:obf_lookup()) Process leaving via out (rc=18446744073709551594 : -22 : 0xffffffffffffffea) 00000004:00000001:0.0:1583284633.757729:0:4400:0:(mdt_open.c:1426:mdt_reint_open()) Process leaving via out_parent (rc=18446744073709551594 : -22 : 0xffffffffffffffea) 00000004:00000001:0.0:1583284633.757734:0:4400:0:(mdt_handler.c:3446:mdt_object_unlock()) Process entered
So, looks like the ll_follow_link() causes the problem. When doing the lookup, the client find the inode is a symbol link pointing to "unknown", so naturely, it replaces "/mnt/bgdzjiq1/.lustre/fid/[0x200000402:0x83f:0x0]" to "/mnt/bgdzjiq1/.lustre/fid/unknown". Thus the opening fails on MDT.
I am not sure we can consider this as a feature, because we can touch a symbol link itself even the symbol link points to a non-existing file.