[LU-5687] several functions ignore the result of dt_declare_*() Created: 30/Sep/14  Updated: 14/Jun/18  Resolved: 18/Dec/14

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.7.0
Fix Version/s: Lustre 2.7.0

Type: Bug Priority: Minor
Reporter: John Hammond Assignee: John Hammond
Resolution: Fixed Votes: 0
Labels: fault, ofd

Issue Links:
Related
Severity: 3
Rank (Obsolete): 15927

 Description   

Fault injection shows several instances where we ignore errors from declarations:

lctl set_param fail_err=-14
lctl set_param fail_val=1000
lctl set_param fail_loc=0x0800200d # OBD_FAIL_DT_DECLARE_DESTROY

Message from syslogd@t at Sep 30 10:43:10 ...
 kernel:[  141.688631] LustreError: 13800:0:(osd_internal.h:991:osd_trans_exec_op()) ASSERTION( oti->oti_declare_ops_rb[rb] > 0 ) failed: rb = 3

Message from syslogd@t at Sep 30 10:43:10 ...
 kernel:[  141.690531] LustreError: 13800:0:(osd_internal.h:991:osd_trans_exec_op()) LBUG


crash> bt
PID: 13800  TASK: ffff8800d6346580  CPU: 0   COMMAND: "ll_ost00_005"
 #0 [ffff8800d92c7908] machine_kexec at ffffffff81039950
 #1 [ffff8800d92c7968] crash_kexec at ffffffff810d4372
 #2 [ffff8800d92c7a38] panic at ffffffff81550d83
 #3 [ffff8800d92c7ab8] lbug_with_loc at ffffffffa02bef1b [libcfs]
 #4 [ffff8800d92c7ad8] osd_trans_exec_op at ffffffffa0af196b [osd_ldiskfs]
 #5 [ffff8800d92c7af8] osd_object_destroy at ffffffffa0af9702 [osd_ldiskfs]
 #6 [ffff8800d92c7b58] ofd_object_destroy at ffffffffa0ddd17c [ofd]
 #7 [ffff8800d92c7ba8] ofd_destroy_by_fid at ffffffffa0dd838d [ofd]
 #8 [ffff8800d92c7ca8] ofd_destroy_hdl at ffffffffa0dd1c6a [ofd]
 #9 [ffff8800d92c7d18] tgt_request_handle at ffffffffa06e71be [ptlrpc]
#10 [ffff8800d92c7d78] ptlrpc_main at ffffffffa0697e47 [ptlrpc]
#11 [ffff8800d92c7eb8] kthread at ffffffff8109eab6
#12 [ffff8800d92c7f48] kernel_thread at ffffffff8100c30a
# git grep '^[[:space:]]*dt_declare'
lustre/lod/lod_object.c:                dt_declare_xattr_del(env, next, XATTR_NAME_LOV, h\
andle);
lustre/lod/lod_object.c:                dt_declare_xattr_set(env, next, buf, XATTR_NAME_L\
OV,
lustre/obdclass/llog_osd.c:     dt_declare_ref_del(env, o, th);
lustre/obdclass/local_storage.c:                dt_declare_ref_add(env, dto, th);
lustre/obdclass/local_storage.c:                dt_declare_ref_add(env, parent, th);
lustre/ofd/ofd_objects.c:       dt_declare_ref_del(env, ofd_object_child(fo), th);
lustre/ofd/ofd_objects.c:       dt_declare_destroy(env, ofd_object_child(fo), th);


 Comments   
Comment by John Hammond [ 30/Sep/14 ]

Please see http://review.whamcloud.com/12130.

Comment by Gerrit Updater [ 04/Dec/14 ]

Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/12130/
Subject: LU-5687 dt: propagate errors from failed declarations
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: 3a490d8405ff73d6eaa14c291e14867b5ba01c87

Comment by Jodi Levi (Inactive) [ 18/Dec/14 ]

Patch landed to Master.

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