[jboss-osgi-issues] [JBoss JIRA] Work started: (JBOSGI-479) Race condition when registering services in multiple threads

David Bosschaert (JIRA) jira-events at lists.jboss.org
Thu Jul 14 11:48:23 EDT 2011


     [ https://issues.jboss.org/browse/JBOSGI-479?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Work on JBOSGI-479 started by David Bosschaert.

> Race condition when registering services in multiple threads
> ------------------------------------------------------------
>
>                 Key: JBOSGI-479
>                 URL: https://issues.jboss.org/browse/JBOSGI-479
>             Project: JBoss OSGi
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>            Reporter: David Bosschaert
>            Assignee: David Bosschaert
>
> When registering multiple services with the same service name a race condition occurs. This is exposed when running the Service Performance tests (e.g. org.jboss.osgi.test.performance.service.arq.Service100TestCase).
> The problem boils down to the fact that two threads race to obtain a service controller for the same name. One of them wins, the other fails with this exception:
> org.jboss.msc.service.DuplicateServiceException: Service jbosgi.service."org.jboss.osgi.test.performance.service.SvcCls1" is already registered
> 	at org.jboss.msc.service.ServiceRegistrationImpl.setInstance(ServiceRegistrationImpl.java:154)
> 	at org.jboss.msc.service.ServiceControllerImpl.startInstallation(ServiceControllerImpl.java:226)
> 	at org.jboss.msc.service.ServiceContainerImpl.install(ServiceContainerImpl.java:560)
> 	at org.jboss.msc.service.ServiceTargetImpl.install(ServiceTargetImpl.java:201)
> 	at org.jboss.msc.service.ServiceControllerImpl$ChildServiceTarget.install(ServiceControllerImpl.java:2194)
> 	at org.jboss.msc.service.ServiceBuilderImpl.install(ServiceBuilderImpl.java:307)
> 	at org.jboss.osgi.framework.internal.ServiceManagerPlugin.registerService(ServiceManagerPlugin.java:180)
> 	at org.jboss.osgi.framework.internal.AbstractBundleContext.registerService(AbstractBundleContext.java:305)
> 	at org.jboss.osgi.framework.internal.AbstractBundleContext.registerService(AbstractBundleContext.java:297)
> 	at org.jboss.osgi.test.performance.service.CreateAndLookupBenchmark.runThread(CreateAndLookupBenchmark.java:79)
> 	at org.jboss.osgi.test.performance.service.CreateAndLookupBenchmark.runThread(CreateAndLookupBenchmark.java:41)
> 	at org.jboss.osgi.test.performance.AbstractThreadedBenchmark$1.run(AbstractThreadedBenchmark.java:91)
> 	at java.lang.Thread.run(Thread.java:680)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-osgi-issues mailing list