Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
9.0, 9.1, 10.0 (main)
-
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
- split to
-
LUCENE-10342 Add (very limited) java.util.logging to Lucene Core
- Closed
- links to