[
https://issues.jboss.org/browse/WFLY-12613?page=com.atlassian.jira.plugin...
]
Richard Achmatowicz edited comment on WFLY-12613 at 10/1/19 2:09 PM:
---------------------------------------------------------------------
There is a bit of a problem here in getting the exclusion to work with the combination of
two conditions above.
Firstly, AFAICT, maven profiles don't permit using multiple activation conditions, so
I can't easily set up a profile to exclude the test.
Secondly, I can't use the condition:
{noformat}
Assume.assumeFalse(System.getProperty("java.version").startsWith("1.8")
&& System.getProperty("java.vendor").startsWith("IBM"));
{noformat}
within the test itself, as the agent gets loaded (and the exception gets raised) before
the test executes. I can confirm this.
Thirdly, Arquillian does not support the use of Assume in a @BeforeClass or @AfterClass
method, which would be where I would want to call it. In other words, the issue
https://issues.jboss.org/browse/WFLY-7741 still holds ( I tried it ...)
Please let me know if I am missing an obvious way to get around this.
What I can do is require that the test not execute against any IBM JVM, by setting up a
profile to exclude that particular execution (ts.surefire.clustering.all-ejb-byteman).
This would not affect the OpenJ9 test executions as they have a different Java vendor.
[~brian.stansberry] [~luck3y] WDYT?
was (Author: rachmato):
There is a bit of a problem here in getting the exclusion to work with the combination of
two conditions above.
Firstly, AFAICT, maven profiles don't permit using multiple activation conditions, so
I can't easily set up a profile to exclude the test.
Secondly, I can't use the condition:
{noformat}
Assume.assumeFalse(System.getProperty("java.version").startsWith("1.8")
&& System.getProperty("java.vendor").startsWith("IBM"));
{noformat}
within the test itself, as the agent gets loaded (and the exception gets raised) before
the test executes. I can confirm this.
Thirdly, Arquillian does not support the use of Assume in a @BeforeClass or @AfterClass
method, which would be where I would want to call it. In other words, the issue
https://issues.jboss.org/browse/WFLY-7741 still holds ( I tried it ...)
Please let me know if I am missing an obvious way to get around this.
What I can do is require that the test not execute against any IBM JVM, by setting up a
profile to exclude that particular execution (ts.surefire.clustering.all-ejb-byteman).
This would not affect the OpenJ9 test executions as they have a different Java vendor.
Exclude IBM J9 JVM from Byteman-based test cases
------------------------------------------------
Key: WFLY-12613
URL:
https://issues.jboss.org/browse/WFLY-12613
Project: WildFly
Issue Type: Bug
Components: Test Suite
Affects Versions: 18.0.0.Final
Reporter: Richard Achmatowicz
Assignee: Richard Achmatowicz
Priority: Major
Fix For: 18.0.0.Final
The test case
org.jboss.as.test.clustering.cluster.ejb.remote.byteman.LastNodeToLeaveRemoteEJBTestCase
uses Byteman to check a condition for validating whether the test passes or fails. The
component arquillian-extension-byteman is used to allow the use of Byteman annotations
within the Arquillian test case.
There is a problem with running Byteman-based test cases against the IBM J9 Java
runtime:
{noformat}
[ERROR]
org.jboss.as.test.clustering.cluster.ejb.remote.byteman.LastNodeToLeaveRemoteEJBTestCase
Time elapsed: 1.202 s <<< ERROR!
java.lang.RuntimeException: Could not install byteman agent
at
org.jboss.arquillian.extension.byteman.impl.client.AgentInstaller.install(AgentInstaller.java:98)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:507)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
at
org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:90)
at
org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:69)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:507)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:86)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:95)
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:133)
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:105)
at
org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.beforeSuite(EventTestRunnerAdaptor.java:71)
at org.jboss.arquillian.junit.AdaptorManager.initializeAdaptor(AdaptorManager.java:23)
at
org.jboss.arquillian.junit.AdaptorManagerWithNotifier.initializeAdaptor(AdaptorManagerWithNotifier.java:19)
at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:109)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
at
org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:383)
at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:344)
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:417)
Caused by: com.sun.tools.attach.AgentInitializationException: ATTACH_ERR
AgentInitializationException102
at ibm.tools.attach.J9VirtualMachine.loadAgent(J9VirtualMachine.java:66)
at
org.jboss.arquillian.extension.byteman.impl.client.AgentInstaller.install(AgentInstaller.java:91)
... 28 more
{noformat}
{noformat}
[nrla@localhost wildfly-git-repo]$ java -version
java version "1.8.0"
Java(TM) SE Runtime Environment (build pxa6480sr2-20151023_01(SR2))
IBM J9 VM (build 2.8, JRE 1.8.0 Linux amd64-64 Compressed References 20151019_272764 (JIT
enabled, AOT enabled)
J9VM - R28_Java8_SR2_20151019_2144_B272764
JIT - tr.r14.java_20151006_102517.04
GC - R28_Java8_SR2_20151019_2144_B272764_CMPRSS
J9CL - 20151019_272764)
JCL - 20151022_01 based on Oracle jdk8u65-b17
{noformat}
Until this JVM bug can be fixed, we need to exclude executions of this test against the
IBM J9 JVM.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)