dcapwell commented on PR #2256:
URL: https://github.com/apache/cassandra/pull/2256#issuecomment-1507274741
Working on a simulator test and I see the following, `journal.shutdown()`
hangs:
```
"begin:1@2840" prio=5 tid=0x10 nid=NA waiting for monitor entry
java.lang.Thread.State: BLOCKED
waiting for AccordJournal-disk-flusher-group:1@4442 to release lock on
<0x12b6> (a org.apache.cassandra.journal.Flusher$FlushRunnable)
at
org.apache.cassandra.concurrent.InfiniteLoopExecutor.lambda$interruptHandler$0(InfiniteLoopExecutor.java:101)
at
org.apache.cassandra.concurrent.InfiniteLoopExecutor$$Lambda$307.410057676.accept(Unknown
Source:-1)
at
org.apache.cassandra.concurrent.InfiniteLoopExecutor.shutdown(InfiniteLoopExecutor.java:155)
at org.apache.cassandra.journal.Flusher.shutdown(Flusher.java:97)
at org.apache.cassandra.journal.Journal.shutdown(Journal.java:165)
at
org.apache.cassandra.service.accord.AccordJournal.shutdown(AccordJournal.java:82)
```
Here is the lock holder
```
"AccordJournal-disk-flusher-group:1@4442" prio=5 tid=0x1d nid=NA waiting
java.lang.Thread.State: WAITING
blocks begin:1@2840
at java.lang.Object.wait(Object.java:-1)
at java.lang.Object.wait(Object.java:502)
at
org.apache.cassandra.simulator.systems.InterceptibleThread$Parked.await(InterceptibleThread.java:154)
at
org.apache.cassandra.simulator.systems.InterceptibleThread.park(InterceptibleThread.java:246)
at
org.apache.cassandra.simulator.systems.InterceptibleThread.parkNanos(InterceptibleThread.java:517)
at
org.apache.cassandra.simulator.systems.InterceptingMonitors.parkNanos(InterceptingMonitors.java:871)
at
org.apache.cassandra.simulator.systems.InterceptorOfSystemMethods$Global.parkNanos(InterceptorOfSystemMethods.java:157)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1039)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1332)
at java.util.concurrent.Semaphore.tryAcquire(Semaphore.java:582)
at
org.apache.cassandra.utils.concurrent.Semaphore$Standard.tryAcquireUntil(Semaphore.java:143)
at
org.apache.cassandra.journal.Flusher$FlushRunnable.doRun(Flusher.java:155)
- locked <0x12b6> (a
org.apache.cassandra.journal.Flusher$FlushRunnable)
at
org.apache.cassandra.journal.Flusher$FlushRunnable.run(Flusher.java:117)
```
Looks like we can't shutdown and deadlock due to
`haveWork.tryAcquireUntil(1, wakeUpAt);` being in the lock?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]