Uploaded image for project: 'Aries'
  1. Aries
  2. ARIES-1468

Aries Transaction Blueprint bundle fails to start sometimes

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • transaction-manager-1.3.0, jmx-1.1.5, transaction-blueprint-2.0.0
    • jmx-1.1.6
    • JMX, Transaction
    • None
    • Windows 7 version 6.1 x64
      Java 1.7.0_80 x64

    Description

      I have found some unstable behavior when starting Karaf 4.0.3.
      Apache Aries Transaction Blueprint 2.0.0 bundle start success is random.
      I have to restart Karaf several (about 3 to 10) times to get the error.
      It looks like it is some sort of a bundle race or something.

      The list of features to be installed:
      feature:install -v eventadmin;
      feature:install -v http-whiteboard;
      feature:install -v jdbc;
      feature:install -v pax-jdbc-pool-dbcp2;
      feature:install -v eclipselink/2.6.0;
      feature:install -v jpa/2.2.0;

      Exception during Karaf start:
      karaf@root()> ERROR: Bundle org.apache.aries.blueprint.core [13] EventDispatcher: Error during dispatch. (java.lang.NullPointerException)
      java.lang.NullPointerException
      at org.apache.aries.blueprint.namespace.NamespaceHandlerRegistryImpl.addingService(NamespaceHandlerRegistryImpl.java:126)
      at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941)
      at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870)
      at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
      at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229)
      at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:901)
      at org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:991)
      at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:839)
      at org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:546)
      at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4557)
      at org.apache.felix.framework.Felix.registerService(Felix.java:3549)
      at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:348)
      at org.apache.aries.blueprint.container.BlueprintContainerImpl.registerService(BlueprintContainerImpl.java:459)
      at org.apache.aries.blueprint.container.ServiceRecipe.register(ServiceRecipe.java:193)
      at org.apache.aries.blueprint.container.BlueprintContainerImpl.registerServices(BlueprintContainerImpl.java:710)
      at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:385)
      at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:270)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      at org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106)
      at org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
      at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:745)

      Cut from bundle:list command result:
      108 | Active | 80 | 1.2 | javax.interceptor API
      109 | Active | 80 | 1.2 | javax.transaction API
      110 | Active | 80 | 1.1.1 | Apache Aries Transaction Blueprint
      111 | Failure | 80 | 2.0.0 | Apache Aries Transaction Blueprint
      112 | Active | 80 | 1.3.0 | Apache Aries Transaction Manager

      Diag command result for problem bundle:
      Apache Aries Transaction Blueprint (111)
      ----------------------------------------
      Status: Failure
      Blueprint
      11.11.15 12:06
      Exception:
      Service already unregistered.
      java.lang.IllegalStateException: Service already unregistered.
      at org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:140)
      at org.apache.aries.blueprint.container.ServiceRecipe.register(ServiceRecipe.java:195)
      at org.apache.aries.blueprint.container.BlueprintContainerImpl.registerServices(BlueprintContainerImpl.java:710)
      at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:385)
      at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:270)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      at org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106)
      at org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
      at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:745)

      I have recorded some logs with DEBUG level. One with normal start and another with problem start.
      http://www.lorien.biz/karaf/logs.zip

      I have recorded a video to demonstrate it: http://www.youtube.com/watch?v=GzFy_suhwNg

      I've never seen Transaction bundle fail without exception from JMX. But I've seen exception from JMX without Transaction bundle fail.

      Attachments

        Issue Links

          Activity

            People

              cschneider Christian Schneider
              ellirael Viktor Kozlov
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: