[jboss-jira] [JBoss JIRA] (JGRP-1660) LockService hangs during concurrent access (tryLock/tryLock(timeout)/lock/unlock)
Manuel Dominguez Sarmiento (JIRA)
jira-events at lists.jboss.org
Fri Jul 19 09:04:26 EDT 2013
[ https://issues.jboss.org/browse/JGRP-1660?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12790992#comment-12790992 ]
Manuel Dominguez Sarmiento commented on JGRP-1660:
--------------------------------------------------
I can confirm that we've randomly seen this behaviour in our production servers, and the diagnosis was similar: threads hanged as a consequence of tryLock() usage.
We found out from code inspection that we could avoid this by using tryLock(timeout) which was sufficient for our needs. Unfortunately we forgot to file the bug report then, so we cannot give any more details (we lost track of which JGroups version we were using, configuration, etc.)
At the time we thought it might have been related to JGRP-1610 which apparently was solved in 3.3. However at the time we could not confirm this, since we had resorted to tryLock(timeout) by then.
> LockService hangs during concurrent access (tryLock/tryLock(timeout)/lock/unlock)
> ---------------------------------------------------------------------------------
>
> Key: JGRP-1660
> URL: https://issues.jboss.org/browse/JGRP-1660
> Project: JGroups
> Issue Type: Bug
> Affects Versions: 3.2.4, 3.3.3
> Environment: Intel(R) Core(TM) i5-2310 CPU @ 2.90GHz
> 6GB RAM
> Windows 7
> JRE 1.6.31
> Reporter: Architect SoftWeb.ISD
> Assignee: Bela Ban
> Fix For: 3.3.4, 3.4
>
> Attachments: lockservice_stability_testcase.jar
>
>
> We have rather simple test that starts some amount of threads which in turn simultaneously obtain lock through LockService#getLock then perform lock and unlock.
> Each thread works during some time.
> After couple of seconds of work some threads just hang up in Locking$ClientLock(Object).wait() called indirectly from LockService$LockImpl.tryLock().
> Here is stack trace:
> Thread [Thread-ClientImitation-1] (Suspended)
> Object.wait(long) line: not available [native method]
> Locking$ClientLock(Object).wait() line: 485
> Locking$ClientLock.acquireTryLock(long, boolean) line: 1010
> Locking$ClientLock.tryLock() line: 896
> CENTRAL_LOCK(Locking).down(Event) line: 152
> ProtocolStack.down(Event) line: 1025
> JChannel.down(Event) line: 718
> LockService$LockImpl.tryLock() line: 102
> LockServiceStabilityTestCase$ClientImitation.run() line: 167
> Thread.run() line: 662
--
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
More information about the jboss-jira
mailing list