[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.

Generated at Sat Feb 10 01:39:26 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.