[jboss-jira] [JBoss JIRA] (AS7-3764) Intermittent AbstractModelControllerClient Channel closed exception after :reload operation in the domain

Brian Stansberry (JIRA) jira-events at lists.jboss.org
Wed Feb 22 16:39:36 EST 2012


    [ https://issues.jboss.org/browse/AS7-3764?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12670097#comment-12670097 ] 

Brian Stansberry commented on AS7-3764:
---------------------------------------

A reload op is inherently vulnerable to this, as the process of reloading involves stopping the service that provides the management connection. That creates a race between getting the response out and the connection being closed. I'd like the CLI to provide a higher level command for reloads that can catch and cleanly deal with the connection being closed. Low level commands or direct use of ModelControllerClient will be always be vulnerable to this.

I'm assigning to Emanuel to have a look in case some of the stuff we put in to reduce the likelihood of this happening is not working. 
                
> Intermittent AbstractModelControllerClient Channel closed exception after :reload operation in the domain
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: AS7-3764
>                 URL: https://issues.jboss.org/browse/AS7-3764
>             Project: Application Server 7
>          Issue Type: Bug
>          Components: Domain Management
>    Affects Versions: 7.1.0.Final
>            Reporter: Dominik Pospisil
>            Assignee: Brian Stansberry
>
> I am getting intermittent channel closed exception after reload operation executed on HC in the domain.
> Exception:
> testAdminOnlyMode(org.jboss.as.test.integration.domain.suites.ServerManagementTestCase)  Time elapsed: 0.57 sec  <<< ERROR!
> java.io.IOException: java.util.concurrent.ExecutionException: Operation failed
> 	at org.jboss.as.controller.client.impl.AbstractModelControllerClient.executeForResult(AbstractModelControllerClient.java:139)
> 	at org.jboss.as.controller.client.impl.AbstractModelControllerClient.execute(AbstractModelControllerClient.java:81)
> 	at org.jboss.as.controller.client.helpers.domain.impl.DomainClientImpl.execute(DomainClientImpl.java:70)
> 	at org.jboss.as.test.integration.domain.suites.ServerManagementTestCase.checkState(ServerManagementTestCase.java:390)
> 	at org.jboss.as.test.integration.domain.suites.ServerManagementTestCase.waitUntilState(ServerManagementTestCase.java:371)
> 	at org.jboss.as.test.integration.domain.suites.ServerManagementTestCase.waitUntilState(ServerManagementTestCase.java:366)
> 	at org.jboss.as.test.integration.domain.suites.ServerManagementTestCase.testAdminOnlyMode(ServerManagementTestCase.java:291)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
> 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
> 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
> 	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
> 	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
> 	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
> 	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
> 	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
> 	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
> 	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
> 	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)
> 	at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
> 	at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
> 	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
> 	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
> 	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
> 	at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175)
> 	at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107)
> 	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68)
> Caused by: java.util.concurrent.ExecutionException: Operation failed
> 	at org.jboss.threads.AsyncFutureTask.operationFailed(AsyncFutureTask.java:74)
> 	at org.jboss.threads.AsyncFutureTask.get(AsyncFutureTask.java:268)
> 	at org.jboss.as.controller.client.impl.AbstractModelControllerClient$DelegatingCancellableAsyncFuture.get(AbstractModelControllerClient.java:363)
> 	at org.jboss.as.controller.client.impl.AbstractModelControllerClient$DelegatingCancellableAsyncFuture.get(AbstractModelControllerClient.java:317)
> 	at org.jboss.as.controller.client.impl.AbstractModelControllerClient.executeForResult(AbstractModelControllerClient.java:137)
> 	... 37 more
> Caused by: java.io.IOException: Channel closed
> 	at org.jboss.as.protocol.mgmt.AbstractMessageHandler.handleChannelClosed(AbstractMessageHandler.java:351)
> 	at org.jboss.as.controller.client.impl.RemotingModelControllerClient$2.handleClose(RemotingModelControllerClient.java:127)
> 	at org.jboss.as.controller.client.impl.RemotingModelControllerClient$2.handleClose(RemotingModelControllerClient.java:124)
> 	at org.jboss.as.protocol.mgmt.ManagementClientChannelStrategy$Establishing$3.handleClose(ManagementClientChannelStrategy.java:189)
> 	at org.jboss.as.protocol.mgmt.ManagementClientChannelStrategy$Establishing$3.handleClose(ManagementClientChannelStrategy.java:180)
> 	at org.jboss.remoting3.spi.SpiUtils.safeHandleClose(SpiUtils.java:54)
> 	at org.jboss.remoting3.spi.AbstractHandleableCloseable$CloseHandlerTask.run(AbstractHandleableCloseable.java:501)
> 	at org.jboss.remoting3.spi.AbstractHandleableCloseable.runCloseTask(AbstractHandleableCloseable.java:406)
> 	at org.jboss.remoting3.spi.AbstractHandleableCloseable.closeComplete(AbstractHandleableCloseable.java:277)
> 	at org.jboss.remoting3.remote.RemoteConnectionChannel.closeAction(RemoteConnectionChannel.java:489)
> 	at org.jboss.remoting3.spi.AbstractHandleableCloseable.close(AbstractHandleableCloseable.java:153)
> 	at org.jboss.as.protocol.mgmt.ManagementChannelReceiver.handleEnd(ManagementChannelReceiver.java:118)
> 	at org.jboss.remoting3.remote.RemoteConnectionChannel$2.run(RemoteConnectionChannel.java:273)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:662)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list