[jboss-jira] [JBoss JIRA] (AS7-6779) AS7.1 jars run against as7.2/eap6.1 cause test case (eclipse) to hang
RH Bugzilla Integration (JIRA)
jira-events at lists.jboss.org
Mon Mar 25 12:22:43 EDT 2013
[ https://issues.jboss.org/browse/AS7-6779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12762992#comment-12762992 ]
RH Bugzilla Integration commented on AS7-6779:
----------------------------------------------
Rob Stryker <rstryker at redhat.com> made a comment on [bug 927320|https://bugzilla.redhat.com/show_bug.cgi?id=927320]
Description of problem:
Using AS 7.2 / EAP 6.1 client jars to connect to AS 7.0.x fails with hang.
Version-Release number of selected component (if applicable):
jboss-as-controller-client-7.2.0.Final-redhat-3.jar,
jboss-as-logging-7.2.0.Final-redhat-3.jar,
jboss-as-protocol-7.2.0.Final-redhat-3.jar,
jboss-dmr-1.1.6.Final-redhat-1.jar,
jboss-logging-3.1.2.GA-redhat-1.jar,
jboss-marshalling-1.3.16.GA-redhat-1.jar,
jboss-marshalling-river-1.3.16.GA-redhat-1.jar,
jboss-remoting-3.2.15.GA-redhat-1.jar,
jboss-sasl-1.0.3.Final-redhat-1.jar,
jboss-threads-2.1.0.Final-redhat-1.jar,
xnio-api-3.0.7.GA-redhat-1.jar,
xnio-nio-3.0.7.GA-redhat-1.jar
How reproducible:
Occasionally, if with random management actions. Every time when performed with attached eclipse project.
Steps to Reproduce:
1. Download and import into eclipse the plain java project attached to https://issues.jboss.org/browse/AS7-6779
2. Set project classpath to use jars from as7.2 folder and Launch an AS 7.0.x server outside of eclipse, OR, set project classpath to use jars from as7.1 folder and launch an EAP 6.1 outside of eclipse.
3. Run the new project's main class.
Actual results:
The Main class hangs. In this case the client is a simple Main class. However, when similar code is run as an eclipse plugin, it could freeze the workspace.
Expected results:
The methods complete without error.
Additional info:
More information is provided at https://issues.jboss.org/browse/AS7-6779
> AS7.1 jars run against as7.2/eap6.1 cause test case (eclipse) to hang
> ---------------------------------------------------------------------
>
> Key: AS7-6779
> URL: https://issues.jboss.org/browse/AS7-6779
> Project: Application Server 7
> Issue Type: Bug
> Components: Remoting
> Reporter: Rob Stryker
> Assignee: David Lloyd
> Priority: Blocker
> Attachments: out.zip
>
>
> Somewhere along the line recently, EAP6.1 / AS 7.2 has a regression in remoting or xnio somehow, and this is causing blocking problems for tools.
> Recall:
> 1) JBossTools bundles a set of jars capable of communicating with a running application server
> 2) This single set of jars must be capable of communicating with all servers in the 7.x stream
> 3) Bundling a second set of jars is not easily accomplished, but could be possible
> And:
> 4) Using the as7.1.0 jars against eap6.1 in a specific unit test causes eclipse to hang
> The basic code of our test case (once we get rid of the jbt stuff wrapped around it) is basically as follows:
> {code}
> this.client = ModelControllerClient.Factory.create(details.getHost(), details.getManagementPort(),
> getCallbackHandler());
> this.manager = ServerDeploymentManager.Factory.create(client);
> DeploymentPlanBuilder builder = manager.newDeploymentPlan().replace(name, file);
> try {
> DeploymentAction action = builder.getLastAction();
> Future<ServerDeploymentPlanResult> planResult = manager.execute(builder.build());
> // FREEZE HERE
> // This is "DeploymentOperationResult.getStatus() in the stack trace
> ServerDeploymentActionResult actionResult = planResult.get().getDeploymentActionResult(action.getId());
> IStatus status = createStatus(action.getDeploymentUnitUniqueName(), action.getType().name(), actionResult);
> } catch (Exception e) {
> throw new JBoss7ManangerException(e);
> }
> {code}
> The actual stack trace is:
> {code}
> Thread [main] (Suspended)
> owns: RunnableLock (id=461)
> waiting for: ActiveOperationSupport$ActiveOperationImpl<T,A> (id=462)
> Object.wait(long) line: not available [native method]
> ActiveOperationSupport$ActiveOperationImpl<T,A>(Object).wait() line: 503
> ActiveOperationSupport$ActiveOperationImpl<T,A>(AsyncFutureTask<T>).await() line: 192
> ActiveOperationSupport$ActiveOperationImpl<T,A>(AsyncFutureTask<T>).get() line: 266
> AbstractModelControllerClient$DelegatingCancellableAsyncFuture.get() line: 363
> AbstractModelControllerClient$DelegatingCancellableAsyncFuture.get() line: 317
> ServerDeploymentPlanResultFuture.get() line: 76
> ServerDeploymentPlanResultFuture.get() line: 42
> DeploymentOperationResult.getStatus() line: 52
> AS7ManagerTestUtils.waitUntilFinished(IJBoss7DeploymentResult) line: 93
> AS7ManagerIntegrationTest.canReplaceWar() line: 129
> {code}
> The list of jars we are using to communicate with the server are:
> {code}
> jboss-as-controller-client-7.1.0.Final.jar
> jboss-as-protocol-7.1.0.Final.jar
> jboss-dmr-1.1.1.Final.jar
> jboss-logging-3.1.0.GA.jar
> jboss-marshalling-1.3.9.GA.jar
> jboss-remoting-3.2.7.GA.jar
> jboss-sasl-1.0.0.Final.jar
> jboss-threads-2.0.0.GA.jar
> xnio-api-3.0.3.GA.jar
> xnio-nio-3.0.3.GA.jar
> {code}
> It was suggested in irc by ctomc that we simply replace the following jars with new jars from jboss-as 7.2 / eap6.1:
> {code}
> jboss-remoting-3.2.7.GA.jar -> 3.2.15.GA
> xnio-api-3.0.3.GA.jar -> 3.0.7
> xnio-nio-3.0.3.GA.jar -> 3.0.7
> {code}
> This approach also failed, with the following stack trace:
> {code}
> java.lang.NoClassDefFoundError: org/xnio/Cancellable
> (sic)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
> at org.jboss.as.controller.client.impl.RemotingModelControllerClient.<init>(RemotingModelControllerClient.java:59)
> at org.jboss.as.controller.client.ModelControllerClient$Factory.create(ModelControllerClient.java:211)
> at org.jboss.as.controller.client.ModelControllerClient$Factory.create(ModelControllerClient.java:173)
> {code}
> So it is obvious that jboss-as-controller jar from as-7.1 requires classes that are no longer present in xnio. If this is the case, it would indicate that xnio has REMOVED classes from its jar during an incremental version from 3.0.3 to 3.0.7, which would constitute an API breakage.
> So clearly for us, updating only remoting and xnio does not work. The next possible solution would be to update ALL jars, however, this led to a similar situation when using AS7.2 / Eap 6.1 jars to communicate with an AS 7.0.0 server. Again, similar to what was mentioned above, all tests passed EXCEPT the test above. The test above failed with an almost identical stack trace:
> {code}
> Thread [main] (Suspended)
> owns: RunnableLock (id=160)
> waiting for: ActiveOperationSupport$ActiveOperationImpl<T,A> (id=161)
> Object.wait(long) line: not available [native method]
> ActiveOperationSupport$ActiveOperationImpl<T,A>(Object).wait() line: 503
> ActiveOperationSupport$ActiveOperationImpl<T,A>(AsyncFutureTask<T>).await() line: 192
> ActiveOperationSupport$ActiveOperationImpl<T,A>(AsyncFutureTask<T>).get() line: 266
> AbstractModelControllerClient$DelegatingCancellableAsyncFuture(AbstractDelegatingAsyncFuture<T>).get() line: 100
> ServerDeploymentPlanResultFuture.get() line: 76
> ServerDeploymentPlanResultFuture.get() line: 42
> DeploymentOperationResult.getStatus() line: 52
> AS7ManagerTestUtils.waitUntilFinished(IJBoss7DeploymentResult) line: 93
> AS7ManagerTestUtils.quietlyUndeploy(String, AS71Manager) line: 76
> AS7ManagerIntegrationTest.canReplaceWar() line: 135
> {code}
> No matter how you look at it, the contract has been broken. JBossTools now is looking for a specific set of jars which care capable of communicating with AS7.0, 7.1, 7.2, eap6.0, 6.1, jpp6.0, etc. Without a set of jars that can communicate with all of these servers, our tools will need to implement drastic workarounds or bundle several versions of the app server's jars within it.
> It's interesting to me that the as7.1 jars work against everything except eap6.1, and yet, the eap6.1 jars work against everything except as7.0.0.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list