Hey Thomas,
I just got stack overflow myself and began to look for solution of my issue.

From my past experiences I can tell you that stack overflow prior 4.3.x was usually result of multiple feature repositories (uris) delivering same feature. This might happen if you have several KARs/generated feature sets pulled into another feature/final assembly. All works separatelly but breaks when paths are crossed and packed together.

You can search for it manually or simply with bash helper:
find . -name "*.xml" -exec grep -C 4 -i "name=\"co7io-chrono" "{}" \; -print

In my case I know issue is related to co7io-chrono feature because I attached debugger to see what is at the very top of stack overflow listed in .. stack trace. Turns out to be this feature.

With above command I see that same feature is listed in few places.

./features/org.co7io.addons.feature.openhab/target/feature/feature.xml
./features/org.co7io.addons.feature.profile/target/feature/feature.xml
./bundles/org.co7io.chrono/target/test-classes/feature.xml (source)

Situation for me is rather obvious the "chrono" stuff brings own feature descriptor which reffered in "openhab" and "profile" feature sets. Quite natural, isn't it? Yet due to use of feature aggregation the chrono feature is embedded into openhab and profile feature descriptors. Effectively I got 3 "co7io-chrono" features defined in three descriptors.

After looking at dependency tree I found that all three feature sets are reffered in one build which might confuse resolver.

Can you do similar deduction for your build and see if similar situation occurs there too?

Best regards,
Łukasz


On 27.09.2021 15:25, Thomas Driessen wrote:
Hi J.B. :)

just wanted to ask if you did find some spare time to have a look at that issue?

Kind regards,
Thomas

Am Mo., 20. Sept. 2021 um 07:50 Uhr schrieb Thomas Driessen <[email protected] <mailto:[email protected]>>:

    Hi J.B.,

    I've sent you the contents directly to your email :)

    Am Mo., 20. Sept. 2021 um 07:43 Uhr schrieb Jean-Baptiste Onofre
    <[email protected] <mailto:[email protected]>>:

        Hi Thomas,

        Would it be possible to have your features definition ? I will
        be able to take a look.

        Thanks
        Regards
        JB

         > Le 20 sept. 2021 à 07:27, Thomas Driessen
        <[email protected]
        <mailto:[email protected]>> a écrit :
         >
         > Hi J.B. , hi Francois,
         >
         > thanks for your quick answer and sorry for the delay.
         >
         > Is there any way to detect such a cycle, i.e. is there a
        command such as feature:tree like for the dependency tree in
        maven that could help me identifying such cycles?
         >
         > Strange thing is: the exact same setup worked fine with Karaf
        4.3.2. So probably one of our referenced features in other
        feature repositories causes this behavior.
         >
         >
         > Kind regards,
         > Thomas
         >
         > Am Sa., 18. Sept. 2021 um 06:22 Uhr schrieb Jean-Baptiste
        Onofre <[email protected] <mailto:[email protected]>>:
         > Hi Thomas,
         >
         > I think you have a loop in your features (a feature A require
        feature B that require feature A).
         >
         > I know that Pax CDI has a cycle like this (I have a fix but
        not yet released).
         >
         > Regards
         > JB
         >
         > > Le 17 sept. 2021 à 17:00, Thomas Driessen
        <[email protected]
        <mailto:[email protected]>> a écrit :
         > >
         > > Hi,
         > >
         > > we just updated to the new Karaf 4.3.3 and suddenly we
        always get a StackOverflowError as soon as we try to do a
        feature:refresh:
         > >
         > > 2021-09-17T14:56:44,239 | ERROR | Karaf local console user
        karaf | ShellUtil                        | 44 -
        org.apache.karaf.shell.core - 4.3.3 | Exception caught while
        executing command
         > > java.util.concurrent.ExecutionException:
        java.lang.StackOverflowError
         > >         at
        java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:?]
         > >         at
        java.util.concurrent.FutureTask.get(FutureTask.java:191) ~[?:?]
         > >         at
        
org.apache.felix.gogo.runtime.CommandSessionImpl$JobImpl.run(CommandSessionImpl.java:855)
        ~[?:?]
         > >         at
        java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        ~[?:?]
         > >         at
        java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
         > >         at
        
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        ~[?:?]
         > >         at
        
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        ~[?:?]
         > >         at java.lang.Thread.run(Thread.java:829) [?:?]
         > > Caused by: java.lang.StackOverflowError
         > >         at
        
org.apache.karaf.features.internal.region.Subsystem.<init>(Subsystem.java:149)
        ~[?:?]
         > >         at
        
org.apache.karaf.features.internal.region.SubsystemResolver.prepare(SubsystemResolver.java:127)
        ~[?:?]
         > >         at
        
org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:390)
        ~[?:?]
         > >         at
        
org.apache.karaf.features.internal.service.Deployer.handlePrerequisites(Deployer.java:1121)
        ~[?:?]
         > >         at
        
org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:394)
        ~[?:?]
         > >         at
        
org.apache.karaf.features.internal.service.Deployer.handlePrerequisites(Deployer.java:1121)
        ~[?:?]
         > >         at
        
org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:394)
        ~[?:?]
         > >         at
        
org.apache.karaf.features.internal.service.Deployer.handlePrerequisites(Deployer.java:1121)
        ~[?:?]
         > >         at
        
org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:394)
        ~[?:?]
         > >         at
        
org.apache.karaf.features.internal.service.Deployer.handlePrerequisites(Deployer.java:1121)
        ~[?:?]
         > >         at
        
org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:394)
        ~[?:?]
         > >         at
        
org.apache.karaf.features.internal.service.Deployer.handlePrerequisites(Deployer.java:1121)
        ~[?:?]
         > >         at
        
org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:394)
        ~[?:?]
         > >         at
        
org.apache.karaf.features.internal.service.Deployer.handlePrerequisites(Deployer.java:1121)
        ~[?:?]
         > >         at
        
org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:394)
        ~[?:?]
         > >         at
        
org.apache.karaf.features.internal.service.Deployer.handlePrerequisites(Deployer.java:1121)
        ~[?:?]
         > >         at
        
org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:394)
        ~[?:?]
         > >         at
        
org.apache.karaf.features.internal.service.Deployer.handlePrerequisites(Deployer.java:1121)
        ~[?:?]
         > >         at
        
org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:394)
        ~[?:?]
         > >
         > > Is this a known bug? Or is there anyone else experiencing this?
         > >
         > > Kind regards,
         > > Thomas
         >

Reply via email to