Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-5687

several functions ignore the result of dt_declare_*()

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • Lustre 2.7.0
    • Lustre 2.7.0
    • 3
    • 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);
      

      Attachments

        Activity

          People

            jhammond John Hammond
            jhammond John Hammond
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: