On 04/03/2019 11:37, Jean-Baptiste Onofré wrote: > Hi Vikram, Hello JB,
> > When using Blueprint, you don't directly relay on the service, but > Blueprint creates a proxy for the reference. > > The "timeout" is what we name the grace period and it happens at startup. > Once the startup is done, and the actual service is not there, the proxy > can fail with such kind of exception. > > To better understand your use case, I have to take a look on your impl. > > Is it on OpenDaylight master ? Based on the stack trace, this is Boron SR3, a rather old version of OpenDaylight, which shipped in April 2017 and was based on Karaf 3.0.7. The proxy seems to be pointing to an implementation of org.opendaylight.controller.md.sal.binding.api.NotificationPublishService -- a wild guess would be to look at what went down with sal-binding-broker.jar. Regards, Robert > > Regards > JB > > > On 04/03/2019 08:27, Vikram Darsi wrote: >> Hi Team >> >> Our application is using Blueprint to inject the services exposed by a bean >> to the other bean and in some application runs, we see below exceptions. >> After browsing online articles, the highlighted exception indicates that the >> backend service implementation is not available in the OSGi registry. >> >> Just wondering how a bundle can be in active state when the backend >> implementation(i.e., dependent service) is not available during Karaf start >> up? >> >> Is there a case, the backend implementation can be un-registered from OSGi >> registry without stopping the bundle exposed the service during runtime? As >> we are sure that none of the bundles is stopped. >> >> Are there any recovery mechanisms? Is it correct to attempt reading the >> service from the OSGi registry for a definite number of times? Bundle >> ordering issues leads to these exceptions? >> We are assuming the ordering will be taken care by the blueprint (If a >> dependent service is not available, it waits till 5 minutes(default), post >> which it throws timeout exceptions, we do not see any timeout exceptions >> during start up) >> >> 2017-09-19 11:41:53,886 | ERROR | -dispatcher-9722 | >> DataTreeChangeListenerActor | 212 - >> org.opendaylight.controller.sal-distributed-datastore - 1.4.3.Boron-SR3 | >> Error notifying listener >> org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataTreeChangeListenerAdapter@72586e4e<mailto:org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataTreeChangeListenerAdapter@72586e4e> >> org.osgi.service.blueprint.container.ServiceUnavailableException: The >> Blueprint container is being or has been destroyed: >> (objectClass=org.opendaylight.controller.md.sal.binding.api.NotificationPublishService) >> at >> org.apache.aries.blueprint.container.ReferenceRecipe.getService(ReferenceRecipe.java:241)[15:org.apache.aries.blueprint.core:1.6.1] >> at >> org.apache.aries.blueprint.container.ReferenceRecipe.access$000(ReferenceRecipe.java:56)[15:org.apache.aries.blueprint.core:1.6.1] >> at >> org.apache.aries.blueprint.container.ReferenceRecipe$ServiceDispatcher.call(ReferenceRecipe.java:306)[15:org.apache.aries.blueprint.core:1.6.1] >> at >> Proxy45e3a4cb_f3e4_4016_8f9f_bd0a4c6df5b8.putNotification(Unknown Source)[:] >> at >> com.adva.ensemble.controller.eventmgr.impl.EventHistoryTreeChangeListner.onDataTreeChanged(EventHistoryTreeChangeListner.java:57)[392:com.adva.ensemble.controller.event-mgr-impl:17.1.1.339] >> at >> org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataTreeChangeListenerAdapter.onDataTreeChanged(BindingDOMDataTreeChangeListenerAdapter.java:41)[182:org.opendaylight.controller.sal-binding-broker-impl:1.4.3.Boron-SR3] >> at >> org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.dataChanged(DataTreeChangeListenerActor.java:58)[212:org.opendaylight.controller.sal-distributed-datastore:1.4.3.Boron-SR3] >> at >> org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.handleReceive(DataTreeChangeListenerActor.java:40)[212:org.opendaylight.controller.sal-distributed-datastore:1.4.3.Boron-SR3] >> at >> org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor.onReceive(AbstractUntypedActor.java:26)[206:org.opendaylight.controller.sal-clustering-commons:1.4.3.Boron-SR3] >> at >> akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:165)[194:com.typesafe.akka.actor:2.4.7] >> at >> akka.actor.Actor$class.aroundReceive(Actor.scala:484)[194:com.typesafe.akka.actor:2.4.7] >> at >> akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:95)[194:com.typesafe.akka.actor:2.4.7] >> at >> akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)[194:com.typesafe.akka.actor:2.4.7] >> at >> akka.actor.ActorCell.invoke(ActorCell.scala:495)[194:com.typesafe.akka.actor:2.4.7] >> at >> akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)[194:com.typesafe.akka.actor:2.4.7] >> at >> akka.dispatch.Mailbox.run(Mailbox.scala:224)[194:com.typesafe.akka.actor:2.4.7] >> at >> akka.dispatch.Mailbox.exec(Mailbox.scala:234)[194:com.typesafe.akka.actor:2.4.7] >> at >> scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)[190:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8] >> at >> scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)[190:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8] >> at >> scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)[190:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8] >> at >> scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)[190:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8] >> >> Let me know if you need more information. >> >> Thanks in advance. >> >> Regards >> Vikram >> >
signature.asc
Description: OpenPGP digital signature
