[
https://issues.apache.org/jira/browse/AXIS2-2770?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12501691
]
Alex Boisvert commented on AXIS2-2770:
--------------------------------------
The issue here is the member "allservices" of AxisConfiguration is not
correctly protected from concurrent access.
In Axis 1.2, the following method are unsafe because they are not synchronized:
1) removeServiceGroup()
2) getService()
3) getServiceForActivation()
4) getServices() notoriously dangerous, unless allservices is cloned
5) stopService()
6) startService()
In Axis 1.2, the following method are unsafe:
1) addToAllServices()
2) removeServiceGroup()
3) getService()
4) getServiceForActivation()
5) getServices() again, notoriously dangerous
6) stopService()
7) startService()
I don't know enough about the synchronization strategy in Axis2 to know if
adding synchronization to the above methods is a good idea (deadlocks??)
> Under load, Axis2 client throws AxisFault: Two services can not have same
> name, a service with anonService28797891118106994 already exists in the system
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: AXIS2-2770
> URL: https://issues.apache.org/jira/browse/AXIS2-2770
> Project: Axis 2.0 (Axis2)
> Issue Type: Bug
> Components: client-api
> Affects Versions: 1.1.1
> Reporter: Alex Boisvert
>
> Here's the exception I get under high load / concurrent invocations using
> Axis2 1.1.1 on a dual-core system with roughly 100 concurrent threads.
> 11:59:03,198 ERROR [ExternalService] Error sending message to Axis2 for ODE
> mex {PartnerRoleMex#4611686018427389612 [PID
> {http://example.com/SyncProcess/SyncProcess}SyncProcess-4] calling [EMAIL
> PROTECTED](...)}
> org.apache.axis2.AxisFault: Two services can not have same name, a service
> with anonService287978911181069943120 already exists in the system
> at
> org.apache.axis2.engine.AxisConfiguration.addServiceGroup(AxisConfiguration.java:254)
> at
> org.apache.axis2.engine.AxisConfiguration.addService(AxisConfiguration.java:206)
> at
> org.apache.axis2.client.ServiceClient.configureServiceClient(ServiceClient.java:128)
> at
> org.apache.axis2.client.ServiceClient.<init>(ServiceClient.java:114)
> at
> org.apache.ode.axis2.ExternalService.invoke(ExternalService.java:114)
> at
> org.apache.ode.axis2.MessageExchangeContextImpl.invokePartner(MessageExchangeContextImpl.java:52)
> at
> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeContextImpl.java:779)
> at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:96)
> This exception is non-deterministic... but I can reproduce it every 5 second
> or so on my system.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]