[ 
https://issues.apache.org/jira/browse/CAMEL-24229?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aurélien Pupier reopened CAMEL-24229:
-------------------------------------

same issue continue occur

{noformat}
org.apache.camel.RuntimeCamelException: 
org.apache.camel.VetoCamelContextStartException: CamelContext 
(camelContext-SpringQuartzPersistentStoreRestartAppChangeOptionsTest) with 
ObjectName[org.apache.camel:context=camelContext-SpringQuartzPersistentStoreRestartAppChangeOptionsTest-opts2,type=context,name="camelContext-SpringQuartzPersistentStoreRestartAppChangeOptionsTest"]
 is already registered. Make sure to use unique names on CamelContext when 
using multiple CamelContexts in the same MBeanServer.
        at 
org.apache.camel.RuntimeCamelException.wrapRuntimeException(RuntimeCamelException.java:91)
        at 
org.apache.camel.support.service.BaseService.doFail(BaseService.java:452)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.doFail(AbstractCamelContext.java:3438)
        at 
org.apache.camel.support.service.BaseService.fail(BaseService.java:381)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.failOnStartup(AbstractCamelContext.java:4517)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2390)
        at 
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:214)
        at 
org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:119)
        at 
org.apache.camel.spring.xml.CamelContextFactoryBean.start(CamelContextFactoryBean.java:433)
        at 
org.apache.camel.spring.xml.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:488)
        at 
org.apache.camel.spring.xml.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:99)
        at 
org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:180)
        at 
org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:173)
        at 
org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:151)
        at 
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:448)
        at 
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:381)
        at 
org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:1016)
        at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624)
        at 
org.apache.camel.test.spring.junit6.CamelSpringTestSupport$MyXmlApplicationContext.<init>(CamelSpringTestSupport.java:284)
        at 
org.apache.camel.test.spring.junit6.CamelSpringTestSupport$MyXmlApplicationContext.<init>(CamelSpringTestSupport.java:276)
        at 
org.apache.camel.test.spring.junit6.CamelSpringTestSupport.newAppContext(CamelSpringTestSupport.java:265)
        at 
org.apache.camel.test.spring.junit6.CamelSpringTestSupport.newAppContext(CamelSpringTestSupport.java:261)
        at 
org.apache.camel.component.quartz.SpringQuartzPersistentStoreRestartAppChangeOptionsTest.newAppContext(SpringQuartzPersistentStoreRestartAppChangeOptionsTest.java:188)
        at 
org.apache.camel.component.quartz.SpringQuartzPersistentStoreRestartAppChangeOptionsTest.testRestartAppChangeTriggerOptions(SpringQuartzPersistentStoreRestartAppChangeOptionsTest.java:131)
Caused by: org.apache.camel.VetoCamelContextStartException: CamelContext 
(camelContext-SpringQuartzPersistentStoreRestartAppChangeOptionsTest) with 
ObjectName[org.apache.camel:context=camelContext-SpringQuartzPersistentStoreRestartAppChangeOptionsTest-opts2,type=context,name="camelContext-SpringQuartzPersistentStoreRestartAppChangeOptionsTest"]
 is already registered. Make sure to use unique names on CamelContext when 
using multiple CamelContexts in the same MBeanServer.
        at 
org.apache.camel.management.JmxManagementLifecycleStrategy.onContextStarting(JmxManagementLifecycleStrategy.java:222)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:3116)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.doStartContext(AbstractCamelContext.java:2846)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2801)
        at 
org.apache.camel.support.service.BaseService.start(BaseService.java:132)
        at 
org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2380)
        ... 18 more
{noformat}

> Fix flaky BacklogTracerActivityTest (volatile) and QuartzPersistentStore 
> (MBean collision)
> ------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-24229
>                 URL: https://issues.apache.org/jira/browse/CAMEL-24229
>             Project: Camel
>          Issue Type: Test
>          Components: camel-core, camel-quartz
>            Reporter: Guillaume Nodet
>            Priority: Minor
>              Labels: flaky-test
>             Fix For: 4.22.0
>
>
> Fix two flaky tests by addressing their root causes:
> h3. BacklogTracerActivityTest
> *Root cause*: {{enabled}}, {{standby}}, and {{activityEnabled}} fields in 
> {{BacklogTracer}} were not {{volatile}}. When these flags are toggled via JMX 
> while routing threads read them, JIT register caching can cause stale 
> cross-thread reads. The test enables {{activityEnabled}} via JMX and 
> immediately sends exchanges — the routing thread may cache the old {{false}} 
> value in a register and never see the update.
> *Fix*: Mark all three fields {{volatile}}.
> h3. SpringQuartzPersistentStoreRestartAppChangeOptionsTest
> *Root cause*: Multiple Spring XML config files used the same 
> {{managementNamePattern="#name#"}}, producing identical JMX ObjectNames. When 
> sequential CamelContexts share the same management name and one is still 
> unregistering when the next starts, a {{VetoCamelContextStartException}} is 
> thrown.
> *Fix*: Give each Spring XML file a unique {{managementNamePattern}} suffix 
> ({{-cron1}}, {{-cron2}}, {{-opts1}}, {{-opts2}}) so JMX ObjectNames never 
> collide.
> h3. Related
> * The BacklogTracer fix covers only the 3 guard fields that cause the flaky 
> test. A broader audit (50+ non-volatile JMX-writable fields across 12 engine 
> classes) is tracked in CAMEL-24227.
> * PR: https://github.com/apache/camel/pull/24713



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to