Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-10330

Make the mmap directory tests fail by default, if unmapping does not work

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 9.0, 9.1, 10.0 (main)
    • 9.1, 10.0 (main)
    • core/store
    • None
    • New

    Description

      Since the recent refactoring with Java modules, we figured out that we have no tests, that MMapDirectory always works correctly and is choosen as default, e.g. because you have a module setup where jdk.unsupported is missing (last seen on Luke) or since the refactoring of tests after LUCENE-10255 (see also discussion about how tests should be ran with module system in LUCENE-10328).

      Currently TestMMapDirectory and similar ones silently disable themselves if the "Unmap Hack" is not detected. The warning is hidden by gradle, so that's a bad default.

      We should simply fail the test when unmapping does not work and add an option to "still run tests if you know what you're doing". All current Java releases are OpenJDK based (at least those in main/9.x as those use JDK 11), so the unmap hack always works.

      Of course MMapDirectory still disables itsself at runtime (e.g. when security policy is preventing it or if user has module system and does not add it – we should add this to the warning message), but we should make sure that we test it on known platforms.

      Another option would be to check the assume and modify it to also check the version tring for "OpenJDK", "Oracle" and enforce that test is enabled. But this is too risky, so I would simply fail test if unmapping does not work with a system property to disable checks.

      Attachments

        Issue Links

          Activity

            People

              uschindler Uwe Schindler
              uschindler Uwe Schindler
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 2h
                  2h