Details

    • 9223372036854775807

    Description

      The current conf-sanity test (the entire review-dne-part-3 test session) completes in about 10h45m, compared to the other test sessions that finish in 4h or less according to Maloo statistics.

      It would be useful to split conf-sanity into two or three separate test scripts, or at least separate test runs, so that they can be tested in parallel, and retested independently to reduce the impact of a subtest failure. I think it would be prudent to keep the existing subtest numbers, to facilitate mapping test results/failures between the old and new scripts.

      A large fraction of the test time of conf-sanity is reformatting and remounting the filesystem. This is often done unnecessarily - at the start of a test to change configuration parameters for that test, and then again at the end to "restore" the configuration to the default. It makes sense to split subtests into (at least) two categories - those that expect the filesystem to be unmounted at the start and do their own custom formatting (leaving the filesystem unmounted at the end and in an unk), and those that expect the filesystem to be mounted and can work with the existing filesystem configuration.

      Avoiding spurious reformat/remount itself could itself reduce the test duration significantly, since the average conf-sanity subtest time is 220 seconds, while the average sanity subtest time is 24 seconds (many only 6 seconds long).

      A third category of subtests would be the "old version upgrade" test_32[abcde], which themselves take 2700s, and will continue to grow as upgrade images for new releases are added (LU-11643, LU-14853).

      A fourth category of subtests could be those that "need a separate MGS", since these are always skipped in our regular testing. While this is only 8 of 184 subtests, having it as a separate test session would allow it to run with a different configuration and improve test coverage.

      Attachments

        Issue Links

          Activity

            [LU-14772] split conf-sanity into 2 or 3 parts
            adilger Andreas Dilger added a comment -

            Comments here from patch review:

            • these new test scripts should better names, like conf-sanity-upgrade.sh and conf-sanity-mgs.sh and conf-sanity-reformat.sh so that they have some meaning to developers and they will add new subtests in the right file in the future
            • in order to keep the tests working while these patches are landed, it would make sense to have the main conf-sanity.sh script run e.g. conf-sanity-upgrade.sh at the point where test_32* would normally have been run, maybe with an environment variable that skips the setup/boilerplate at the start?
            • at the end of these 3 patches the conf-sanity.sh script would just be an empty shell that calls the three scripts. That allows the changes to autotest to be done independently of landing these patches, and if other test scripts are using "Test-Parameters: testscript=conf-sanity" they will continue to get the test coverage they need.
            • once this conf-sanity split has been merged to all of the branches being tested, including interop sessions, then we could consider removing the conf-sanity.sh wrapper (i.e. in a few years)
            • there needs to be some kind of temporary "disable subtest-change session" setting in the new scripts (e.g. unset ONLY_MINUTES if it is 30, until a patch at the end of the series) so that the test framework doesn't try to run each moved subtest for 30 minutes...
            adilger Andreas Dilger added a comment - Comments here from patch review: these new test scripts should better names, like conf-sanity-upgrade.sh and conf-sanity-mgs.sh and conf-sanity-reformat.sh so that they have some meaning to developers and they will add new subtests in the right file in the future in order to keep the tests working while these patches are landed, it would make sense to have the main conf-sanity.sh script run e.g. conf-sanity-upgrade.sh at the point where test_32* would normally have been run, maybe with an environment variable that skips the setup/boilerplate at the start? at the end of these 3 patches the conf-sanity.sh script would just be an empty shell that calls the three scripts. That allows the changes to autotest to be done independently of landing these patches, and if other test scripts are using " Test-Parameters: testscript=conf-sanity " they will continue to get the test coverage they need. once this conf-sanity split has been merged to all of the branches being tested, including interop sessions, then we could consider removing the conf-sanity.sh wrapper (i.e. in a few years) there needs to be some kind of temporary "disable subtest-change session" setting in the new scripts (e.g. unset ONLY_MINUTES if it is 30, until a patch at the end of the series) so that the test framework doesn't try to run each moved subtest for 30 minutes...

            "Vitaliy Kuznetsov <vkuznetsov@ddn.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/57373
            Subject: LU-14772 tests: Separate tests that require reformat
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: 03e8ffae1a1372b5f905cd2f7486e4e2036acf00

            gerrit Gerrit Updater added a comment - "Vitaliy Kuznetsov <vkuznetsov@ddn.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/57373 Subject: LU-14772 tests: Separate tests that require reformat Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 03e8ffae1a1372b5f905cd2f7486e4e2036acf00

            "Vitaliy Kuznetsov <vkuznetsov@ddn.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/57372
            Subject: LU-14772 tests: Separate tests that require a separate MGS
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: 365884f5992a4ad40b2093ece5e3e046c0b4b635

            gerrit Gerrit Updater added a comment - "Vitaliy Kuznetsov <vkuznetsov@ddn.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/57372 Subject: LU-14772 tests: Separate tests that require a separate MGS Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 365884f5992a4ad40b2093ece5e3e046c0b4b635

            "Vitaliy Kuznetsov <vkuznetsov@ddn.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/57371
            Subject: LU-14772 tests: Separate "old version upgrade" tests
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: bee91e9b283b162ebb1ce80f22d4cccf62e3d051

            gerrit Gerrit Updater added a comment - "Vitaliy Kuznetsov <vkuznetsov@ddn.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/57371 Subject: LU-14772 tests: Separate "old version upgrade" tests Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: bee91e9b283b162ebb1ce80f22d4cccf62e3d051

            "Vitaliy Kuznetsov <vkuznetsov@ddn.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/57370
            Subject: LU-14772 tests: Add conf-sanity-framework.sh
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: d8293b1eda205ecf7d954fff23a8cc153e4a57a9

            gerrit Gerrit Updater added a comment - "Vitaliy Kuznetsov <vkuznetsov@ddn.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/57370 Subject: LU-14772 tests: Add conf-sanity-framework.sh Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: d8293b1eda205ecf7d954fff23a8cc153e4a57a9

            People

              vkuznetsov Vitaliy Kuznetsov
              adilger Andreas Dilger
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated: