nilsson-petter commented on issue #3399:
URL: 
https://github.com/apache/logging-log4j2/issues/3399#issuecomment-2619125581

   We are still experiencing the deadlock with `2.24.4-SNAPSHOT` and jdk:
   
   ```
   openjdk version "21.0.5" 2024-10-15
   OpenJDK Runtime Environment Homebrew (build 21.0.5)
   OpenJDK 64-Bit Server VM Homebrew (build 21.0.5, mixed mode, sharing)
   ```
   
   Remedies:
   
   - Switch to platform threads for producing to Kafka
   - Upgrade to jdk24
   - Downgrade  to 2.24.1
   
   **I'll try to make the time to create a minimal reproducer.**
   
   Some threads that are waiting:
   ```
   "executor-Fetch" #361 [177923] prio=5 os_prio=31 cpu=4,04ms elapsed=10,28s 
tid=0x000000013b8c1e00 nid=177923 waiting on condition  [0x0000000347015000]
      java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@21.0.5/Native Method)
        - parking to wait for  <0x0000000601c3a490> (a 
java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
        at 
java.util.concurrent.locks.LockSupport.park(java.base@21.0.5/LockSupport.java:221)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@21.0.5/AbstractQueuedSynchronizer.java:754)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(java.base@21.0.5/AbstractQueuedSynchronizer.java:1079)
        at 
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(java.base@21.0.5/ReentrantReadWriteLock.java:738)
        at 
org.apache.logging.log4j.core.util.internal.InternalLoggerRegistry.getLogger(InternalLoggerRegistry.java:71)
        at 
org.apache.logging.log4j.core.util.internal.InternalLoggerRegistry.computeIfAbsent(InternalLoggerRegistry.java:145)
        at 
org.apache.logging.log4j.core.LoggerContext.getLogger(LoggerContext.java:566)
        at 
org.apache.logging.log4j.core.LoggerContext.getLogger(LoggerContext.java:539)
        at 
org.apache.logging.log4j.core.LoggerContext.getLogger(LoggerContext.java:70)
        at 
org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:49)
        at 
org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:32)
        at 
org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:52)
        at 
org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:32)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:422)
        at kafka.utils.Logging.logger(Logging.scala:43)
        at kafka.utils.Logging.logger$(Logging.scala:43)
        at 
kafka.server.FetchSessionCache.logger$lzycompute(FetchSession.scala:587)
        - locked <0x000000060171a108> (a kafka.server.FetchSessionCache)
        at kafka.server.FetchSessionCache.logger(FetchSession.scala:587)
        at kafka.utils.Logging.debug(Logging.scala:62)
        at kafka.utils.Logging.debug$(Logging.scala:62)
        at kafka.server.FetchSessionCache.debug(FetchSession.scala:587)
        at 
kafka.server.FetchSessionCache.maybeCreateSession(FetchSession.scala:675)
        - locked <0x000000060171a108> (a kafka.server.FetchSessionCache)
        at 
kafka.server.FullFetchContext.updateAndGenerateResponseData(FetchSession.scala:434)
        at 
kafka.server.KafkaApis.processResponseCallback$1(KafkaApis.scala:1006)
        at 
kafka.server.KafkaApis.$anonfun$handleFetchRequest$31(KafkaApis.scala:1059)
        at 
kafka.server.KafkaApis.$anonfun$handleFetchRequest$31$adapted(KafkaApis.scala:1059)
        at kafka.server.KafkaApis$$Lambda/0x000000b002094c80.apply(Unknown 
Source)
        at kafka.server.DelayedFetch.onComplete(DelayedFetch.scala:182)
        at 
kafka.server.DelayedOperation.forceComplete(DelayedOperation.scala:73)
        at kafka.server.DelayedOperation.run(DelayedOperation.scala:128)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(java.base@21.0.5/Executors.java:572)
        at 
java.util.concurrent.FutureTask.run$$$capture(java.base@21.0.5/FutureTask.java:317)
        at java.util.concurrent.FutureTask.run(java.base@21.0.5/FutureTask.java)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@21.0.5/ThreadPoolExecutor.java:1144)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@21.0.5/ThreadPoolExecutor.java:642)
        at java.lang.Thread.runWith(java.base@21.0.5/Thread.java:1596)
        at java.lang.Thread.run(java.base@21.0.5/Thread.java:1583)
   
   "kafka-log-cleaner-thread-0" #122 [73475] prio=5 os_prio=31 cpu=6,35ms 
elapsed=32,64s tid=0x000000013846ba00 nid=73475 waiting on condition  
[0x0000000319771000]
      java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@21.0.5/Native Method)
        - parking to wait for  <0x0000000601c3a490> (a 
java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
        at 
java.util.concurrent.locks.LockSupport.park(java.base@21.0.5/LockSupport.java:221)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@21.0.5/AbstractQueuedSynchronizer.java:754)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(java.base@21.0.5/AbstractQueuedSynchronizer.java:1079)
        at 
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(java.base@21.0.5/ReentrantReadWriteLock.java:738)
        at 
org.apache.logging.log4j.core.util.internal.InternalLoggerRegistry.getLogger(InternalLoggerRegistry.java:71)
        at 
org.apache.logging.log4j.core.util.internal.InternalLoggerRegistry.computeIfAbsent(InternalLoggerRegistry.java:145)
        at 
org.apache.logging.log4j.core.LoggerContext.getLogger(LoggerContext.java:566)
        at 
org.apache.logging.log4j.core.LoggerContext.getLogger(LoggerContext.java:539)
        at 
org.apache.logging.log4j.core.LoggerContext.getLogger(LoggerContext.java:70)
        at 
org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:49)
        at 
org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:32)
        at 
org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:52)
        at 
org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:32)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:422)
        at kafka.utils.Logging.logger(Logging.scala:43)
        at kafka.utils.Logging.logger$(Logging.scala:43)
        at 
kafka.log.LogCleanerManager$.logger$lzycompute(LogCleanerManager.scala:576)
        - locked <0x00000006015775f0> (a kafka.log.LogCleanerManager$)
        at kafka.log.LogCleanerManager$.logger(LogCleanerManager.scala:576)
        at 
kafka.log.LogCleanerManager$.cleanableOffsets(LogCleanerManager.scala:576)
        at 
kafka.log.LogCleanerManager.$anonfun$grabFilthiestCompactedLog$4(LogCleanerManager.scala:195)
        at kafka.log.LogCleanerManager$$Lambda/0x000000b001629910.apply(Unknown 
Source)
        at scala.collection.immutable.List.map(List.scala:247)
        at scala.collection.immutable.List.map(List.scala:79)
        at 
kafka.log.LogCleanerManager.$anonfun$grabFilthiestCompactedLog$1(LogCleanerManager.scala:191)
        at 
kafka.log.LogCleanerManager.grabFilthiestCompactedLog(LogCleanerManager.scala:181)
        at 
kafka.log.LogCleaner$CleanerThread.cleanFilthiestLog(LogCleaner.scala:408)
        at 
kafka.log.LogCleaner$CleanerThread.tryCleanFilthiestLog(LogCleaner.scala:395)
        at kafka.log.LogCleaner$CleanerThread.doWork(LogCleaner.scala:381)
        at 
org.apache.kafka.server.util.ShutdownableThread.run(ShutdownableThread.java:135)
   ```


-- 
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: notifications-unsubscr...@logging.apache.org

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

Reply via email to