That is fantastic, thank you both. I have $work time to work on this, so
please do feel free to task me up.
Interestingly, the test I flagged up stalled on my Java 25 build, but looks
like it doesn't actually run on my Java 17 build (mvn
-Dmaven.test.error.ignore=true -Dmaven.test.failure.ignore=true clean
install | tee build.log, no fancy options), so I think I'm picking up a
profile and the activemq.tests-quick profile is being dropped. I'll confirm
that. The test does seem to fail in the same way on Java 17 & 21, and it
looks like the JobScheduler:JMS thread is attempting to acquire the write
lock while it holds the read lock:
2025-11-13 11:56:50,026 [main ] - INFO TransportConnector
- Connector vm://localhost stopped
2025-11-13 11:56:50,026 [main ] - INFO BrokerService
- Apache ActiveMQ 6.2.1-SNAPSHOT (localhost,
ID:Jonathans-MacBook-Pro.local-51776-1763034999073-0:4) is shutting down
2025-11-13 11:56:50,156 [main ] - INFO JobSchedulerStoreImpl
- JobSchedulerStore: target/scheduler stopped.
2025-11-13 11:56:50,157 [main ] - INFO PListStoreImpl
-
PListStore:[/Users/jgallimore/dev/activemq/activemq-unit-tests/target/localhost/tmp_storage]
stopped
2025-11-13 11:56:50,157 [main ] - INFO KahaDBStore
- Stopping async queue tasks
2025-11-13 11:56:50,158 [main ] - INFO KahaDBStore
- Stopping async topic tasks
2025-11-13 11:56:50,158 [main ] - INFO KahaDBStore
- Stopped KahaDB
2025-11-13 11:56:50,191 [main ] - INFO BrokerService
- Apache ActiveMQ 6.2.1-SNAPSHOT (localhost,
ID:Jonathans-MacBook-Pro.local-51776-1763034999073-0:4) uptime 4.685 seconds
2025-11-13 11:56:50,191 [main ] - INFO BrokerService
- Apache ActiveMQ 6.2.1-SNAPSHOT (localhost,
ID:Jonathans-MacBook-Pro.local-51776-1763034999073-0:4) is shutdown
2025-11-13 11:56:50,210 [main ] - WARN BrokerService
- Memory Usage for the Broker (1024mb) is more than the maximum
available for the JVM: 512 mb - resetting to 70% of maximum available: 358
2025-11-13 11:56:50,211 [main ] - INFO BrokerService
- Using Persistence Adapter:
KahaDBPersistenceAdapter[/Users/jgallimore/dev/activemq/activemq-unit-tests/target/localhost/KahaDB]
2025-11-13 11:56:50,211 [main ] - INFO BrokerService
- Deleting all messages on startup because deleteAllMessagesOnStartup
configuration has been provided
2025-11-13 11:56:50,212 [main ] - INFO BrokerService
- Starting Persistence Adapter:
KahaDBPersistenceAdapter[/Users/jgallimore/dev/activemq/activemq-unit-tests/target/localhost/KahaDB]
2025-11-13 11:56:50,220 [main ] - INFO KahaDBStore
- Starting KahaDBStore
2025-11-13 11:56:50,232 [main ] - INFO MessageDatabase
- Persistence store purged.
2025-11-13 11:56:50,233 [main ] - INFO MessageDatabase
- Opening MessageDatabase
2025-11-13 11:56:50,291 [main ] - INFO BrokerService
- Starting Temp Data Store
2025-11-13 11:56:50,292 [main ] - INFO PListStoreImpl
-
PListStore:[/Users/jgallimore/dev/activemq/activemq-unit-tests/target/localhost/tmp_storage]
started
2025-11-13 11:56:50,292 [main ] - INFO BrokerService
- Starting Job Scheduler Store
2025-11-13 11:56:50,347 [main ] - INFO JobSchedulerStoreImpl
- JobSchedulerStore: target/scheduler started.
2025-11-13 11:56:50,353 [main ] - INFO BrokerService
- Persistence Adapter successfully started
2025-11-13 11:56:50,354 [main ] - INFO BrokerService
- Apache ActiveMQ 6.2.1-SNAPSHOT (localhost,
ID:Jonathans-MacBook-Pro.local-51776-1763034999073-0:5) is starting
2025-11-13 11:56:50,363 [main ] - INFO BrokerService
- Apache ActiveMQ 6.2.1-SNAPSHOT (localhost,
ID:Jonathans-MacBook-Pro.local-51776-1763034999073-0:5) started
2025-11-13 11:56:50,363 [obScheduler:JMS] - INFO JobSchedulerStoreImpl
- Attempting to read lock index at java.lang.Exception
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.getStackTrace(JobSchedulerStoreImpl.java:606)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.readLockIndex(JobSchedulerStoreImpl.java:595)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.mainLoop(JobSchedulerImpl.java:731)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.run(JobSchedulerImpl.java:699)
at java.base/java.lang.Thread.run(Thread.java:1474)
2025-11-13 11:56:50,364 [main ] - INFO BrokerService
- For help or more information please see: http://activemq.apache.org
2025-11-13 11:56:50,364 [obScheduler:JMS] - INFO JobSchedulerStoreImpl
- Read lock index locked at java.lang.Exception
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.getStackTrace(JobSchedulerStoreImpl.java:606)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.readLockIndex(JobSchedulerStoreImpl.java:595)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.mainLoop(JobSchedulerImpl.java:731)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.run(JobSchedulerImpl.java:699)
at java.base/java.lang.Thread.run(Thread.java:1474)
2025-11-13 11:56:50,364 [obScheduler:JMS] - INFO JobSchedulerStoreImpl
- Attempting to read unlock index at java.lang.Exception
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.getStackTrace(JobSchedulerStoreImpl.java:606)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.readUnlockIndex(JobSchedulerStoreImpl.java:612)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.mainLoop(JobSchedulerImpl.java:798)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.run(JobSchedulerImpl.java:699)
at java.base/java.lang.Thread.run(Thread.java:1474)
2025-11-13 11:56:50,364 [obScheduler:JMS] - INFO JobSchedulerStoreImpl
- Read lock index unlocked at java.lang.Exception
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.getStackTrace(JobSchedulerStoreImpl.java:606)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.readUnlockIndex(JobSchedulerStoreImpl.java:612)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.mainLoop(JobSchedulerImpl.java:798)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.run(JobSchedulerImpl.java:699)
at java.base/java.lang.Thread.run(Thread.java:1474)
2025-11-13 11:56:50,366 [main ] - INFO TransportConnector
- Connector vm://localhost started
2025-11-13 11:56:50,380 [//localhost#9-2] - INFO JobSchedulerStoreImpl
- Attempting to write lock index at java.lang.Exception
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.getStackTrace(JobSchedulerStoreImpl.java:606)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl$8.visit(JobSchedulerStoreImpl.java:700)
at
org.apache.activemq.store.kahadb.data.KahaAddScheduledJobCommand.visit(KahaAddScheduledJobCommand.java:283)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.process(JobSchedulerStoreImpl.java:695)
at
org.apache.activemq.store.kahadb.AbstractKahaDBStore.store(AbstractKahaDBStore.java:495)
at
org.apache.activemq.store.kahadb.AbstractKahaDBStore.store(AbstractKahaDBStore.java:403)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.doSchedule(JobSchedulerImpl.java:252)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.schedule(JobSchedulerImpl.java:100)
at
org.apache.activemq.broker.scheduler.SchedulerBroker.doSchedule(SchedulerBroker.java:363)
at
org.apache.activemq.broker.scheduler.SchedulerBroker.send(SchedulerBroker.java:326)
at
org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96)
at
org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:308)
at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:154)
at
org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:582)
at
org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:769)
at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:337)
at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:201)
at
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
at
org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
at
org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:275)
at
org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)
at
org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base/java.lang.Thread.run(Thread.java:1474)
2025-11-13 11:56:50,381 [//localhost#9-2] - INFO JobSchedulerStoreImpl
- Write lock index locked at java.lang.Exception
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.getStackTrace(JobSchedulerStoreImpl.java:606)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl$8.visit(JobSchedulerStoreImpl.java:700)
at
org.apache.activemq.store.kahadb.data.KahaAddScheduledJobCommand.visit(KahaAddScheduledJobCommand.java:283)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.process(JobSchedulerStoreImpl.java:695)
at
org.apache.activemq.store.kahadb.AbstractKahaDBStore.store(AbstractKahaDBStore.java:495)
at
org.apache.activemq.store.kahadb.AbstractKahaDBStore.store(AbstractKahaDBStore.java:403)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.doSchedule(JobSchedulerImpl.java:252)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.schedule(JobSchedulerImpl.java:100)
at
org.apache.activemq.broker.scheduler.SchedulerBroker.doSchedule(SchedulerBroker.java:363)
at
org.apache.activemq.broker.scheduler.SchedulerBroker.send(SchedulerBroker.java:326)
at
org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96)
at
org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:308)
at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:154)
at
org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:582)
at
org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:769)
at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:337)
at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:201)
at
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
at
org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
at
org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:275)
at
org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)
at
org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base/java.lang.Thread.run(Thread.java:1474)
2025-11-13 11:56:50,381 [obScheduler:JMS] - INFO JobSchedulerStoreImpl
- Attempting to read lock index at java.lang.Exception
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.getStackTrace(JobSchedulerStoreImpl.java:606)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.readLockIndex(JobSchedulerStoreImpl.java:595)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.mainLoop(JobSchedulerImpl.java:731)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.run(JobSchedulerImpl.java:699)
at java.base/java.lang.Thread.run(Thread.java:1474)
2025-11-13 11:56:50,381 [//localhost#9-2] - INFO JobSchedulerStoreImpl
- Attempting to write unlock index at java.lang.Exception
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.getStackTrace(JobSchedulerStoreImpl.java:606)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl$8.visit(JobSchedulerStoreImpl.java:719)
at
org.apache.activemq.store.kahadb.data.KahaAddScheduledJobCommand.visit(KahaAddScheduledJobCommand.java:283)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.process(JobSchedulerStoreImpl.java:695)
at
org.apache.activemq.store.kahadb.AbstractKahaDBStore.store(AbstractKahaDBStore.java:495)
at
org.apache.activemq.store.kahadb.AbstractKahaDBStore.store(AbstractKahaDBStore.java:403)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.doSchedule(JobSchedulerImpl.java:252)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.schedule(JobSchedulerImpl.java:100)
at
org.apache.activemq.broker.scheduler.SchedulerBroker.doSchedule(SchedulerBroker.java:363)
at
org.apache.activemq.broker.scheduler.SchedulerBroker.send(SchedulerBroker.java:326)
at
org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96)
at
org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:308)
at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:154)
at
org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:582)
at
org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:769)
at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:337)
at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:201)
at
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
at
org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
at
org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:275)
at
org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)
at
org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base/java.lang.Thread.run(Thread.java:1474)
2025-11-13 11:56:50,381 [//localhost#9-2] - INFO JobSchedulerStoreImpl
- Write lock index unlocked at java.lang.Exception
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.getStackTrace(JobSchedulerStoreImpl.java:606)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl$8.visit(JobSchedulerStoreImpl.java:719)
at
org.apache.activemq.store.kahadb.data.KahaAddScheduledJobCommand.visit(KahaAddScheduledJobCommand.java:283)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.process(JobSchedulerStoreImpl.java:695)
at
org.apache.activemq.store.kahadb.AbstractKahaDBStore.store(AbstractKahaDBStore.java:495)
at
org.apache.activemq.store.kahadb.AbstractKahaDBStore.store(AbstractKahaDBStore.java:403)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.doSchedule(JobSchedulerImpl.java:252)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.schedule(JobSchedulerImpl.java:100)
at
org.apache.activemq.broker.scheduler.SchedulerBroker.doSchedule(SchedulerBroker.java:363)
at
org.apache.activemq.broker.scheduler.SchedulerBroker.send(SchedulerBroker.java:326)
at
org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96)
at
org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:308)
at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:154)
at
org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:582)
at
org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:769)
at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:337)
at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:201)
at
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
at
org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
at
org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:275)
at
org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)
at
org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base/java.lang.Thread.run(Thread.java:1474)
2025-11-13 11:56:50,381 [obScheduler:JMS] - INFO JobSchedulerStoreImpl
- Read lock index locked at java.lang.Exception
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.getStackTrace(JobSchedulerStoreImpl.java:606)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.readLockIndex(JobSchedulerStoreImpl.java:595)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.mainLoop(JobSchedulerImpl.java:731)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.run(JobSchedulerImpl.java:699)
at java.base/java.lang.Thread.run(Thread.java:1474)
2025-11-13 11:56:50,382 [obScheduler:JMS] - INFO JobSchedulerStoreImpl
- Attempting to read unlock index at java.lang.Exception
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.getStackTrace(JobSchedulerStoreImpl.java:606)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.readUnlockIndex(JobSchedulerStoreImpl.java:612)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.mainLoop(JobSchedulerImpl.java:798)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.run(JobSchedulerImpl.java:699)
at java.base/java.lang.Thread.run(Thread.java:1474)
2025-11-13 11:56:50,382 [obScheduler:JMS] - INFO JobSchedulerStoreImpl
- Read lock index unlocked at java.lang.Exception
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.getStackTrace(JobSchedulerStoreImpl.java:606)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.readUnlockIndex(JobSchedulerStoreImpl.java:612)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.mainLoop(JobSchedulerImpl.java:798)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.run(JobSchedulerImpl.java:699)
at java.base/java.lang.Thread.run(Thread.java:1474)
2025-11-13 11:56:50,888 [main ] - INFO JobSchedulerStoreImpl
- Attempting to read lock index at java.lang.Exception
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.getStackTrace(JobSchedulerStoreImpl.java:606)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.readLockIndex(JobSchedulerStoreImpl.java:595)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.getAllJobs(JobSchedulerImpl.java:161)
at
org.apache.activemq.broker.scheduler.JobSchedulerFacade.getAllJobs(JobSchedulerFacade.java:50)
at
org.apache.activemq.broker.scheduler.JmsSchedulerTest.testCron(JmsSchedulerTest.java:92)
at
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:316)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:240)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:214)
at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:155)
at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
at
org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
2025-11-13 11:56:50,888 [main ] - INFO JobSchedulerStoreImpl
- Read lock index locked at java.lang.Exception
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.getStackTrace(JobSchedulerStoreImpl.java:606)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.readLockIndex(JobSchedulerStoreImpl.java:595)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.getAllJobs(JobSchedulerImpl.java:161)
at
org.apache.activemq.broker.scheduler.JobSchedulerFacade.getAllJobs(JobSchedulerFacade.java:50)
at
org.apache.activemq.broker.scheduler.JmsSchedulerTest.testCron(JmsSchedulerTest.java:92)
at
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:316)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:240)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:214)
at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:155)
at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
at
org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
2025-11-13 11:56:50,891 [main ] - INFO JobSchedulerStoreImpl
- Attempting to read unlock index at java.lang.Exception
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.getStackTrace(JobSchedulerStoreImpl.java:606)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.readUnlockIndex(JobSchedulerStoreImpl.java:612)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.getAllJobs(JobSchedulerImpl.java:182)
at
org.apache.activemq.broker.scheduler.JobSchedulerFacade.getAllJobs(JobSchedulerFacade.java:50)
at
org.apache.activemq.broker.scheduler.JmsSchedulerTest.testCron(JmsSchedulerTest.java:92)
at
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:316)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:240)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:214)
at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:155)
at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
at
org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
2025-11-13 11:56:50,892 [main ] - INFO JobSchedulerStoreImpl
- Read lock index unlocked at java.lang.Exception
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.getStackTrace(JobSchedulerStoreImpl.java:606)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.readUnlockIndex(JobSchedulerStoreImpl.java:612)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.getAllJobs(JobSchedulerImpl.java:182)
at
org.apache.activemq.broker.scheduler.JobSchedulerFacade.getAllJobs(JobSchedulerFacade.java:50)
at
org.apache.activemq.broker.scheduler.JmsSchedulerTest.testCron(JmsSchedulerTest.java:92)
at
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:316)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:240)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:214)
at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:155)
at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
at
org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
2025-11-13 11:57:01,005 [obScheduler:JMS] - INFO JobSchedulerStoreImpl
- Attempting to read lock index at java.lang.Exception
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.getStackTrace(JobSchedulerStoreImpl.java:606)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.readLockIndex(JobSchedulerStoreImpl.java:595)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.mainLoop(JobSchedulerImpl.java:731)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.run(JobSchedulerImpl.java:699)
at java.base/java.lang.Thread.run(Thread.java:1474)
2025-11-13 11:57:01,006 [obScheduler:JMS] - INFO JobSchedulerStoreImpl
- Read lock index locked at java.lang.Exception
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.getStackTrace(JobSchedulerStoreImpl.java:606)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.readLockIndex(JobSchedulerStoreImpl.java:595)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.mainLoop(JobSchedulerImpl.java:731)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.run(JobSchedulerImpl.java:699)
at java.base/java.lang.Thread.run(Thread.java:1474)
2025-11-13 11:57:01,012 [obScheduler:JMS] - INFO JobSchedulerStoreImpl
- Attempting to write lock index at java.lang.Exception
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.getStackTrace(JobSchedulerStoreImpl.java:606)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl$8.visit(JobSchedulerStoreImpl.java:700)
at
org.apache.activemq.store.kahadb.data.KahaAddScheduledJobCommand.visit(KahaAddScheduledJobCommand.java:283)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.process(JobSchedulerStoreImpl.java:695)
at
org.apache.activemq.store.kahadb.AbstractKahaDBStore.store(AbstractKahaDBStore.java:495)
at
org.apache.activemq.store.kahadb.AbstractKahaDBStore.store(AbstractKahaDBStore.java:403)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.doSchedule(JobSchedulerImpl.java:252)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.schedule(JobSchedulerImpl.java:100)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.mainLoop(JobSchedulerImpl.java:782)
at
org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.run(JobSchedulerImpl.java:699)
at java.base/java.lang.Thread.run(Thread.java:1474)
On Thu, Nov 13, 2025 at 2:55 PM Jean-Baptiste Onofré <[email protected]>
wrote:
> Hi
>
> We have some work to do for JDK25 (Scheduler, SecurityManager,
> dependencies check, ..).
>
> I think it's reasonable to target 6.3.0 for JDK25 (including
> VirtualThread tech preview, CI updates, etc).
>
> I will create the tickets and start to work on this with other
> contributors.
>
> Regards
> JB
>
> On Thu, Nov 13, 2025 at 2:08 PM Christopher Shannon
> <[email protected]> wrote:
> >
> > Hi Jon,
> >
> > JDK 25 is something I haven't tried out yet (I'm not sure if others have)
> > so if you can dig into the issue more that would be welcome. There are
> > going to be more things to fix as well to make ActiveMQ compatible with
> JDK
> > 25 as well so it's something that just needs to be worked on in general
> now
> > that JDK 25 is released.
> >
> > JB and/or Matt, do you guys have any thoughts on which version we
> > should target JDK 25 compatibility with for ActiveMQ? It might depend how
> > much needs to be fixed, Artemis just went through some of this recently:
> > https://issues.apache.org/jira/browse/ARTEMIS-5711
> >
> > Chris
> >
> > On Thu, Nov 13, 2025 at 6:19 AM Jonathan Gallimore <
> > [email protected]> wrote:
> >
> > > Hi,
> > >
> > > I'm currently building ActiveMQ using Java 25, and running into some
> > > problems where running tests will just 'lock up'. An example
> > > is JmsSchedulerTest. These two threads are both blocked:
> > >
> > > "main" #3 [5635] prio=5 os_prio=31 cpu=657.39ms elapsed=1429.54s
> > > tid=0x000000013401ee00 nid=5635 waiting on condition
> [0x000000016bacd000]
> > > java.lang.Thread.State: WAITING (parking)
> > > at jdk.internal.misc.Unsafe.park(java.base@25/Native Method)
> > > - parking to wait for <0x00000007e0cdd530> (a
> > > java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
> > > at java.util.concurrent.locks.LockSupport.park(java.base@25
> > > /LockSupport.java:223)
> > > at
> > >
> > >
> java.util.concurrent.locks.AbstractQueuedLongSynchronizer.acquire(java.base@25
> > > /AbstractQueuedLongSynchronizer.java:410)
> > > at
> > >
> > >
> java.util.concurrent.locks.AbstractQueuedLongSynchronizer.acquire(java.base@25
> > > /AbstractQueuedLongSynchronizer.java:650)
> > > at
> > >
> > >
> java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(java.base@25
> > > /ReentrantReadWriteLock.java:966)
> > > at
> > >
> > >
> org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.unload(JobSchedulerStoreImpl.java:214)
> > > at
> > >
> > >
> org.apache.activemq.store.kahadb.AbstractKahaDBStore.doStop(AbstractKahaDBStore.java:141)
> > > at org.apache.activemq.util.ServiceSupport.stop(ServiceSupport.java:71)
> > > at
> > >
> > >
> org.apache.activemq.broker.scheduler.SchedulerBroker.stop(SchedulerBroker.java:223)
> > > at org.apache.activemq.broker.BrokerFilter.stop(BrokerFilter.java:194)
> > > at
> > >
> > >
> org.apache.activemq.broker.TransactionBroker.stop(TransactionBroker.java:209)
> > > at
> org.apache.activemq.broker.BrokerService$3.stop(BrokerService.java:2363)
> > > at org.apache.activemq.util.ServiceStopper.stop(ServiceStopper.java:41)
> > > at
> org.apache.activemq.broker.BrokerService.stop(BrokerService.java:849)
> > > at
> > >
> > >
> org.apache.activemq.broker.scheduler.JobSchedulerTestSupport.tearDown(JobSchedulerTestSupport.java:69)
> > > at
> > >
> > >
> java.lang.invoke.LambdaForm$DMH/0x000001ff01108000.invokeVirtual(java.base@25
> > > /LambdaForm$DMH)
> > > at
> java.lang.invoke.LambdaForm$MH/0x000001ff01108800.invoke(java.base@25
> > > /LambdaForm$MH)
> > > at java.lang.invoke.Invokers$Holder.invokeExact_MT(java.base@25
> > > /Invokers$Holder)
> > > at
> jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(java.base@25
> > > /DirectMethodHandleAccessor.java:154)
> > > at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(java.base@25
> > > /DirectMethodHandleAccessor.java:104)
> > > at java.lang.reflect.Method.invoke(java.base@25/Method.java:565)
> > > at
> > >
> > >
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
> > > at
> > >
> > >
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> > > at
> > >
> > >
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
> > > at
> > >
> > >
> org.junit.internal.runners.statements.RunAfters.invokeMethod(RunAfters.java:46)
> > > at
> > >
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33)
> > > at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
> > > at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
> > > at
> > >
> > >
> org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
> > > at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
> > > at
> > >
> > >
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
> > > at
> > >
> > >
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
> > > at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
> > > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
> > > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
> > > at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
> > > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
> > > at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
> > > at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
> > > at
> > >
> > >
> org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:316)
> > > at
> > >
> > >
> org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:240)
> > > at
> > >
> > >
> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:214)
> > > at
> > >
> > >
> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:155)
> > > at
> > >
> > >
> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
> > > at
> > >
> > >
> org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
> > > at
> org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
> > > at
> > >
> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
> > >
> > > "JobScheduler:JMS" #129 [42779] daemon prio=5 os_prio=31 cpu=10.67ms
> > > elapsed=1417.10s tid=0x000000013200c000 nid=42779 waiting on condition
> > > [0x0000000328c42000]
> > > java.lang.Thread.State: WAITING (parking)
> > > at jdk.internal.misc.Unsafe.park(java.base@25/Native Method)
> > > - parking to wait for <0x00000007e0cdd530> (a
> > > java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
> > > at java.util.concurrent.locks.LockSupport.park(java.base@25
> > > /LockSupport.java:223)
> > > at
> > >
> > >
> java.util.concurrent.locks.AbstractQueuedLongSynchronizer.acquire(java.base@25
> > > /AbstractQueuedLongSynchronizer.java:410)
> > > at
> > >
> > >
> java.util.concurrent.locks.AbstractQueuedLongSynchronizer.acquire(java.base@25
> > > /AbstractQueuedLongSynchronizer.java:650)
> > > at
> > >
> > >
> java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(java.base@25
> > > /ReentrantReadWriteLock.java:966)
> > > at
> > >
> > >
> org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl$8.visit(JobSchedulerStoreImpl.java:696)
> > > at
> > >
> > >
> org.apache.activemq.store.kahadb.data.KahaAddScheduledJobCommand.visit(KahaAddScheduledJobCommand.java:283)
> > > at
> > >
> > >
> org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl.process(JobSchedulerStoreImpl.java:691)
> > > at
> > >
> > >
> org.apache.activemq.store.kahadb.AbstractKahaDBStore.store(AbstractKahaDBStore.java:495)
> > > at
> > >
> > >
> org.apache.activemq.store.kahadb.AbstractKahaDBStore.store(AbstractKahaDBStore.java:403)
> > > at
> > >
> > >
> org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.doSchedule(JobSchedulerImpl.java:252)
> > > at
> > >
> > >
> org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.schedule(JobSchedulerImpl.java:100)
> > > at
> > >
> > >
> org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.mainLoop(JobSchedulerImpl.java:782)
> > > at
> > >
> > >
> org.apache.activemq.store.kahadb.scheduler.JobSchedulerImpl.run(JobSchedulerImpl.java:699)
> > > at java.lang.Thread.runWith(java.base@25/Thread.java:1487)
> > > at java.lang.Thread.run(java.base@25/Thread.java:1474)
> > >
> > > Looking at the ReentrantReadWriteLock$NonfairSync in question in a heap
> > > dump, the 'firstReader' is the JobScheduler:JMS thread, which I assume
> has
> > > a read lock on this already and both threads are attempting to acquire
> a
> > > write lock.
> > >
> > > Weirdly, I don't see this with Java 21. I'll try and dig in to get some
> > > more information on what's happening, and if appropriate, send a patch.
> > >
> > > Any thoughts are welcome - and if no-one has any thoughts, that's cool
> too,
> > > I'm happy to continue working through this and report back.
> > >
> > > Jon
> > >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> For further information, visit: https://activemq.apache.org/contact
>
>
>