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

double spin_unlock in ofd_inconsistency_verification_main

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • Minor
    • None
    • None
    • None
    • 3
    • 9223372036854775807

    Description

      It seems that ofd_inconsistency_verification_main has a double unlock bug:

              rc = lu_env_init(&env, LCT_DT_THREAD);
              spin_lock(&ofd->ofd_inconsistency_lock);
              thread_set_flags(thread, rc != 0 ? SVC_STOPPED : SVC_RUNNING);
              wake_up_all(&thread->t_ctl_waitq);
              spin_unlock(&ofd->ofd_inconsistency_lock);
              if (rc != 0)
                      RETURN(rc);
      
              OBD_ALLOC_PTR(lr);
              if (unlikely(lr == NULL))
                      GOTO(out, rc = -ENOMEM);
      ....
      out:   
              thread_set_flags(thread, SVC_STOPPED);
              wake_up_all(&thread->t_ctl_waitq);
              spin_unlock(&ofd->ofd_inconsistency_lock);
      

      So double unlock on this path.

      Attachments

        Activity

          People

            yujian Jian Yu
            green Oleg Drokin
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: