Hi Dawid,
So if we want this to be included in 8u162 [1] (to be released on
January 2018), we better hurry up and submit a backported patch before
end of October...
I can sponsor the patch. Will you be willing to prepare it or do you
need some help?
I think it should be a straightforward backport of JDK-8065172 [2].
Regards, Peter
[1] http://openjdk.java.net/projects/jdk8u/releases/8u162.html
[2] https://bugs.openjdk.java.net/browse/JDK-8065172
On 10/17/17 12:41, Dawid Weiss wrote:
Hi Peter,
Thanks for the pointer. Whether or not this fix should be backported
to 8u is probably not for me to decide... but if I can provide some
rationale then I think it'd be better to backport for the following
reasons:
- This assertion isn't frequent, but it does happen from time to time.
Robert Muir also let me know in a private conversation that the
assertion was triggered from time to time in Lucene tests; the test
that mostly caused it to happen has been since disabled (for unrelated
reasons).
- I quickly grepped the most recent Solr/Lucene logs and I see that
the assertion can be buried deep (in the suppressed exceptions chain),
which may be easily overlooked or raise false other concerns. Look at
the stack trace [1] below, for example.
- We run tests on multiple different JVMs/ systems and I'm 99%
confident I've seen errors with this assertion on IBM's J9 too, so it
affects the whole Java ecosystem, not just OpenJDK?
Dawid
[1] Build: https://jenkins.thetaphi.de/job/Lucene-Solr-master-Linux/20468/
5 tests failed.
FAILED:
junit.framework.TestSuite.org.apache.solr.analytics.facet.QueryFacetCloudTest
Error Message:
Error starting up MiniSolrCloudCluster
java.lang.Exception: Error starting up MiniSolrCloudCluster
at __randomizedtesting.SeedInfo.seed([954FE60C5C176808]:0)
at
org.apache.solr.cloud.MiniSolrCloudCluster.checkForExceptions(MiniSolrCloudCluster.java:507)
at
org.apache.solr.cloud.MiniSolrCloudCluster.<init>(MiniSolrCloudCluster.java:251)
at
org.apache.solr.cloud.SolrCloudTestCase$Builder.configure(SolrCloudTestCase.java:190)
at
org.apache.solr.analytics.facet.AbstractAnalyticsFacetCloudTest.setupCluster(AbstractAnalyticsFacetCloudTest.java:56)
at
org.apache.solr.analytics.facet.QueryFacetCloudTest.beforeClass(QueryFacetCloudTest.java:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1737)
at
com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:874)
at
com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:890)
at
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
at
com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule$1.evaluate(SystemPropertiesRestoreRule.java:57)
at
org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45)
at
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
at
org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:41)
at
com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
at
com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
at
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
at
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
at
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
at
org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53)
at
org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47)
at
org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64)
at
org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:54)
at
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
at
com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368)
at java.lang.Thread.run(Thread.java:748)
Suppressed: java.lang.AssertionError
at
sun.reflect.generics.reflectiveObjects.WildcardTypeImpl.getUpperBoundASTs(WildcardTypeImpl.java:86)
at
sun.reflect.generics.reflectiveObjects.WildcardTypeImpl.getUpperBounds(WildcardTypeImpl.java:122)
at
sun.reflect.generics.reflectiveObjects.WildcardTypeImpl.toString(WildcardTypeImpl.java:190)
at java.lang.reflect.Type.getTypeName(Type.java:46)
at
sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.toString(ParameterizedTypeImpl.java:234)
at java.lang.reflect.Type.getTypeName(Type.java:46)
at
java.lang.reflect.Method.specificToGenericStringHeader(Method.java:421)
at
java.lang.reflect.Executable.sharedToGenericString(Executable.java:163)
at java.lang.reflect.Method.toGenericString(Method.java:415)
at java.beans.MethodRef.set(MethodRef.java:46)
at
java.beans.MethodDescriptor.setMethod(MethodDescriptor.java:117)
at java.beans.MethodDescriptor.<init>(MethodDescriptor.java:72)
at java.beans.MethodDescriptor.<init>(MethodDescriptor.java:56)
at
java.beans.Introspector.getTargetMethodInfo(Introspector.java:1205)
at java.beans.Introspector.getBeanInfo(Introspector.java:426)
at java.beans.Introspector.getBeanInfo(Introspector.java:173)
at java.beans.Introspector.getBeanInfo(Introspector.java:260)
at java.beans.Introspector.<init>(Introspector.java:407)
at java.beans.Introspector.getBeanInfo(Introspector.java:173)
at java.beans.Introspector.getBeanInfo(Introspector.java:260)
at java.beans.Introspector.<init>(Introspector.java:407)
at java.beans.Introspector.getBeanInfo(Introspector.java:173)
at java.beans.Introspector.getBeanInfo(Introspector.java:260)
at java.beans.Introspector.<init>(Introspector.java:407)
at java.beans.Introspector.getBeanInfo(Introspector.java:173)
at
org.apache.solr.util.SolrPluginUtils.findSetter(SolrPluginUtils.java:1027)
at
org.apache.solr.util.SolrPluginUtils.invokeSetters(SolrPluginUtils.java:1011)
at
org.apache.solr.util.SolrPluginUtils.invokeSetters(SolrPluginUtils.java:1000)
On Tue, Oct 17, 2017 at 12:13 PM, Peter Levart <peter.lev...@gmail.com> wrote:
Hi Dawid,
The [2] mentions a thread which resulted in a patch by Martin Bucholtz for
JDK 9:
https://bugs.openjdk.java.net/browse/JDK-8065172
...but it seems this has not been backported to 8u (yet). The question is,
will there be any more 8u releases? Would you like this to be backported to
8u?
Regards, Peter
On 10/13/2017 09:53 AM, Dawid Weiss wrote:
Hi all,
We are observing very infrequent assertion errors originating in
getUpperBoundASTs, mostly during concurrent builds on our build
machine, when it's under a heavy load. This has been happening from
time to time with various Java versions; most recently with 1.8.0_131.
I don't see anything in Jira about it, but even a quick Google search
yields some hits [1].
The stack trace starts with (I include the jackson stack frame which calls
it):
java.lang.AssertionError: null
at
sun.reflect.generics.reflectiveObjects.WildcardTypeImpl.getUpperBoundASTs(WildcardTypeImpl.java:86)
~[?:1.8.0_131]
at
sun.reflect.generics.reflectiveObjects.WildcardTypeImpl.getUpperBounds(WildcardTypeImpl.java:122)
~[?:1.8.0_131]
at
com.fasterxml.jackson.databind.type.TypeFactory._fromWildcard(TypeFactory.java:1424)
~[jackson-databind-2.8.2.jar:2.8.2]
The problem cannot be easily reproduced, but I see a comment mentioned
on the core-libs-dev a while ago [2] by Joel Borggrén-Franck, so
perhaps his question is a valid one and worth investigating:
Btw, has anyone seen the assert for upper/lower bounds == null fail in
the wild?
Dawid
[1]
https://www.google.com/search?q=getUpperBoundASTs+AssertionError&filter=0&biw=1279&bih=863
(note the "[JENKINS] Lucene-olr-master-Linux" hit).
[2] http://markmail.org/message/4phfnh7dj3qdlo6b