-
Notifications
You must be signed in to change notification settings - Fork 142
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NEWRELIC-3836 remove obsolete ibm workaround - support Semeru/OpenJ9 versions #993
Conversation
relates to: |
Related to ait work needed for these runtimes: |
@@ -98,6 +101,7 @@ public void testNoticedStringDoesNotBubble() { | |||
)); | |||
} | |||
|
|||
@Category(IBMJ9IncompatibleTest.class) | |||
@Test | |||
public void testNoticedErrorOverridesThrownError() { | |||
runTransaction(new SpanErrorFlow.NoticeAndThrow()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IBMj9 throws this as Division by zero
and our tests look for the String / by zero
.
@@ -72,7 +73,7 @@ public void testMissingNewRelicClass() throws ClassNotFoundException { | |||
|
|||
// Java 12 no longer lets us access the declared field | |||
@Test | |||
@Category({ Java12IncompatibleTest.class, Java13IncompatibleTest.class, Java14IncompatibleTest.class, | |||
@Category({ IBMJ9IncompatibleTest.class, Java12IncompatibleTest.class, Java13IncompatibleTest.class, Java14IncompatibleTest.class, | |||
Java15IncompatibleTest.class, Java16IncompatibleTest.class, Java17IncompatibleTest.class, Java18IncompatibleTest.class }) | |||
public void testSetSystemClassLoader() throws Exception { | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Classloader
class used in the J9 implementation does not have the field scl
.
@@ -39,7 +40,9 @@ | |||
import static org.junit.Assert.assertNotNull; | |||
|
|||
// Issue when running cassandra unit on Java 9+ - https://github.com/jsevellec/cassandra-unit/issues/249 | |||
@Category({Java9IncompatibleTest.class, Java10IncompatibleTest.class, Java11IncompatibleTest.class, Java12IncompatibleTest.class, Java13IncompatibleTest.class, Java14IncompatibleTest.class, | |||
// Many OpenJ9 and Cassandra issues e.g. :https://github.com/jsevellec/cassandra-unit/issues/295 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All of these tests failed, but the failures were J9+Cassandra compatability. From what I can tell, anyone attempting to use Cassandra with OpenJ9 is already having issues.
lasp_strip_exceptions.py test needs to be reworked specifically for OpenJ9. The return value for ArithmeticException is different than openJDK. This will need to be done when the AIT work for IBM Semeru/OpenJ9 is implemented. |
Our current gradle version is blocking us from testing with Semeru. Long story, but we had upgrading our gradle version on the road map anyway. |
c615a63
to
82cbebd
Compare
errors.py:
This is similar to the SpanErrorsTest failure: It looks like OpenJ9 uses the string
Various in
Others as well: Unit tests for Java 8 and 11 OpenJ9 do not finish. It is unclear why. |
cf0a52c
to
9f51b86
Compare
9196cf2
to
ada7129
Compare
run tests for 8 and 11 on J9 test exclude openj9 on scl test try use Ibm sys classloader expect GeneratedSerializationConstructor remove -Porg.gradle.java.installations.auto-download=false get branch current with rebase exclude cassandra datastax test add some why comments add some why comments add some why comments fix java install add incompatible test marker revert back to temurin
1a7728b
to
ac199fc
Compare
Issue explained in these comments:
We never add the agent-bridge-datastore.jar in the ibmWorkaround path. However, even with that, there is still a bug in the IBM Workaround path where we fail to use the correct branch of logic for versions 8 and above.
You can see in the if condition here that we only really check 1.7, so IBM JVMs 8 and above will always be true. 8 is above srNum 4. Also, 9+ uses platform classloader, so this is all just uneccesary. Had this check been correct, this issue probably wouldn't have come up. Still, best to rip this stuff out because it just is pointless complexity in the BootstrapAgent.
This entire logic is obsolete anyway because the agent no longer supports Java 6 and 7.
Tests:
We need to add OpenJ9 and/or Semeru runtimes to our AITs