[ https://issues.apache.org/jira/browse/SOLR-8874?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15206127#comment-15206127 ]
Steve Loughran commented on SOLR-8874: -------------------------------------- there's no activity in Hadoop as we tend to be trailing edge: people get upset when we tell them to upgrade. That said: too trailing edge for some of us developers. The JIRA was created as placeholder rather than active dev point. # Nobody is going to be looking @ java 9 right now; java 8 is still getting cleanup details in. # If someone was to do the work for java 9 and supply patches, it can only be beneficial. You are probably the first people to test Hadoop and Java 9. What broke? > Add fixes and workaround for Java 9 Jigsaw (Module System) to Solr tests > ------------------------------------------------------------------------ > > Key: SOLR-8874 > URL: https://issues.apache.org/jira/browse/SOLR-8874 > Project: Solr > Issue Type: Test > Components: Tests > Affects Versions: 6.0 > Reporter: Uwe Schindler > Assignee: Uwe Schindler > Priority: Critical > Labels: Java9 > Fix For: master, 6.0, 6.1 > > Attachments: SOLR-8874.patch, SOLR-8874.patch, SOLR-8874.patch, > SOLR-8874.patch > > > We now have one more week to prepare our build for Java 9 Jigsaw. The next > Java 9 EA build will now contain the new Java 9 module system. From that time > on, it is no longer possible to test Java 9 unless we fix remaining bugs. > Currently Solr does not pass at all, because almost every test fails because > the RAMUsageEstimator tries to look into objects in static field where the > internals were hidden by Java 9: > {noformat} > [junit4] ERROR 0.00s | SolrRequestParserTest (suite) <<< > [junit4] > Throwable #1: java.lang.IllegalStateException: Unable to > access 'private final sun.nio.fs.WindowsFileSystem sun.nio.fs > .WindowsPath.fs' to estimate memory usage > [junit4] > at > __randomizedtesting.SeedInfo.seed([C6C2FAD07A66283B]:0) > [junit4] > at > com.carrotsearch.randomizedtesting.rules.RamUsageEstimator.createCacheEntry(RamUsageEstimator.java:602) > [junit4] > at > com.carrotsearch.randomizedtesting.rules.RamUsageEstimator.measureSizeOf(RamUsageEstimator.java:545) > [junit4] > at > com.carrotsearch.randomizedtesting.rules.RamUsageEstimator.sizeOfAll(RamUsageEstimator.java:387) > [junit4] > at > com.carrotsearch.randomizedtesting.rules.StaticFieldsInvariantRule$1.afterAlways(StaticFieldsInvariantRule.j > ava:127) > [junit4] > at > com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:43) > [junit4] > at > com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) > [junit4] > at > com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) > [junit4] > at > org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53) > [junit4] > at > org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47) > [junit4] > at > org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64) > [junit4] > at > org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:54) > [junit4] > at > com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) > [junit4] > at > com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:367) > [junit4] > at > java.lang.Thread.run(java.base@9-ea/Thread.java:804) > [junit4] > Caused by: java.lang.reflect.InaccessibleObjectException: > Unable to make member of class sun.nio.fs.WindowsPath access > ible: module java.base does not export sun.nio.fs to unnamed module @436813f3 > [junit4] > at > sun.reflect.Reflection.throwInaccessibleObjectException(java.base@9-ea/Reflection.java:420) > [junit4] > at > java.lang.reflect.AccessibleObject.checkCanSetAccessible(java.base@9-ea/AccessibleObject.java:174) > [junit4] > at > java.lang.reflect.Field.checkCanSetAccessible(java.base@9-ea/Field.java:170) > [junit4] > at > java.lang.reflect.Field.setAccessible(java.base@9-ea/Field.java:164) > [junit4] > at > com.carrotsearch.randomizedtesting.rules.RamUsageEstimator$3.run(RamUsageEstimator.java:597) > [junit4] > at > com.carrotsearch.randomizedtesting.rules.RamUsageEstimator$3.run(RamUsageEstimator.java:594) > [junit4] > at > java.security.AccessController.doPrivileged(java.base@9-ea/Native Method) > [junit4] > at > com.carrotsearch.randomizedtesting.rules.RamUsageEstimator.createCacheEntry(RamUsageEstimator.java:594) > [junit4] > ... 13 more > [junit4] Completed [1/1 (1!)] in 8.46s, 12 tests, 1 error <<< FAILURES! > {noformat} > I have 2 suggestions: > - for now disable the static heap usage checks for Java 9 (how? See below!) > - fix the problems! Mainly we have to ensure that *all* static, non-final > fields in tests pointing to Java obects are nulled on tear down (@AfterClass). > I have no idea how to do the disabling conditionally. Maybe Dawid Weiss can > give a hint. > In addition, almost every Hadoop test fails with Java 9 module system! Unless > Hadoop fixes this and we have updated libs, our only chance is to disable all > hadoop related stuff with Java 9 preview builds - sorry. I'd like to add a > new Test annotation {{@DisableWithJava9Jigsaw}}, which disables the test if > running under Java 9 Jigsaw. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org