[infinispan-issues] [JBoss JIRA] (ISPN-4421) Migration from jboss-as to wildfly arquillian-container-managed broke RollingUpgrades tests
Tomas Sykora (JIRA)
issues at jboss.org
Sat Aug 23 05:21:59 EDT 2014
[ https://issues.jboss.org/browse/ISPN-4421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12995149#comment-12995149 ]
Tomas Sykora edited comment on ISPN-4421 at 8/23/14 5:21 AM:
-------------------------------------------------------------
I want to at least somehow quickly sum up my investigation in this area at the end of week so I can clear my head this way before a weekend.
So... I was playing with droidium multiple container extension (https://github.com/arquillian/arquillian-droidium/tree/master/droidium-container#multiple-containers-extension). This stuff should allow us to start 2 different containers in one test. I.e. JBoss-as (7) and Wildfly (8+) in order to be able comfortly test rolling upgrades.
After decent investigation and discussion with Stefan (author of the extension), we created: https://issues.jboss.org/browse/WFLY-3756
I suppose this stuff is currently blocking us in the next proceeding because:
1) I needed to rebuild my own SNAPSHOT of wildfly arq container in order to differentiate org.jboss.as.arquillian.container.managed.ManagedDeployableContainer class. FQN was the same for wildfly and jboss-as.
2) Something is still wrong. I am able to start old jboss-as based ispn server using arquillian when I use ONLY jboss-as adapter on the classpath. When I add also wildfly adapter to the class path I end up with:
17:40:53,934 ERROR [org.jboss.remoting.remote.connection] (Remoting "node1:MANAGEMENT" read-1) JBREM000200: Remote connection failed: java.io.IOException: Received an invalid message length of 1195725856
This is result of a wrong call inside of isServerInRunningState() method in ManagementClient.java class from jboss-as-arquillian-container-managed. Particularly:
ModelNode rsp = client.execute(op);
This call fails when both wildfly-arquillian-container-managed and jboss-as-arquillian-container-managed are present on the class path.
jboss-as managed adapter is not able to properly recognize that server is already running.
The last step is to dig a little bit deeper to find out exact reason for this.
was (Author: tsykora):
I want to at least somehow quickly sum up my investigation in this area at the end of week so I can clear my head this way before a weekend.
So... I was playing with droidium multiple container extension (https://github.com/arquillian/arquillian-droidium/tree/master/droidium-container#multiple-containers-extension). This stuff should allow us to start 2 different containers in one test. I.e. JBoss-as (7) and Wildfly (8+) in order to be able comfortly test rolling upgrades.
After decent investigation and discussion with Stefan (author of the extension), we created: https://issues.jboss.org/browse/WFLY-3756
I suppose this stuff is currently blocking us in the next proceeding because:
1) I needed to rebuild my own SNAPSHOT of wildfly arq container in order to differentiate org.jboss.as.arquillian.container.managed.ManagedDeployableContainer class. FQN was the same for wildfly and jboss-as.
2) Something is still wrong. I am able to start old jboss-as based ispn server using arquillian when I use ONLY on the classpath. When I add to the class path I end up with:
17:40:53,934 ERROR [org.jboss.remoting.remote.connection] (Remoting "node1:MANAGEMENT" read-1) JBREM000200: Remote connection failed: java.io.IOException: Received an invalid message length of 1195725856
This is result of a wrong call inside of isServerInRunningState() method in ManagementClient.java class from jboss-as-arquillian-container-managed. Particularly:
ModelNode rsp = client.execute(op);
This call fails when both wildfly-arquillian-container-managed and jboss-as-arquillian-container-managed are present on the class path.
jboss-as managed adapter is not able to properly recognize that server is already running.
The last step is to dig a little bit deeper to find out exact reason for this.
> Migration from jboss-as to wildfly arquillian-container-managed broke RollingUpgrades tests
> -------------------------------------------------------------------------------------------
>
> Key: ISPN-4421
> URL: https://issues.jboss.org/browse/ISPN-4421
> Project: Infinispan
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: Test Suite - Server
> Affects Versions: 7.0.0.Alpha4
> Reporter: Tomas Sykora
> Assignee: Mircea Markus
> Labels: test_suite, testsuite_stability
>
> Server was rebased to Wildfly.
> For Arquillian, jboss-as-arquillian-container-managed was changed to wildfly-arquillian-container-managed in order to reflect respective changes.
> The problem for Rolling Upgrade tests ( -Psuite.rolling.upgrades ) is that there are used also old server instances in those tests.
> Due to new changes in infinispan-arquillian-container old Infinispan servers are not properly managed during their startup phase.
> Observation:
> Switching port to 10099 (wildfly is using 10090 for mgmt ops) does not help. Strange message is continuously showing until timeout:
> 13:41:57,691 ERROR [org.jboss.remoting.remote.connection] (Remoting "node1:MANAGEMENT" read-1) JBREM000200: Remote connection failed: java.io.IOException: Received an invalid message length of 1195725856
> "Experiment" with setting up <property name="managementProtocol">remoting-jmx</property> for OLD server in arquillian.xml didn't help either, however, ERROR message ^ disappeared.
> But the server can't start properly, better to say, it starts, but Arquillian is not able to handle it properly and communicate:
> testHotRodRollingUpgradesDiffVersions(org.infinispan.server.test.rollingupgrades.HotRodRollingUpgradesIT) Time elapsed: 60.389 sec <<< ERROR!
> org.jboss.arquillian.container.spi.client.container.LifecycleException: Could not start container
> at org.jboss.as.arquillian.container.managed.ManagedDeployableContainer.startInternal(ManagedDeployableContainer.java:204)
> at org.jboss.as.arquillian.container.CommonDeployableContainer.start(CommonDeployableContainer.java:112)
> at org.jboss.arquillian.container.impl.ContainerImpl.start(ContainerImpl.java:199)
> at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$8.perform(ContainerLifecycleController.java:163)
> at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$8.perform(ContainerLifecycleController.java:157)
> at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.forContainer(ContainerLifecycleController.java:255)
> at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.startContainer(ContainerLifecycleController.java:156)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
> at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
> at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
> at org.jboss.arquillian.container.impl.client.ContainerDeploymentContextHandler.createContainerContext(ContainerDeploymentContextHandler.java:57)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
> at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
> at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135)
> at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:115)
> at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
> at org.jboss.arquillian.container.test.impl.client.container.ClientContainerController.start(ClientContainerController.java:93)
> at org.infinispan.server.test.rollingupgrades.HotRodRollingUpgradesIT.testHotRodRollingUpgradesDiffVersions(HotRodRollingUpgradesIT.java:68)
> It looks like we need to somehow create a "bridge" or "switch" which will allow operations for both old and new servers in one test.
> Or maybe I'm missing something important.
--
This message was sent by Atlassian JIRA
(v6.3.1#6329)
More information about the infinispan-issues
mailing list