[wildfly-dev] issues with IBM JVM on Linux
Scott Marlow
smarlow at redhat.com
Fri Sep 25 09:18:45 EDT 2015
Are you using the latest JVM? From [1], it looks like the last update
was on July 17th 2015.
Does it make a difference whether the classes were generated by the IBM
versus Oracle versus OpenJDK compiler?
Scott
[1] http://www.ibm.com/developerworks/java/jdk/linux/download.html
On 09/25/2015 09:08 AM, Alexey Loubyansky wrote:
> I've been trying to narrow down sporadic failures in the wfcore patching
> tests on the IBM JVM on Linux (version info below) for the last few
> days. I wanted to share this because what I see doesn't make sense to
> me. And I am not sure whether other modules have similar issues.
>
> So, in patching tests the (sporadic) problem appears when parsing XML
> attributes. E.g. if there is an element with attributes 'name' and
> 'add-on', sometimes the value of name will end up containing the value
> of add-on attribute. Here is the actual code for this (Attribute is an
> enum) from org.jboss.as.patching.metadata.PatchXmlUtils:
>
> String name = null;
> boolean isAddOn = false;
> final int count = reader.getAttributeCount();
> for (int i = 0; i < count; i++) {
> final String value = reader.getAttributeValue(i);
> final Attribute attribute =
> Attribute.forName(reader.getAttributeLocalName(i));
> if(Attribute.NAME == attribute) {
> name = value;
> } else if (Attribute.ADD_ON == attribute) {
> isAddOn = Boolean.valueOf(value);
> } else {
> throw unexpectedAttribute(reader, i);
> }
> }
>
> So, sometimes the tests fail because the value of name is 'true',
> apparently. This is just one example. It affects parsing attributes in
> general in this class.
>
> I noticed that if I do anything with variable 'value' in the loop (or
> pass it as an argument to some method and actually do something with it
> in that method), e.g. System.err.println("value=" + value); the problem
> goes away.
>
> Another workaround I've found is to inline the variable, i.e. use
> reader.getAttributeValue(i) directly instead of using a variable.
>
> By the "problem goes away" I mean that I haven't seen these kind of
> failures anymore with the changes I mentioned. To give some statistics,
> with the original code the tests would fail from 2 to 5 times out of 10
> runs.
> With the inlined variable value they pass 100%. I've be running them for
> 3 days now.
>
> Here is the JVM info.
>
> java version "1.8.0"
> Java(TM) SE Runtime Environment (build pxi3280-20150129_02)
> IBM J9 VM (build 2.8, JRE 1.8.0 Linux x86-32 20150116_231420 (JIT
> enabled, AOT enabled)
> J9VM - R28_Java8_GA_20150116_2030_B231420
> JIT - tr.r14.java_20150109_82886.02
> GC - R28_Java8_GA_20150116_2030_B231420
> J9CL - 20150116_231420)
> JCL - 20150123_01 based on Oracle jdk8u31-b12
>
>
> Any ideas or suggestions?
>
>
> Thanks,
> Alexey
> _______________________________________________
> wildfly-dev mailing list
> wildfly-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/wildfly-dev
>
More information about the wildfly-dev
mailing list