You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pr@cassandra.apache.org by "dcapwell (via GitHub)" <gi...@apache.org> on 2023/04/13 16:43:07 UTC

[GitHub] [cassandra] dcapwell commented on pull request #2256: CASSANDRA-18344 Store PreAccept, Accept, Commit, and Apply in a durable log before processing by CommandStores

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: pr-unsubscribe@cassandra.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: pr-unsubscribe@cassandra.apache.org
For additional commands, e-mail: pr-help@cassandra.apache.org