You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Alex Rudyy (JIRA)" <ji...@apache.org> on 2014/12/04 16:14:12 UTC
[jira] [Updated] (QPID-6259) [Java Broker] On DatabaseException in
BDB committer thread, stopping of Coalescing committer in the same
committer thread hangs because it waits for committer thread to finish
running
[ https://issues.apache.org/jira/browse/QPID-6259?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alex Rudyy updated QPID-6259:
-----------------------------
Attachment: QPID-6259-Fix-committer-thread-hang-when-closing-on-database-exception.diff
Attached patch with a fix
> [Java Broker] On DatabaseException in BDB committer thread, stopping of Coalescing committer in the same committer thread hangs because it waits for committer thread to finish running
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: QPID-6259
> URL: https://issues.apache.org/jira/browse/QPID-6259
> Project: Qpid
> Issue Type: Bug
> Components: Java Broker
> Affects Versions: 0.30
> Reporter: Alex Rudyy
> Attachments: QPID-6259-Fix-committer-thread-hang-when-closing-on-database-exception.diff
>
>
> When DatabaseException occurs in commit thread, stopping of Coalescing committer can hang because it is invoked in commit thread and there is a code there to wait until coalescing committer thread finishes running
> {noformat}
> "Commit-Thread-default" prio=10 tid=0x00007f1750c28800 nid=0x12fb in Object.wait() [0x00007f16150dc000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00000007a59fe090> (a org.apache.qpid.server.store.berkeleydb.CoalescingCommiter$CommitThread)
> at java.lang.Thread.join(Thread.java:1281)
> - locked <0x00000007a59fe090> (a org.apache.qpid.server.store.berkeleydb.CoalescingCommiter$CommitThread)
> at java.lang.Thread.join(Thread.java:1355)
> at org.apache.qpid.server.store.berkeleydb.CoalescingCommiter.stop(CoalescingCommiter.java:55)
> at org.apache.qpid.server.store.berkeleydb.StandardEnvironmentFacade.close(StandardEnvironmentFacade.java:152)
> at org.apache.qpid.server.store.berkeleydb.CoalescingCommiter$CommitThread.processJobs(CoalescingCommiter.java:275)
> at org.apache.qpid.server.store.berkeleydb.CoalescingCommiter$CommitThread.run(CoalescingCommiter.java:214)
> {noformat}
> That might prevent broker from shutdown with kill <pid>:
> {noformat}
> "QpidBrokerShutdownHook" prio=10 tid=0x00007f1498001000 nid=0x17cd in Object.wait() [0x00007f14af9f7000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00000007a59fe090> (a org.apache.qpid.server.store.berkeleydb.CoalescingCommiter$CommitThread)
> at java.lang.Thread.join(Thread.java:1281)
> - locked <0x00000007a59fe090> (a org.apache.qpid.server.store.berkeleydb.CoalescingCommiter$CommitThread)
> at java.lang.Thread.join(Thread.java:1355)
> at org.apache.qpid.server.store.berkeleydb.CoalescingCommiter.stop(CoalescingCommiter.java:55)
> at org.apache.qpid.server.store.berkeleydb.StandardEnvironmentFacade.close(StandardEnvironmentFacade.java:152)
> at org.apache.qpid.server.store.berkeleydb.BDBMessageStore.closeMessageStore(BDBMessageStore.java:92)
> at org.apache.qpid.server.virtualhost.AbstractVirtualHost.closeMessageStore(AbstractVirtualHost.java:708)
> at org.apache.qpid.server.virtualhost.AbstractVirtualHost.onClose(AbstractVirtualHost.java:691)
> at org.apache.qpid.server.model.AbstractConfiguredObject.close(AbstractConfiguredObject.java:495)
> at org.apache.qpid.server.model.AbstractConfiguredObject$1.performAction(AbstractConfiguredObject.java:467)
> at org.apache.qpid.server.model.AbstractConfiguredObject$1.performAction(AbstractConfiguredObject.java:463)
> at org.apache.qpid.server.model.AbstractConfiguredObject.applyToChildren(AbstractConfiguredObject.java:748)
> at org.apache.qpid.server.model.AbstractConfiguredObject.closeChildren(AbstractConfiguredObject.java:462)
> at org.apache.qpid.server.model.AbstractConfiguredObject.close(AbstractConfiguredObject.java:494)
> at org.apache.qpid.server.model.AbstractConfiguredObject$1.performAction(AbstractConfiguredObject.java:467)
> at org.apache.qpid.server.model.AbstractConfiguredObject$1.performAction(AbstractConfiguredObject.java:463)
> at org.apache.qpid.server.model.AbstractConfiguredObject.applyToChildren(AbstractConfiguredObject.java:748)
> at org.apache.qpid.server.model.AbstractConfiguredObject.closeChildren(AbstractConfiguredObject.java:462)
> at org.apache.qpid.server.model.AbstractConfiguredObject.close(AbstractConfiguredObject.java:494)
> at org.apache.qpid.server.registry.ApplicationRegistry.close(ApplicationRegistry.java:104)
> at org.apache.qpid.server.Broker.shutdown(Broker.java:101)
> at org.apache.qpid.server.Broker.shutdown(Broker.java:85)
> at org.apache.qpid.server.Broker$ShutdownService$1.run(Broker.java:319)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:356)
> at org.apache.qpid.server.Broker$ShutdownService.run(Broker.java:313)
> at java.lang.Thread.run(Thread.java:745)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org