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

race between open and migration

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Critical
    • Lustre 2.8.0
    • Lustre 2.6.0, Lustre 2.7.0
    • 3
    • 9223372036854775807

    Description

      After the directory is migrated to another MDT, the object on the original MDT will be destroyed (mark as DEAD object). If another client is trying to open the file under this directory at the same time (sending RPC to the original MDT), it will then find the object has been destroyed, then return ENOENT to the client, which will cause open fails.

      See mdt_reint_open().

         if (result == -ENOENT || result == -ESTALE) {
                      mdt_set_disposition(info, ldlm_rep, DISP_LOOKUP_NEG);
                      if (result == -ESTALE) {
                              /*
                               * -ESTALE means the parent is a dead(unlinked) dir, so
                               * it should return -ENOENT to in accordance with the
                               * original mds implementaion.
                               */
                              GOTO(out_parent, result = -ENOENT);
                      }
      

      In this case, we should return the new parent FID to that client and let it retry open.

      Attachments

        Issue Links

          Activity

            People

              di.wang Di Wang
              di.wang Di Wang
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: