Hi Guys,

Sorry if this not the right channel but I was wondering what the procedure
is to contribute patches and bug fixes.

I have been experiencing a Heisenbug on the wso2esb 4.6.0 / stratos 1.6.0.

It appears that the buggy code is in
org.wso2.carbon.proxyadmin.ProxyServiceDeployer.init(ConfigurationContext
configCtx). The while loop is waiting for the MediationPersistenceManager
to be initialized and I assume is supposed to retry 10 times which should
be *while(mpm == null && retry < 10)* . However, the conditional
states *while(mpm
== null || retry < 10).* Which causes two problems, one very trivial, the
other not so much.

1) The while loop will always execute ten times
2) The MediationPersistenceManager is initialised in
org.wso2.carbon.mediation.initializer.multitenancy.TenantServiceBusInitializer
and
the order in which TenantServiceBusInitializer or
ProxyAdminServiceComponent (or any other Axis2ConfigurationContextObserver)
gets invoked via
org.wso2.carbon.core.multitenancy.utils.TenantAxisUtils.createTenantConfigurationContext(ConfigurationContext
mainConfigCtx, String tenantDomain) is non-deterministic (from what I can
see).

The problem here is that when the
TenantServiceBusInitializer.createdConfigurationContext(ConfigurationContext
configContext) is set to be invoked after
ProxyAdminServiceComponent..createdConfigurationContext(ConfigurationContext
configContext), due to the ordering of the array of services returned by
the org.osgi.util.tracker.ServiceTracker, the loop in
org.wso2.carbon.proxyadmin.ProxyServiceDeployer.init(ConfigurationContext
configCtx) never completes and TenantServiceBusInitializer.
createdConfigurationContext(ConfigurationContext configContext) is never
invoked.

The user will then experience an exception when trying to access any of the
synapse component UIs because of a NullPointer thrown when the associated
Admin classes try to obtain a lock via AbstractServiceBusAdmin.getLock()

Many thanks,
Kevin
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to