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

sanity test_129: current dir size 4096, previous limit 20480

Details

    • Bug
    • Resolution: Fixed
    • Major
    • Lustre 2.14.0, Lustre 2.12.6
    • Lustre 2.12.5
    • None
    • 3
    • 9223372036854775807

    Description

      This issue was created by maloo for Andreas Dilger <adilger@whamcloud.com>

      This issue relates to the following test suite run:
      https://testing.whamcloud.com/test_sets/2c10b9da-44b8-11ea-bffa-52540065bddc

      test_129 failed with the following error:

      current dir size 4096,  previous limit 20480
      

      It looks like this started on 2020-01-28 when a number of patches landed.

      VVVVVVV DO NOT REMOVE LINES BELOW, Added by Maloo for auto-association VVVVVVV
      sanity test_129 - current dir size 4096, previous limit 20480
      sanity test_129 - dirsize 4096 < 32768 after 93 files

      Attachments

        Issue Links

          Activity

            [LU-13187] sanity test_129: current dir size 4096, previous limit 20480

            Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/39882/
            Subject: LU-13187 osd-ldiskfs: don't enforce max dir size limit on IAM objects
            Project: fs/lustre-release
            Branch: b2_12
            Current Patch Set:
            Commit: a73f4e566debadfc156b6d8c48237a2e34ac75ba

            gerrit Gerrit Updater added a comment - Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/39882/ Subject: LU-13187 osd-ldiskfs: don't enforce max dir size limit on IAM objects Project: fs/lustre-release Branch: b2_12 Current Patch Set: Commit: a73f4e566debadfc156b6d8c48237a2e34ac75ba

            Andreas Dilger (adilger@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/39882
            Subject: LU-13187 osd-ldiskfs: don't enforce max dir size limit on IAM objects
            Project: fs/lustre-release
            Branch: b2_12
            Current Patch Set: 1
            Commit: d8c40507e87798e37d05988d190ccef78b528c42

            gerrit Gerrit Updater added a comment - Andreas Dilger (adilger@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/39882 Subject: LU-13187 osd-ldiskfs: don't enforce max dir size limit on IAM objects Project: fs/lustre-release Branch: b2_12 Current Patch Set: 1 Commit: d8c40507e87798e37d05988d190ccef78b528c42
            pjones Peter Jones added a comment -

            Landed for 2.14

            pjones Peter Jones added a comment - Landed for 2.14

            Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/39823/
            Subject: LU-13187 osd-ldiskfs: don't enforce max dir size limit on IAM objects
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: 03e6db505be90d35ccacb3af7e15277784e5d448

            gerrit Gerrit Updater added a comment - Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/39823/ Subject: LU-13187 osd-ldiskfs: don't enforce max dir size limit on IAM objects Project: fs/lustre-release Branch: master Current Patch Set: Commit: 03e6db505be90d35ccacb3af7e15277784e5d448

            Li Dongyang (dongyangli@ddn.com) uploaded a new patch: https://review.whamcloud.com/39823
            Subject: LU-13187 osd-ldiskfs: don't enforce max dir size limit on IAM objects
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: 07c97b04411a396572d7124f3217a7d561a96d2b

            gerrit Gerrit Updater added a comment - Li Dongyang (dongyangli@ddn.com) uploaded a new patch: https://review.whamcloud.com/39823 Subject: LU-13187 osd-ldiskfs: don't enforce max dir size limit on IAM objects Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 07c97b04411a396572d7124f3217a7d561a96d2b

            Neil, thanks for tracking this down.

            Dongyang, I think it would be better avoid changing the API for ext4_append(), as that would need even more changes to the core ext4 code.

            I think there are two options that are relatively simple:

            • split ext4_append() into an outer function of the same name that checks the directory size limit, and a second internal function (e.g. ext4_append_nolimit() or similar) that can be called directly from the iam_* functions
            • set a new EXT4_STATE_IAM flag on the IAM objects when they are opened, and check that inside ext4_append() when checking the size limit

            Probably the second option is less intrusive, as it is likely that patch could avoid conflicts with ext4-pdirop.patch and ext4-misc.patch, and hopefully would not need to be different for every kernel.

            adilger Andreas Dilger added a comment - Neil, thanks for tracking this down. Dongyang, I think it would be better avoid changing the API for ext4_append() , as that would need even more changes to the core ext4 code. I think there are two options that are relatively simple: split ext4_append() into an outer function of the same name that checks the directory size limit, and a second internal function (e.g. ext4_append_nolimit() or similar) that can be called directly from the iam_* functions set a new EXT4_STATE_IAM flag on the IAM objects when they are opened, and check that inside ext4_append() when checking the size limit Probably the second option is less intrusive, as it is likely that patch could avoid conflicts with ext4-pdirop.patch and ext4-misc.patch , and hopefully would not need to be different for every kernel.
            dongyang Dongyang Li added a comment -

            Great, I just could not reproduce the problem.

            if it's failing with ENOSPC from osd_ldiskfs_append(), I think we can add a new param to ldiskfs/ext4_append() to bypass the limit check for the oi related code path, like iam_new_node(), iam_lfix_create() and iam_lvar_create().

            the normal dir is using a different code path, osd_ldiskfs_add_entry()->__ldiskfs/ext4_add_entry()

             

            dongyang Dongyang Li added a comment - Great, I just could not reproduce the problem. if it's failing with ENOSPC from osd_ldiskfs_append(), I think we can add a new param to ldiskfs/ext4_append() to bypass the limit check for the oi related code path, like iam_new_node(), iam_lfix_create() and iam_lvar_create(). the normal dir is using a different code path, osd_ldiskfs_add_entry()->__ldiskfs/ext4_add_entry()  
            neilb Neil Brown added a comment -

            I think this problem is caused by some metadata directory trying to grow.

            I added some tracing and found that the call to osd_ldiskfs_append() in iam_new_node() was failing with ENOSPC.

            Maybe the best fix would be to add a test to ldiskfs_append() to check if it is a special lustre metadata directory, and if so to bypass the dir limit.

            Is there an easy way to detect lustre metadata directories?

            neilb Neil Brown added a comment - I think this problem is caused by some metadata directory trying to grow. I added some tracing and found that the call to osd_ldiskfs_append() in iam_new_node() was failing with ENOSPC. Maybe the best fix would be to add a test to ldiskfs_append() to check if it is a special lustre metadata directory, and if so to bypass the dir limit. Is there an easy way to detect lustre metadata directories?

            People

              dongyang Dongyang Li
              maloo Maloo
              Votes:
              0 Vote for this issue
              Watchers:
              16 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: