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

EFBIG on 2TB singly stripped file with ZFS

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • Lustre 2.9.0
    • Lustre 2.5.0, Lustre 2.7.0, Lustre 2.8.0, Lustre 2.9.0
    • 3
    • 9223372036854775807

    Description

      Commentary from Andreas:

      It looks like cl_object_maxbytes() is returning a 2TB limit, even though the OSC has maxbytes=2^63.

      debug.cli.txt-00000080:00000001:11.0:1458243131.430707:0:19947:0:(vvp_io.c:1060:vvp_io_write_start()) Process entered
      debug.cli.txt:00000020:00000001:11.0:1458243131.430708:0:19947:0:(cl_object.c:440:cl_object_maxbytes()) Process entered
      debug.cli.txt:00000020:00000001:11.0:1458243131.430709:0:19947:0:(cl_object.c:448:cl_object_maxbytes()) Process leaving (rc=2199023251456 : 2199023251456 : 1fffffff000)
      

      cl_object_maxbytes() is getting this data from lov_object_maxbytes() lsm->lsm_maxbytes but I don't know why that is 2TB.

      I see why this is. In lsm_unpackmd_common():

              if (stripe_maxbytes == LLONG_MAX)
                      stripe_maxbytes = LUSTRE_EXT3_STRIPE_MAXBYTES;
      
              if (lsm->lsm_stripe_count == 0)
                      lsm->lsm_maxbytes = stripe_maxbytes * lov->desc.ld_tgt_count;
              else
                      lsm->lsm_maxbytes = stripe_maxbytes * lsm->lsm_stripe_count;
      

      LLONG_MAX == MAX_LFS_FILESIZE == 2^63 so lsm_unpackmd_common() thinks that this is uninitialized. It also needs to avoid overflow here.

      Attachments

        Issue Links

          Activity

            People

              utopiabound Nathaniel Clark
              utopiabound Nathaniel Clark
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: