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

Assertion and hang upon lod_add_device failure

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • Lustre 2.13.0, Lustre 2.12.1
    • Lustre 2.12.0, Lustre 2.10.5
    • None
    • 3
    • 9223372036854775807

    Description

      See following assertion:

          (lod_lov.c:361:lod_add_device()) lustre-OSTe42a-osc-MDT0000: can't set up pool, failed with -12
          10059:0:(osp_dev.c:473:osp_disconnect()) ASSERTION( imp != ((void *)0) ) failed:
          10059:0:(osp_dev.c:473:osp_disconnect()) LBUG
          CPU: 1 PID: 10059 Comm: llog_process_th Kdump: loaded Tainted: G
          
          Problem is obd_disconnect() will cleanup @imp and set NULL.
          |->osp_obd_disconnect
              |->class_manual_cleanup
                 |->class_process_config
                       |->class_cleanup
                            |->obd_precleanup
                                  |->osp_device_fini
                                        |->client_obd_cleanup
          
          While ldo_process_config() will try to access @imp again:
          |->ldo_process_config
            |->osp_shutdown
             |->osp_disconnect
               LASSERT(imp != NULL) --->fail here
          
          Another problem is if we failed before obd_connect().
          we will hang on with mount:
          |->ldo_process_config
            |->osp_shutdown
             |->osp_disconnect
              |->ptlrpc_disconnect_import
               |->rc = l_wait_event(imp->imp_recovery_waitq,
                      !ptlrpc_import_in_recovery(imp), &lwi);
      

      Since connect is not called, imp state will keep DISCONN.

      Attachments

        Activity

          People

            wshilong Wang Shilong (Inactive)
            wshilong Wang Shilong (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: