[jboss-jira] [JBoss JIRA] (WFCORE-1002) TransactionalProtocolOperationHandler.AbortOperationHandler must initialize the ExecuteRequestContext before responding

Brian Stansberry (JIRA) issues at jboss.org
Tue Sep 22 17:23:00 EDT 2015


Brian Stansberry created WFCORE-1002:
----------------------------------------

             Summary: TransactionalProtocolOperationHandler.AbortOperationHandler must initialize the ExecuteRequestContext before responding
                 Key: WFCORE-1002
                 URL: https://issues.jboss.org/browse/WFCORE-1002
             Project: WildFly Core
          Issue Type: Bug
          Components: Domain Management
    Affects Versions: 2.0.0.CR3
            Reporter: Brian Stansberry
            Assignee: Brian Stansberry


If in a race a COMPLETE_TX_REQUEST cancelling an op is processed by a server/slave HC before the original EXECUTE_TX_REQUEST is processed, when the EXECUTE_TX_REQUEST comes in the AbortOperationHandler attempts to respond with a "outcome"=>"cancelled" response. This will fail because the ExecutionRequestContext will not be initialized.

In this situation the AbortOperationHandler should initialize the ERC.

With assertions enabled, this appears in the log:

{code}
20:58:47,947 ERROR [stderr] (Remoting "slave:main-three:MANAGEMENT" task-6) Exception in thread "Remoting "slave:main-three:MANAGEMENT" task-6" java.lang.AssertionError

20:58:47,947 ERROR [stderr] (Remoting "slave:main-three:MANAGEMENT" task-6) 	at org.jboss.as.controller.remote.TransactionalProtocolOperationHandler$ExecuteRequestContext.failed(TransactionalProtocolOperationHandler.java:458)

20:58:47,948 ERROR [stderr] (Remoting "slave:main-three:MANAGEMENT" task-6) 	at org.jboss.as.controller.remote.TransactionalProtocolOperationHandler$AbortOperationHandler.handleRequest(TransactionalProtocolOperationHandler.java:275)

20:58:47,948 ERROR [stderr] (Remoting "slave:main-three:MANAGEMENT" task-6) 	at org.jboss.as.protocol.mgmt.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:270)

20:58:47,948 ERROR [stderr] (Remoting "slave:main-three:MANAGEMENT" task-6) 	at org.jboss.as.protocol.mgmt.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:252)

20:58:47,948 ERROR [stderr] (Remoting "slave:main-three:MANAGEMENT" task-6) 	at org.jboss.as.protocol.mgmt.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:123)

20:58:47,949 ERROR [stderr] (Remoting "slave:main-three:MANAGEMENT" task-6) 	at org.jboss.as.protocol.mgmt.ManagementChannelReceiver$1.handleMessage(ManagementChannelReceiver.java:56)

20:58:47,949 ERROR [stderr] (Remoting "slave:main-three:MANAGEMENT" task-6) 	at org.jboss.as.protocol.mgmt.ManagementChannelReceiver.handleMessage(ManagementChannelReceiver.java:85)

20:58:47,949 ERROR [stderr] (Remoting "slave:main-three:MANAGEMENT" task-6) 	at org.jboss.remoting3.remote.RemoteConnectionChannel$5.run(RemoteConnectionChannel.java:451)

20:58:47,949 ERROR [stderr] (Remoting "slave:main-three:MANAGEMENT" task-6) 	at org.jboss.remoting3.EndpointImpl$TrackingExecutor$1.run(EndpointImpl.java:705)

20:58:47,950 ERROR [stderr] (Remoting "slave:main-three:MANAGEMENT" task-6) 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

20:58:47,950 ERROR [stderr] (Remoting "slave:main-three:MANAGEMENT" task-6) 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

20:58:47,950 ERROR [stderr] (Remoting "slave:main-three:MANAGEMENT" task-6) 	at java.lang.Thread.run(Thread.java:745)
{code}

Without assertions, a few lines later a call to sendResponse will result in an NPE.



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the jboss-jira mailing list