David Valeri created AMQ-4073:
---------------------------------

             Summary: Cannot shut down broker under certain conditions with 
schedule delivery and producer flow control
                 Key: AMQ-4073
                 URL: https://issues.apache.org/jira/browse/AMQ-4073
             Project: ActiveMQ
          Issue Type: Bug
          Components: Broker
    Affects Versions: 5.6.0
            Reporter: David Valeri
            Priority: Minor
         Attachments: JobSchedulerBrokerShutdownTest.java

When producer flow control is enabled and the the job scheduler attempts 
delivery, the job scheduler blocks while attempting delivery.  This blocking 
holds the lock on the job scheduler and stops all other job scheduler activity. 
 The holding of the lock on the job scheduler also blocks the delivery of 
additional scheduled messages and can impact the shutdown of the broker.

org.apache.activemq.broker.scheduler.JobSchedulerImpl.schedule(String, 
ByteSequence, String, long, long, int) waits for the lock while the job 
scheduler is blocked.  Any transport connections attempting to call this method 
get blocked and are also unable to shutdown.  Connections do log "2012-09-24 
12:04:23,661 [main           ] - INFO  TransportConnection            - The 
connection to 'vm://localhost#0' is taking a long time to shutdown." when 
attempting shutdown with the job scheduler blocked and a client attempting to 
schedule a message, but do not log anything when this situation occurs under 
normal broker operation.  The producer simply stops producing messages.

The shutdown is blocked by 
org.apache.activemq.broker.TransportConnection.serviceLock as it is owned by 
the blocked thread trying to schedule a new message.

I have attached a unit test that reproduces the issue.  The test will not 
complete as it hangs on the broker shutdown as described above.

--
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

Reply via email to