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

nfsd processes stuck in trying to double lock the inode

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Medium
    • None
    • None
    • None
    • 3
    • 9223372036854775807

    Description

      nfsd mounted on Lustre could hang with following processes.

      PID: 164009   TASK: ff4d87028f53c000  CPU: 45   COMMAND: "nfsd"
       #0 [ff6ac3f222de75c0] __schedule at ffffffffb97eb171
       #1 [ff6ac3f222de7618] schedule at ffffffffb97eb735
       #2 [ff6ac3f222de7628] rwsem_down_write_slowpath at ffffffffb8f551ed
       #3 [ff6ac3f222de76c0] vvp_inode_ops at ffffffffc19a6725 [lustre]
       #4 [ff6ac3f222de76d8] cl_object_inode_ops at ffffffffc137ab86 [obdclass]
       #5 [ff6ac3f222de7708] lov_conf_set at ffffffffc18b1b36 [lov]
       #6 [ff6ac3f222de7788] cl_conf_set at ffffffffc137a6d9 [obdclass]
       #7 [ff6ac3f222de77b0] cl_file_inode_init at ffffffffc199c7f8 [lustre]
       #8 [ff6ac3f222de7820] ll_update_inode at ffffffffc196c46f [lustre]
       #9 [ff6ac3f222de7858] ll_prep_inode at ffffffffc196eedf [lustre]
      #10 [ff6ac3f222de7920] ll_revalidate_it_finish at ffffffffc193545a [lustre]
      #11 [ff6ac3f222de7968] ll_inode_revalidate.constprop.67 at ffffffffc194b3e5 [lustre]
      #12 [ff6ac3f222de79e8] ll_getattr_dentry at ffffffffc1958739 [lustre]
      #13 [ff6ac3f222de7aa0] fill_pre_wcc at ffffffffc1a589f7 [nfsd]
      #14 [ff6ac3f222de7b68] nfsd_setattr at ffffffffc1a502a9 [nfsd]
      #15 [ff6ac3f222de7c08] nfs4_get_vfs_file at ffffffffc1a693f8 [nfsd]
      #16 [ff6ac3f222de7cc8] nfsd4_process_open2 at ffffffffc1a6e26f [nfsd]
      #17 [ff6ac3f222de7db8] nfsd4_open at ffffffffc1a5d102 [nfsd]
      #18 [ff6ac3f222de7df8] nfsd4_proc_compound at ffffffffc1a5d4de [nfsd]
      #19 [ff6ac3f222de7e58] nfsd_dispatch at ffffffffc1a48c5e [nfsd]
      #20 [ff6ac3f222de7e80] svc_process_common at ffffffffc0c78e10 [sunrpc]
      #21 [ff6ac3f222de7ed8] svc_process at ffffffffc0c79127 [sunrpc]
      #22 [ff6ac3f222de7ef0] nfsd at ffffffffc1a48603 [nfsd]
      #23 [ff6ac3f222de7f10] kthread at ffffffffb8f1808b
      #24 [ff6ac3f222de7f50] ret_from_fork at ffffffffb980024f
      
      PID: 164010   TASK: ff4d87028f64c000  CPU: 20   COMMAND: "nfsd"
       #0 [ff6ac3f222def6f0] __schedule at ffffffffb97eb171
       #1 [ff6ac3f222def748] schedule at ffffffffb97eb735
       #2 [ff6ac3f222def758] rwsem_down_write_slowpath at ffffffffb8f551ed
       #3 [ff6ac3f222def7f0] vvp_inode_ops at ffffffffc19a6725 [lustre]
       #4 [ff6ac3f222def808] cl_object_inode_ops at ffffffffc137ab86 [obdclass]
       #5 [ff6ac3f222def838] lov_conf_set at ffffffffc18b1b36 [lov]
       #6 [ff6ac3f222def8b8] cl_conf_set at ffffffffc137a6d9 [obdclass]
       #7 [ff6ac3f222def8e0] cl_file_inode_init at ffffffffc199c7f8 [lustre]
       #8 [ff6ac3f222def950] ll_update_inode at ffffffffc196c46f [lustre]
       #9 [ff6ac3f222def988] ll_prep_inode at ffffffffc196eedf [lustre]
      #10 [ff6ac3f222defa50] ll_intent_file_open at ffffffffc1951a80 [lustre]
      #11 [ff6ac3f222defac8] ll_file_open at ffffffffc1951df3 [lustre]
      #12 [ff6ac3f222defb78] do_dentry_open at ffffffffb9157ac3
      #13 [ff6ac3f222defba8] dentry_open at ffffffffb9157dec
      #14 [ff6ac3f222defbc8] nfsd_open at ffffffffc1a4de68 [nfsd]
      #15 [ff6ac3f222defc08] nfs4_get_vfs_file at ffffffffc1a6943d [nfsd]
      #16 [ff6ac3f222defcc8] nfsd4_process_open2 at ffffffffc1a6e26f [nfsd]
      #17 [ff6ac3f222defdb8] nfsd4_open at ffffffffc1a5d102 [nfsd]
      #18 [ff6ac3f222defdf8] nfsd4_proc_compound at ffffffffc1a5d4de [nfsd]
      #19 [ff6ac3f222defe58] nfsd_dispatch at ffffffffc1a48c5e [nfsd]
      #20 [ff6ac3f222defe80] svc_process_common at ffffffffc0c78e10 [sunrpc]
      #21 [ff6ac3f222defed8] svc_process at ffffffffc0c79127 [sunrpc]
      #22 [ff6ac3f222defef0] nfsd at ffffffffc1a48603 [nfsd]
      #23 [ff6ac3f222deff10] kthread at ffffffffb8f1808b
      #24 [ff6ac3f222deff50] ret_from_fork at ffffffffb980024f
      

      The nfsd could lock the inode (by fh_lock()/fh_lock_nested()) before calling vfs interface so that Lustre is unaware and tries to lock the inode again.

      Attachments

        Activity

          People

            bobijam Zhenyu Xu
            bobijam Zhenyu Xu
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated: