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

mkdir: cannot create directory ‘test5’: Object is remote

Details

    • Bug
    • Resolution: Fixed
    • Major
    • None
    • Lustre 2.14.0, Lustre 2.15.2
    • server (garter):
      toss 4.5-6rc6
      4.18.0-425.19.2.1toss.t4.x86_64
      2.14.0_19.llnl

      client (mutt):
      toss 4.5-6
      4.18.0-425.19.2.1toss.t4.x86_64
      2.15.2_5.llnl
    • 3
    • 9223372036854775807

    Description

      Attempts to create directories are intermittently failing when using "mkdir".

      So far, "lfs mkdir" succeeds every time, so does file creation using "touch".

       

      Attachments

        Activity

          [LU-16806] mkdir: cannot create directory ‘test5’: Object is remote

          reclosing after removing topllnl

          defazio Gian-Carlo Defazio added a comment - reclosing after removing topllnl

          reopening to remove topllnl

          defazio Gian-Carlo Defazio added a comment - reopening to remove topllnl

          This issue is fixed for us on 2.14 and has been pulled into our local branch.

          defazio Gian-Carlo Defazio added a comment - This issue is fixed for us on 2.14 and has been pulled into our local branch.
          pjones Peter Jones added a comment -

          Is there any further work outstanding here? AFAIK the b2_14 fix has been proven to work and this issue does not exist on more current releases, so I would think that we can close out the ticket...

          pjones Peter Jones added a comment - Is there any further work outstanding here? AFAIK the b2_14 fix has been proven to work and this issue does not exist on more current releases, so I would think that we can close out the ticket...
          laisiyao Lai Siyao added a comment -

          Olaf, yes, it works with both 2.12 and 2.15 clients.

          laisiyao Lai Siyao added a comment - Olaf, yes, it works with both 2.12 and 2.15 clients.
          laisiyao Lai Siyao added a comment -

          Gian, these code is to check whether client sends mkdir request to wrong MDT. If parent has default LMV (2.14 code doesn't check this), and this default LMV is not space balanced, it's not allowed to mkdir on remote MDT.

          				if (hint->dah_parent &&
          				    dt_object_remote(hint->dah_parent) && lds &&
          				    lds->lds_dir_def_striping_set &&
          				    lds->lds_dir_def_stripe_offset !=
          				    LMV_OFFSET_DEFAULT)
          					GOTO(out, rc = -EREMOTE);
          

          As for your question, yes, if parent doesn't have default LMV, the filesystem default LMV will be applied.

          laisiyao Lai Siyao added a comment - Gian, these code is to check whether client sends mkdir request to wrong MDT. If parent has default LMV (2.14 code doesn't check this), and this default LMV is not space balanced, it's not allowed to mkdir on remote MDT. if (hint->dah_parent && dt_object_remote(hint->dah_parent) && lds && lds->lds_dir_def_striping_set && lds->lds_dir_def_stripe_offset != LMV_OFFSET_DEFAULT) GOTO(out, rc = -EREMOTE); As for your question, yes, if parent doesn't have default LMV, the filesystem default LMV will be applied.

          Hi Lai,

          Please also confirm whether you believe 2.14 servers with this patch will work properly with both Lustre 2.12 and 2.15 clients.  As we work to switch to Lustre 2.15, we will have

          Clients: Lustre 2.12, 2.15
          Routers: Lustre 2.12, 2.15

          thanks

          ofaaland Olaf Faaland added a comment - Hi Lai, Please also confirm whether you believe 2.14 servers with this patch will work properly with both Lustre 2.12 and 2.15 clients.  As we work to switch to Lustre 2.15, we will have Clients: Lustre 2.12, 2.15 Routers: Lustre 2.12, 2.15 thanks

          The patch fixed the issue on 2.14.

          I'm a bit confused by what the patch is doing.

          Is the idea that when (lds->lds_dir_def_striping_set == 0) that means that the parent directory doesn't have default striping set for its sub-directories, so when the sub-directory is created it should instead inherit from the root of the whole filesystem?

           

          defazio Gian-Carlo Defazio added a comment - The patch fixed the issue on 2.14. I'm a bit confused by what the patch is doing. Is the idea that when (lds->lds_dir_def_striping_set == 0) that means that the parent directory doesn't have default striping set for its sub-directories, so when the sub-directory is created it should instead inherit from the root of the whole filesystem?  
          laisiyao Lai Siyao added a comment -

          Yes, upgrading to 2.15.x can get around this issue since related code has been removed.

          laisiyao Lai Siyao added a comment - Yes, upgrading to 2.15.x can get around this issue since related code has been removed.
          pjones Peter Jones added a comment -

          So LLNL's exposure to this issue will disappear once they upgrade to 2.15.x?

          pjones Peter Jones added a comment - So LLNL's exposure to this issue will disappear once they upgrade to 2.15.x?

          People

            laisiyao Lai Siyao
            defazio Gian-Carlo Defazio
            Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: