Uploaded image for project: 'Application Server 7'
  1. Application Server 7
  2. AS7-1085

client controller is stuck waiting for server to shut down (but server was shut down and will not answer any more)

    XMLWordPrintable

Details

    • Bug
    • Resolution: Obsolete
    • Major
    • None
    • 7.0.0.CR1
    • Domain Management
    • None
    • Hide

      1) create the following operation:

      ModelNode request = new ModelNode();
      request.get(OP).set(SHUTDOWN);
      

      2) and send it to the server on behalf of the controller client:

      ModelControllerClient client = ModelControllerClient.Factory.create(host, port);
      ModelNode response = client.execute(node);
      

      Result:
      The client keeps waiting in the #execute method. The stack that is available while the client is waiting is the following:

      Thread [main] (Suspended)	
      	Object.wait(long) line: not available [native method]	
      	ManagementRequest$ManagementFuture<T>(Object).wait() line: 485 [local variables unavailable]	
      	ManagementRequest$ManagementFuture<T>(AsyncFutureTask<T>).await() line: 192	
      	ManagementRequest$ManagementFuture<T>(AsyncFutureTask<T>).get() line: 266	
      	AbstractModelControllerClient$ExecuteRequest(ManagementRequest<T>).executeForResult(ExecutorService, ManagementClientChannelStrategy) line: 131	
      	ModelControllerClient$Factory$2(AbstractModelControllerClient).executeSynch(ModelNode, OperationAttachments, OperationMessageHandler) line: 125	
      	ModelControllerClient$Factory$2(AbstractModelControllerClient).execute(ModelNode, OperationMessageHandler) line: 90	
      	ModelControllerClient$Factory$2(AbstractModelControllerClient).execute(ModelNode) line: 80	
      	AS7Manager.quietlyExecute(ModelNode) line: 199	
      	AS7Manager.stopServer() line: 157	
      	AS7ManagerIntegrationTest.canStopServer() line: 172	
      	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
      	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39	
      	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25	
      	Method.invoke(Object, Object...) line: 597	
      	FrameworkMethod$1.runReflectiveCall() line: 44	
      	FrameworkMethod$1(ReflectiveCallable).run() line: 15	
      	FrameworkMethod.invokeExplosively(Object, Object...) line: 41	
      	InvokeMethod.evaluate() line: 20	
      	RunBefores.evaluate() line: 28	
      	RunAfters.evaluate() line: 31	
      	BlockJUnit4ClassRunner.runNotIgnored(FrameworkMethod, EachTestNotifier) line: 79	
      	BlockJUnit4ClassRunner.runChild(FrameworkMethod, RunNotifier) line: 71	
      	BlockJUnit4ClassRunner.runChild(Object, RunNotifier) line: 49	
      	ParentRunner$3.run() line: 193	
      	ParentRunner$1.schedule(Runnable) line: 52	
      	BlockJUnit4ClassRunner(ParentRunner<T>).runChildren(RunNotifier) line: 191	
      	ParentRunner<T>.access$000(ParentRunner, RunNotifier) line: 42	
      	ParentRunner$2.evaluate() line: 184	
      	BlockJUnit4ClassRunner(ParentRunner<T>).run(RunNotifier) line: 236	
      	Suite.runChild(Runner, RunNotifier) line: 128	
      	Suite.runChild(Object, RunNotifier) line: 24	
      	ParentRunner$3.run() line: 193	
      	ParentRunner$1.schedule(Runnable) line: 52	
      	Suite(ParentRunner<T>).runChildren(RunNotifier) line: 191	
      	ParentRunner<T>.access$000(ParentRunner, RunNotifier) line: 42	
      	ParentRunner$2.evaluate() line: 184	
      	Suite(ParentRunner<T>).run(RunNotifier) line: 236	
      	JUnit4TestClassReference(JUnit4TestReference).run(TestExecution) line: 50	
      	TestExecution.run(ITestReference[]) line: 38	
      	RemotePluginTestRunner(RemoteTestRunner).runTests(String[], String, TestExecution) line: 467	
      	RemotePluginTestRunner(RemoteTestRunner).runTests(TestExecution) line: 683	
      	RemotePluginTestRunner(RemoteTestRunner).run() line: 390	
      	RemotePluginTestRunner.main(String[]) line: 62	
      	CoreTestApplication.run(Object) line: 23	
      	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
      	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39	
      	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25	
      	Method.invoke(Object, Object...) line: 597	
      	EclipseAppContainer.callMethodWithException(Object, String, Class[], Object[]) line: 587	
      	EclipseAppHandle.run(Object) line: 198	
      	EclipseAppLauncher.runApplication(Object) line: 110	
      	EclipseAppLauncher.start(Object) line: 79	
      	EclipseStarter.run(Object) line: 344	
      	EclipseStarter.run(String[], Runnable) line: 179	
      	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
      	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39	
      	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25	
      	Method.invoke(Object, Object...) line: 597	
      	Main.invokeFramework(String[], URL[]) line: 622	
      	Main.basicRun(String[]) line: 577	
      	Main.run(String[]) line: 1410	
      	Main.main(String[]) line: 1386	
      

      AS7Manager.quietlyExecute(ModelNode) line: 199

      is the jboss tools code that invokes client#execute

      Show
      1) create the following operation: ModelNode request = new ModelNode(); request.get(OP).set(SHUTDOWN); 2) and send it to the server on behalf of the controller client: ModelControllerClient client = ModelControllerClient.Factory.create(host, port); ModelNode response = client.execute(node); Result: The client keeps waiting in the #execute method. The stack that is available while the client is waiting is the following: Thread [main] (Suspended) Object .wait( long ) line: not available [ native method] ManagementRequest$ManagementFuture<T>( Object ).wait() line: 485 [local variables unavailable] ManagementRequest$ManagementFuture<T>(AsyncFutureTask<T>).await() line: 192 ManagementRequest$ManagementFuture<T>(AsyncFutureTask<T>).get() line: 266 AbstractModelControllerClient$ExecuteRequest(ManagementRequest<T>).executeForResult(ExecutorService, ManagementClientChannelStrategy) line: 131 ModelControllerClient$Factory$2(AbstractModelControllerClient).executeSynch(ModelNode, OperationAttachments, OperationMessageHandler) line: 125 ModelControllerClient$Factory$2(AbstractModelControllerClient).execute(ModelNode, OperationMessageHandler) line: 90 ModelControllerClient$Factory$2(AbstractModelControllerClient).execute(ModelNode) line: 80 AS7Manager.quietlyExecute(ModelNode) line: 199 AS7Manager.stopServer() line: 157 AS7ManagerIntegrationTest.canStopServer() line: 172 NativeMethodAccessorImpl.invoke0(Method, Object , Object []) line: not available [ native method] NativeMethodAccessorImpl.invoke( Object , Object []) line: 39 DelegatingMethodAccessorImpl.invoke( Object , Object []) line: 25 Method.invoke( Object , Object ...) line: 597 FrameworkMethod$1.runReflectiveCall() line: 44 FrameworkMethod$1(ReflectiveCallable).run() line: 15 FrameworkMethod.invokeExplosively( Object , Object ...) line: 41 InvokeMethod.evaluate() line: 20 RunBefores.evaluate() line: 28 RunAfters.evaluate() line: 31 BlockJUnit4ClassRunner.runNotIgnored(FrameworkMethod, EachTestNotifier) line: 79 BlockJUnit4ClassRunner.runChild(FrameworkMethod, RunNotifier) line: 71 BlockJUnit4ClassRunner.runChild( Object , RunNotifier) line: 49 ParentRunner$3.run() line: 193 ParentRunner$1.schedule( Runnable ) line: 52 BlockJUnit4ClassRunner(ParentRunner<T>).runChildren(RunNotifier) line: 191 ParentRunner<T>.access$000(ParentRunner, RunNotifier) line: 42 ParentRunner$2.evaluate() line: 184 BlockJUnit4ClassRunner(ParentRunner<T>).run(RunNotifier) line: 236 Suite.runChild(Runner, RunNotifier) line: 128 Suite.runChild( Object , RunNotifier) line: 24 ParentRunner$3.run() line: 193 ParentRunner$1.schedule( Runnable ) line: 52 Suite(ParentRunner<T>).runChildren(RunNotifier) line: 191 ParentRunner<T>.access$000(ParentRunner, RunNotifier) line: 42 ParentRunner$2.evaluate() line: 184 Suite(ParentRunner<T>).run(RunNotifier) line: 236 JUnit4TestClassReference(JUnit4TestReference).run(TestExecution) line: 50 TestExecution.run(ITestReference[]) line: 38 RemotePluginTestRunner(RemoteTestRunner).runTests( String [], String , TestExecution) line: 467 RemotePluginTestRunner(RemoteTestRunner).runTests(TestExecution) line: 683 RemotePluginTestRunner(RemoteTestRunner).run() line: 390 RemotePluginTestRunner.main( String []) line: 62 CoreTestApplication.run( Object ) line: 23 NativeMethodAccessorImpl.invoke0(Method, Object , Object []) line: not available [ native method] NativeMethodAccessorImpl.invoke( Object , Object []) line: 39 DelegatingMethodAccessorImpl.invoke( Object , Object []) line: 25 Method.invoke( Object , Object ...) line: 597 EclipseAppContainer.callMethodWithException( Object , String , Class [], Object []) line: 587 EclipseAppHandle.run( Object ) line: 198 EclipseAppLauncher.runApplication( Object ) line: 110 EclipseAppLauncher.start( Object ) line: 79 EclipseStarter.run( Object ) line: 344 EclipseStarter.run( String [], Runnable ) line: 179 NativeMethodAccessorImpl.invoke0(Method, Object , Object []) line: not available [ native method] NativeMethodAccessorImpl.invoke( Object , Object []) line: 39 DelegatingMethodAccessorImpl.invoke( Object , Object []) line: 25 Method.invoke( Object , Object ...) line: 597 Main.invokeFramework( String [], URL[]) line: 622 Main.basicRun( String []) line: 577 Main.run( String []) line: 1410 Main.main( String []) line: 1386 AS7Manager.quietlyExecute(ModelNode) line: 199 is the jboss tools code that invokes client#execute

    Description

      If I instruct the server to shut down by using the management API, the controller client gets stuck in a lock while (obviously) waiting for a server response. It keeps waiting on that lock since the server is already shut down and will not answer.

      Attachments

        Issue Links

          Activity

            People

              kkhan1@redhat.com Kabir Khan
              adietish@redhat.com André Dietisheim
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: