[ 
https://issues.apache.org/jira/browse/KARAF-7450?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17553215#comment-17553215
 ] 

Jean-Baptiste Onofré commented on KARAF-7450:
---------------------------------------------

By the way, I don't think the problem is in Karaf internals; but most probably 
in your application.

> Karaf failing to start bundle because of a dependency that is available
> -----------------------------------------------------------------------
>
>                 Key: KARAF-7450
>                 URL: https://issues.apache.org/jira/browse/KARAF-7450
>             Project: Karaf
>          Issue Type: Bug
>          Components: karaf
>    Affects Versions: 4.4.0, 4.2.14
>         Environment: Windows 10 Pro
> Karaf 4.2.14  ( I tried 4.4.0 as well )
> 32gb of memory
>  
> I do have two kar files that also load up, but the problem is with bundles in 
> the system folder.  All of the problem bundles are part of system folder with 
> everything else. 
>            Reporter: Brent Shores
>            Priority: Critical
>         Attachments: karaf.log.1
>
>
> When I start up my karaf application, I'm getting a lot of bundles that 
> initially go into a GracePeriod state, and then move from there to Failure 
> after they timeout.  When I start following the dependency chain, I got down 
> to the top-level one and it had a dependency on another bundle that was 
> successfully loaded up.  For my example, the bundle I'm looking at is this: ( 
> from the list command)
>  
> 74 | Failure |  82 | 1.5.1               | inventorysrvc-ext
>  
> Then I look at the diagnostic for it:
> Run "diag 74"
>  
> karaf@root()> diag 74
> inventorysrvc-ext (74)
> ----------------------
> Status: Failure
> Blueprint
> 6/6/22 8:40 AM
> Exception:
> null
> java.util.concurrent.TimeoutException
>         at 
> org.apache.aries.blueprint.container.BlueprintContainerImpl$1.run(BlueprintContainerImpl.java:393)
>         at 
> org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:45)
>         at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>         at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
>         at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>         at java.lang.Thread.run(Thread.java:748)
>  
> Missing dependencies:
> (objectClass=com.toshibacommerce.service.inventorysrvc.api.IInventoryHelper)
> Declarative Services
> CdiOsgi
> So it's missing IInventoryHelper.   Except looking at my code, that 
> IInventoryHelper is being added inside my inventorysrvc-helper bundle.  
> Here's the blueprint for that:
> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 
> http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd";>
> <!-- registering inventory helper services -->
> <bean id="invHelper"
> class="com.toshibacommerce.service.inventorysrvc.helper.InventoryHelper">
> <property name="confProperty" ref="confProperty" />
> </bean>
> <service ref="invHelper"
> interface="com.toshibacommerce.service.inventorysrvc.api.IInventoryHelper" />
> <reference id="confProperty"
> interface="com.toshibacommerce.commons.props.api.IConfigProperty" />
> </blueprint>
>  
> This bundle status:
> 75 | Active  |  80 | 1.5.1               | inventorysrvc-helper
>  
> So I think I'm just in a bad order and it failed to load, so I restart 74, 
> because I know it's one missing dependency is available now.
>  
> karaf@root()> restart 74
>  
> And it does the same GracePeriod or Failure with the same timeout exception.  
> No other useful errors even with log level turned up.  Only error in logs is:
> There error shown in the logs at the initial startup is:
> [ERROR] 06/06/2022 10:52:16.074 [Blueprint Extender: 1] 
> BlueprintContainerImpl[396] - Unable to start container for blueprint bundle 
> inventorysrvc-ext/1.5.1 due to unresolved dependencies 
> [(objectClass=com.toshibacommerce.service.inventorysrvc.api.IInventoryHelper)]
> java.util.concurrent.TimeoutException: null
> at 
> org.apache.aries.blueprint.container.BlueprintContainerImpl$1.run(BlueprintContainerImpl.java:393)
>  [!/:1.10.3]
> at 
> org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:45)
>  [!/:1.10.3]
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> [?:1.8.0-292]
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0-292]
> at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
>  [?:1.8.0-292]
> at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>  [?:1.8.0-292]
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  [?:1.8.0-292]
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  [?:1.8.0-292]
> at java.lang.Thread.run(Thread.java:748) 
> [?:1.8.0-292]
>  
> Which doesn't tell me much.  When I attempt to start the bundle, nothing 
> happens.  I'm hoping there is some sort of logging I can turn on or something 
> to see more info on the missing dependency and why it thinks it's not there 
> when it is.
>  
> I'm attaching the full log file.  Ignore anything before 8:35am.  Also there 
> are a bunch of errors from a cloudforwarder services.  That's just because it 
> can't reach it's rest service.  Not an issue.
>  
> When I did a restart it showed slightly different in logs:
>  
> [INFO ] 06/07/2022 07:14:59.780 [pipe-restart 74] BlueprintExtender[358] - 
> Destroying container for blueprint bundle inventorysrvc-ext/1.5.1
> [INFO ] 06/07/2022 07:14:59.824 [pipe-restart 74] Activator[45] - Stopping 
> the Inventorysrvc-ext bundle
> [INFO ] 06/07/2022 07:14:59.824 [pipe-restart 74] Activator[36] - Starting 
> the Inventorysrvc-ext bundle
> [INFO ] 06/07/2022 07:14:59.840 [pipe-restart 74] BlueprintContainerImpl[408] 
> - Blueprint bundle inventorysrvc-ext/1.5.1 is waiting for dependencies 
> [(objectClass=com.toshibacommerce.service.inventorysrvc.api.IInventoryHelper)]
> [INFO ] 06/07/2022 07:14:59.918 [pipe-restart 74] CommandExtension[108] - 
> Command registration delayed for bundle inventorysrvc-ext/1.5.1. Missing 
> service: 
> [com.toshibacommerce.service.inventorysrvc.ext.trigger.IInventoryTrigger, 
> com.toshibacommerce.service.inventorysrvc.ext.cfg.IConfig]
>  
> Both of those dependencies it's mentioning are actually in the 
> inventorysrvc-ext bundle, so now it's failing to load itself?  
>  
> Yeah, so that's my issue.  I have the dependencies in place, but Karaf won't 
> load my bundle.  If I do a "feature:install transaction", which forces it to 
> unload and reload a bunch of things, it will come up.
>  
> My theory is a race condition going on somehow.  On faster machines, it seems 
> to work more often, slower machines, it's more likely to get hung here.  If I 
> wipe the data directory and restart it might come up, might not.  If I just 
> restart without deleting data, it fails most of the time.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to