[LU-4075] osd_xattr_get()) ASSERTION( buf->lb_len == sizeof(dt_obj_version_t) ) failed: Created: 07/Oct/13 Updated: 11/Feb/15 Resolved: 11/Feb/15 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.5.0 |
| Fix Version/s: | Lustre 2.7.0 |
| Type: | Bug | Priority: | Minor |
| Reporter: | John Hammond | Assignee: | John Hammond |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | osd | ||
| Severity: | 3 |
| Rank (Obsolete): | 10930 |
| Description |
|
This is a minor issue since it requires root to exploit. # echo 0 | tee /proc/fs/lustre/llite/*/xattr_cache 0 # getfattr -n trusted.version /mnt/lustre Message from syslogd@t at Oct 7 09:28:05 ... kernel:LustreError: 10513:0:(osd_handler.c:2741:osd_xattr_get()) ASSERTION( buf->lb_len == sizeof(dt_obj_version_t) ) failed: Message from syslogd@t at Oct 7 09:28:05 ... kernel:LustreError: 10513:0:(osd_handler.c:2741:osd_xattr_get()) LBUG The special case for XATTR_NAME_VERSION should provide the usual "if buf is NULL then return size..." behavior. |
| Comments |
| Comment by Mikhail Pershin [ 08/Oct/13 ] |
|
I agree that assertion is not needed there. Meanwhile dt_version_get() checks return value as well but just reports error is size is not equal to the version size so we may skip any checks in OSD. Nevertheless I wonder shouldn't we prohibit the sending this xattr to the client because this is server-internal attribute and shouldn't be accessed/modified from/by the client. |
| Comment by Sarah Liu [ 25/Jul/14 ] |
|
hit this error when doing rolling upgrade, OSS and MDS upgrade from 2.4.3 to b2_6-rc2, clients are still 2.4.3 Lustre: DEBUG MARKER: == sanity test 102n: silently ignore setxattr on internal trusted xattrs == 22:31:44 (1406266304) LustreError: 27549:0:(osd_handler.c:2925:osd_xattr_get()) ASSERTION( buf->lb_len == sizeof(dt_obj_version_t) ) failed: LustreError: 27549:0:(osd_handler.c:2925:osd_xattr_get()) LBUG Message fromPid: 27549, comm: mdt02_007 syslogd@onyx-26 at Jul 24 22:31Call Trace: :45 ... kerne [<ffffffffa0466895>] libcfs_debug_dumpstack+0x55/0x80 [libcfs] l:LustreError: 2 [<ffffffffa0466e97>] lbug_with_loc+0x47/0xb0 [libcfs] 7549:0:(osd_hand [<ffffffffa0d8dd62>] osd_xattr_get+0x2d2/0x2e0 [osd_ldiskfs] ler.c:2925:osd_x [<ffffffffa1001c24>] lod_xattr_get+0x154/0x640 [lod] attr_get()) ASSE [<ffffffffa1074b4a>] mdd_xattr_get+0x9a/0x270 [mdd] RTION( buf->lb_l [<ffffffffa0f3b899>] mdt_getxattr+0x989/0x1440 [mdt] en == sizeof(dt_ [<ffffffffa04714b8>] ? libcfs_log_return+0x28/0x40 [libcfs] obj_version_t) ) [<ffffffffa07f8c8c>] ? lustre_msg_get_transno+0x8c/0x100 [ptlrpc] failed: [<ffffffffa0f12256>] mdt_tgt_getxattr+0x26/0x40 [mdt] Message from sys [<ffffffffa0859b6c>] tgt_request_handle+0x23c/0xac0 [ptlrpc] logd@onyx-26 at [<ffffffffa080926a>] ptlrpc_main+0xd1a/0x1980 [ptlrpc] Jul 24 22:31:45 [<ffffffffa0808550>] ? ptlrpc_main+0x0/0x1980 [ptlrpc] ... kernel:Lu [<ffffffff8109abf6>] kthread+0x96/0xa0 streError: 27549 [<ffffffff8100c20a>] child_rip+0xa/0x20 :0:(osd_handler. [<ffffffff8109ab60>] ? kthread+0x0/0xa0 c:2925:osd_xattr [<ffffffff8100c200>] ? child_rip+0x0/0x20 _get()) LBUG Kernel panic - not syncing: LBUG Pid: 27549, comm: mdt02_007 Not tainted 2.6.32-431.20.3.el6_lustre. |
| Comment by John Hammond [ 29/Aug/14 ] |
|
Please see http://review.whamcloud.com/11649. |
| Comment by Jodi Levi (Inactive) [ 11/Feb/15 ] |
|
Patch landed to Master. |