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

qsd_id_glimpse_ast might_sleep due to multiple layers of locking

Details

    • Bug
    • Resolution: Won't Do
    • Major
    • None
    • Lustre 2.17.0
    • RHEL8 debugging server service issue showing up with sanity-quota testing
    • 3
    • 9223372036854775807

    Description

      Now that we fixed on quota bug with debugging kernel another one has been exposed.

      BUG: sleeping function called from invalid context at kernel/locking/rwsem.c:1646

      in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 24274, name: ldlm_cb00_000 [ 1186.401920] INFO: lockdep is turned off.

      Call Trace: [ 1186.413231] ? dump_stack+0xbb/0x10e

      ? __might_sleep+0x59/0xc0 [ 1186.424798] ? down_read_nested+0x2e/0x4b0

      ? lquota_disk_read+0x304/0x6a0

      qsd_refresh_usage+0x105/0x3d0

      qsd_id_glimpse_ast+0x480/0x980 

      ldlm_callback_handler+0x4a8/0x2280

      The reason for this I believe is due to qsd_id_glimpse_ast() calls  lqe_write_lock() but then qsd_refresh_usage() also takes dt_read_lock(). 

      Attachments

        Issue Links

          Activity

            People

              simmonsja James A Simmons
              simmonsja James A Simmons
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: