only allow FID_SEQ_NORMAL from clients
(LU-1532)
|
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.3.0 |
| Fix Version/s: | None |
| Type: | Technical task | Priority: | Minor |
| Reporter: | John Hammond | Assignee: | WC Triage |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | fid | ||
| Environment: |
[root]# cat /proc/fs/lustre/version |
||
| Issue Links: |
|
||||||||
| Rank (Obsolete): | 7794 | ||||||||
| Description |
|
Opening .lustre/fid/[0x200000001:0xd:0x0]/lost+found triggers an unchecked error in mdt_reint_open() which causes a failed assertion in mdt_finish_open(). [root]# sys_stat .lustre/fid/[0xb:0x0:0x0] cannot stat `.lustre/fid/[0xb:0x0:0x0]': No such file or directory [root]# sys_open .lustre/fid/[0xb:0x0:0x0] r cannot open `.lustre/fid/[0xb:0x0:0x0]' with flags 0, mode 0666: No such file or directory [root]# sys_stat .lustre/fid/[0x200000001:0xd:0x0]/lost+found cannot stat `.lustre/fid/[0x200000001:0xd:0x0]/lost+found': No such file or directory [root]# sys_open .lustre/fid/[0x200000001:0xd:0x0]/lost+found r In mdt_reint_open(), the call to mdo_lookup() is succeeding, but mo_attr_get() is failing with -ENOENT. (The return of mdd_la_get() becomes the return of mo_attr_get() here.) However the return of mo_attr_get() is only tested against -EREMOTE. Since mo_attr_get() failed, it did not set MA_INODE in ma_valid. LustreError: 30584:0:(mdd_object.c:83:mdd_la_get()) (null): object [0xb:0x0:0x0] not found: rc = -2 LustreError: 30584:0:(mdt_open.c:784:mdt_finish_open()) ASSERTION( ma->ma_valid & MA_INODE ) failed: LustreError: 30584:0:(mdt_open.c:784:mdt_finish_open()) LBUG Pid: 30584, comm: mdt_01 Call Trace: [<ffffffffa0308905>] libcfs_debug_dumpstack+0x55/0x80 [libcfs] [<ffffffffa0308f17>] lbug_with_loc+0x47/0xb0 [libcfs] [<ffffffffa0a64b15>] mdt_finish_open+0x12f5/0x1790 [mdt] [<ffffffffa0a6701b>] mdt_reint_open+0xc0b/0x1950 [mdt] [<ffffffffa0a351a5>] ? mdt_ucred+0x15/0x20 [mdt] [<ffffffffa0a50b51>] mdt_reint_rec+0x41/0xe0 [mdt] [<ffffffffa0a4a3aa>] mdt_reint_internal+0x50a/0x810 [mdt] [<ffffffffa0a4a97d>] mdt_intent_reint+0x1ed/0x500 [mdt] [<ffffffffa0a46cc1>] mdt_intent_policy+0x371/0x6a0 [mdt] [<ffffffffa05bc841>] ldlm_lock_enqueue+0x361/0x8f0 [ptlrpc] [<ffffffffa05e420a>] ldlm_handle_enqueue0+0x48a/0xf40 [ptlrpc] [<ffffffffa0a46866>] mdt_enqueue+0x46/0x130 [mdt] [<ffffffffa0a3c2a2>] mdt_handle_common+0x922/0x1740 [mdt] [<ffffffffa0a3d195>] mdt_regular_handle+0x15/0x20 [mdt] [<ffffffffa06128a2>] ptlrpc_server_handle_request+0x412/0xeb0 [ptlrpc] [<ffffffffa030965e>] ? cfs_timer_arm+0xe/0x10 [libcfs] [<ffffffffa0319daf>] ? lc_watchdog_touch+0x6f/0x180 [libcfs] [<ffffffffa060b6d2>] ? ptlrpc_wait_event+0xb2/0x2c0 [ptlrpc] [<ffffffff81051ba3>] ? __wake_up+0x53/0x70 [<ffffffffa0613b17>] ptlrpc_main+0x7d7/0x1610 [ptlrpc] [<ffffffffa0613340>] ? ptlrpc_main+0x0/0x1610 [ptlrpc] [<ffffffff8100c14a>] child_rip+0xa/0x20 [<ffffffffa0613340>] ? ptlrpc_main+0x0/0x1610 [ptlrpc] [<ffffffffa0613340>] ? ptlrpc_main+0x0/0x1610 [ptlrpc] [<ffffffff8100c140>] ? child_rip+0x0/0x20 |
| Comments |
| Comment by Andreas Dilger [ 21/Jun/12 ] |
|
John, These bugs are definitely an interesting class of problems, but it makes sense to step back for a bit and get the first ones fixed before seeing what other new issues can be produced. |
| Comment by Andreas Dilger [ 05/Jul/12 ] |
|
These bugs are symptoms that internal files should not be accessible through .lustre. |
| Comment by Richard Henwood (Inactive) [ 12/Nov/12 ] |
|
Following the reproducer on current Master does not produce the failure: [root@lmaster-124 sys]# cd /mnt/lustre/ [root@lmaster-124 lustre]# /root/hammond/sys/sys_stat .lustre/fid/[0xb:0x0:0x0] cannot stat `.lustre/fid/[0xb:0x0:0x0]': Invalid argument [root@lmaster-124 lustre]# /root/hammond/sys/sys_open .lustre/fid/[0xb:0x0:0x0] r cannot open `.lustre/fid/[0xb:0x0:0x0]' with flags 0, mode 0666: Invalid argument [root@lmaster-124 lustre]# /root/hammond/sys/sys_stat .lustre/fid/[0x200000001:0xd:0x0]/lost+found cannot stat `.lustre/fid/[0x200000001:0xd:0x0]/lost+found': Invalid argument [root@lmaster-124 lustre]# /root/hammond/sys/sys_open .lustre/fid/[0x200000001:0xd:0x0]/lost+found r cannot open `.lustre/fid/[0x200000001:0xd:0x0]/lost+found' with flags 0, mode 0666: Invalid argument I'm assuming this has been fixed by the closing of issue |