I can't even get into JIRA and list AMQ issues. So I understand your pain.
I'll checkout Jenkins meanwhile and see if I can contribute to that PR
instead then

--
Jean-Louis Monteiro
http://twitter.com/jlouismonteiro
http://www.tomitribe.com


On Thu, Nov 13, 2025 at 5:56 PM Jean-Baptiste Onofré <[email protected]>
wrote:

> It sounds good.  Thanks !
>
> A PR is already there to have Jenkins building with JDK25.
>
> I will create the Jira (Jira is super slow right now :( ).
>
> Regards
> JB
>
> On Thu, Nov 13, 2025 at 5:26 PM Jean-Louis Monteiro
> <[email protected]> wrote:
> >
> > I'm doing the auditing fix for Java 25 locally.
> > As soon as you get the tickets up, I can pick from there and push PRs
> > --
> > Jean-Louis Monteiro
> > http://twitter.com/jlouismonteiro
> > http://www.tomitribe.com
> >
> >
> > On Thu, Nov 13, 2025 at 4:49 PM Jean-Baptiste Onofré <[email protected]>
> > wrote:
> >
> > > Yup, it was part of my list ;)
> > >
> > > I will create the tickets to clearly track the work to be done.
> > >
> > > I also propose to already create the PR with JDK25 update to see where
> > > we are failing and update step by step.
> > >
> > > Thanks Jean-Louis !
> > >
> > > Regards
> > > JB
> > >
> > > On Thu, Nov 13, 2025 at 4:02 PM Jean-Louis Monteiro
> > > <[email protected]> wrote:
> > > >
> > > > Thanks JB
> > > > I was looking at the AnnotatedMBean which is using the security
> manager
> > > to
> > > > get the subject for auditing.
> > > >
> > > > We need to rework it so we can preserve the auditing feature
> > > > Long story short, a ticket with subtasks would be ideal so we can all
> > > help
> > > > --
> > > > Jean-Louis Monteiro
> > > > http://twitter.com/jlouismonteiro
> > > > http://www.tomitribe.com
> > > >
> > > >
> > > > On Thu, Nov 13, 2025 at 3: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
> > > > >
> > > > >
> > > > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [email protected]
> > > For additional commands, e-mail: [email protected]
> > > For further information, visit: https://activemq.apache.org/contact
> > >
> > >
> > >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> For further information, visit: https://activemq.apache.org/contact
>
>
>

Reply via email to