[ https://issues.apache.org/jira/browse/DERBY-4711?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kristian Waagan reopened DERBY-4711: ------------------------------------ Reopening for backport to 10.6. One of the changes in the test harness is needed for another backport, and this fix seems nice to have in older branches too. > Hung thread after another thread is interrupted > ----------------------------------------------- > > Key: DERBY-4711 > URL: https://issues.apache.org/jira/browse/DERBY-4711 > Project: Derby > Issue Type: Bug > Components: Services > Affects Versions: 10.5.3.0 > Environment: Windows server 2008 > Reporter: Luke Quinane > Assignee: Luke Quinane > Fix For: 10.7.1.1 > > Attachments: interrupted-exception-fix.diff, > interrupted-exception-fix.patch, junit-timing-fix.diff, junit.diff > > > We've seen a problem today where we have several threads querying our > database and when one gets interrupted the others are stuck waiting for a > lock. Here is the stack trace for the stuck thread(s): > daemon prio=4 > "DefaultExecutorService-pool-1-thread-47" Id=98 WAITING on > org.apache.derby.impl.services.locks.activel...@6e6f45a1 > at java.lang.Object.wait(Native Method) > - waiting on org.apache.derby.impl.services.locks.activel...@6e6f45a1 > at java.lang.Object.wait(Object.java:485) > at > org.apache.derby.impl.services.locks.ActiveLock.waitForGrant(ActiveLock.java:115) > at > org.apache.derby.impl.services.locks.ConcurrentLockSet.lockObject(ConcurrentLockSet.java:463) > at > org.apache.derby.impl.services.locks.ConcurrentLockSet.zeroDurationLockObject(ConcurrentLockSet.java:855) > at > org.apache.derby.impl.services.locks.AbstractPool.zeroDurationlockObject(AbstractPool.java:297) > at > org.apache.derby.impl.services.locks.ConcurrentPool.zeroDurationlockObject(ConcurrentPool.java:28) > at > org.apache.derby.impl.store.raw.xact.RowLocking2nohold.lockRecordForRead(RowLocking2nohold.java:89) > at > org.apache.derby.impl.store.access.heap.HeapController.lockRow(HeapController.java:520) > at > org.apache.derby.impl.store.access.heap.HeapController.lockRow(HeapController.java:638) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLocking3.lockRowOnPage(B2IRowLocking3.java:309) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLocking3._lockScanRow(B2IRowLocking3.java:599) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLockingRR.lockScanRow(B2IRowLockingRR.java:105) > at > org.apache.derby.impl.store.access.btree.BTreeForwardScan.fetchRows(BTreeForwardScan.java:305) > at > org.apache.derby.impl.store.access.btree.BTreeScan.fetchNextGroup(BTreeScan.java:1585) > at > org.apache.derby.impl.sql.execute.BulkTableScanResultSet.reloadArray(BulkTableScanResultSet.java:327) > at > org.apache.derby.impl.sql.execute.BulkTableScanResultSet.getNextRowCore(BulkTableScanResultSet.java:282) > at > org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.getNextRow(BasicNoPutResultSetImpl.java:460) > at > org.apache.derby.impl.jdbc.EmbedResultSet.movePosition(EmbedResultSet.java:427) > - locked org.apache.derby.impl.jdbc.embedconnectio...@445d374b > at > org.apache.derby.impl.jdbc.EmbedResultSet.next(EmbedResultSet.java:371) > ... -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.