<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:55:06 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[CONTROLLER-1264] Config subsystem does not load services when features are installed in karaf instances</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1264</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;First reported here: &lt;a href=&quot;https://lists.opendaylight.org/pipermail/controller-dev/2015-April/008945.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://lists.opendaylight.org/pipermail/controller-dev/2015-April/008945.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is a difference in the behavior of the config subsystem in normal karaf and in a karaf instance (a separate process created by karaf). It does not seem to register services as it should.&lt;/p&gt;

&lt;p&gt;Problem verified in Helium-SR1 and Helium-SR3.&lt;/p&gt;

&lt;p&gt;Minimal steps to reproduce in Helium-SR1: &lt;/p&gt;

&lt;p&gt;./bin/karaf&lt;br/&gt;
instance:create test&lt;/p&gt;

&lt;p&gt;run:&lt;br/&gt;
               echo &apos;org.ops4j.pax.url.mvn.localRepository=${karaf.home}/${karaf.default.repository}&apos; &amp;gt;&amp;gt; ./instances/test/etc/org.ops4j.pax.url.mvn.cfg&lt;/p&gt;

&lt;p&gt;instance:start test&lt;br/&gt;
instance:connect test&lt;br/&gt;
feature:repo-add mvn:org.opendaylight.integration/features-integration/0.2.1-Helium-SR1/xml/features&lt;/p&gt;

&lt;p&gt;feature:install odl-config-netty&lt;/p&gt;

&lt;p&gt;services | grep io.netty.util.Timer&lt;/p&gt;

&lt;p&gt;Expected output: &lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;io.netty.util.Timer&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Actual output: None&lt;/p&gt;

&lt;p&gt;The same feature can be installed in root context, and it would expose the service from netty-timer-config. In instance context, the service is not there, even though all the bundles are active. &lt;/p&gt;


&lt;p&gt;Here are the bundle details on my machine:&lt;/p&gt;

&lt;p&gt; &amp;#8211; Instance context: &amp;#8211; &lt;/p&gt;

&lt;p&gt;opendaylight-user@test&amp;gt;bundle:capabilities 147&lt;br/&gt;
org.opendaylight.controller.netty-timer-config &lt;span class=&quot;error&quot;&gt;&amp;#91;147&amp;#93;&lt;/span&gt; provides:&lt;br/&gt;
--------------------------------------------------------------&lt;br/&gt;
// ... snipped ...&lt;br/&gt;
service; &lt;span class=&quot;error&quot;&gt;&amp;#91;org.opendaylight.controller.config.spi.ModuleFactory&amp;#93;&lt;/span&gt; with properties:&lt;br/&gt;
   service.id = 634&lt;br/&gt;
   Used by:&lt;br/&gt;
      org.opendaylight.controller.config-manager &lt;span class=&quot;error&quot;&gt;&amp;#91;120&amp;#93;&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&amp;#8211; Root context: &amp;#8211; &lt;/p&gt;

&lt;p&gt;opendaylight-user@root&amp;gt;bundle:capabilities 147&lt;br/&gt;
org.opendaylight.controller.netty-timer-config_0.2.6.Helium-SR1 &lt;span class=&quot;error&quot;&gt;&amp;#91;147&amp;#93;&lt;/span&gt; provides:&lt;br/&gt;
-------------------------------------------------------------------------------&lt;br/&gt;
// ... snipped ...&lt;br/&gt;
service; &lt;span class=&quot;error&quot;&gt;&amp;#91;org.opendaylight.controller.config.spi.ModuleFactory&amp;#93;&lt;/span&gt; with properties:&lt;br/&gt;
   service.id = 657&lt;br/&gt;
   Used by:&lt;br/&gt;
      org.opendaylight.controller.config-manager_0.2.6.Helium-SR1 &lt;span class=&quot;error&quot;&gt;&amp;#91;120&amp;#93;&lt;/span&gt;&lt;br/&gt;
service; &lt;span class=&quot;error&quot;&gt;&amp;#91;io.netty.util.Timer&amp;#93;&lt;/span&gt; with properties:&lt;br/&gt;
   name = global-timer&lt;br/&gt;
   service.id = 664&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="25818">CONTROLLER-1264</key>
            <summary>Config subsystem does not load services when features are installed in karaf instances</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                                <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10003">Cannot Reproduce</resolution>
                                        <assignee username="mmarsale@cisco.com">Maros Marsalek</assignee>
                                    <reporter username="noam.mor@contextream.com">Noam Mor</reporter>
                        <labels>
                    </labels>
                <created>Mon, 20 Apr 2015 14:06:05 +0000</created>
                <updated>Thu, 28 May 2015 09:02:34 +0000</updated>
                            <resolved>Thu, 28 May 2015 09:02:34 +0000</resolved>
                                    <version>Helium</version>
                                                    <component>config</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="50457" author="mmarsale@cisco.com" created="Thu, 30 Apr 2015 08:50:42 +0000"  >&lt;p&gt;Tested this with stable/lithium and HeliumSR3. But I tried to install odl-restconf-all feature instead of odl-config-netty and everything worked fine. Restconf was available and the capabilities command for netty timer returned:&lt;/p&gt;

&lt;p&gt;org.opendaylight.controller.netty-timer-config_0.2.8.Helium-SR3 &lt;span class=&quot;error&quot;&gt;&amp;#91;212&amp;#93;&lt;/span&gt; provides:&lt;br/&gt;
-------------------------------------------------------------------------------&lt;br/&gt;
...&lt;br/&gt;
service; &lt;span class=&quot;error&quot;&gt;&amp;#91;org.opendaylight.controller.config.spi.ModuleFactory&amp;#93;&lt;/span&gt; with properties:&lt;br/&gt;
   service.id = 726&lt;br/&gt;
   Used by:&lt;br/&gt;
      org.opendaylight.controller.config-manager_0.2.8.Helium-SR3 &lt;span class=&quot;error&quot;&gt;&amp;#91;183&amp;#93;&lt;/span&gt;&lt;br/&gt;
service; &lt;span class=&quot;error&quot;&gt;&amp;#91;io.netty.util.Timer&amp;#93;&lt;/span&gt; with properties:&lt;br/&gt;
   name = global-timer&lt;br/&gt;
   service.id = 750&lt;/p&gt;



&lt;p&gt;So it looks like it works, just the feature you installed might not be referencing the config files to instantiate the timer, just the config bindings.&lt;/p&gt;</comment>
                            <comment id="50458" author="mmarsale@cisco.com" created="Thu, 30 Apr 2015 12:44:45 +0000"  >&lt;p&gt;Was able to reproduce on Helium-SR3 with following exceptions:&lt;/p&gt;

&lt;p&gt;java.lang.NullPointerException: FeatureWrapper requires non-null Feature in constructor&lt;/p&gt;

&lt;p&gt;Applied workaround for this issue from master branch:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/16695/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/16695/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But the problem was still present with following exception:&lt;/p&gt;

&lt;p&gt;Exception in thread &quot;config-pusher&quot; java.lang.IllegalStateException: Max wait for capabilities reached.Netconf service not stable for 00-netty.xml(odl-mdsal-all,odl-config-netty)&lt;br/&gt;
	at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.getOperationServiceWithRetries(ConfigPusherImpl.java:159)&lt;br/&gt;
	at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.pushConfigWithConflictingVersionRetries(ConfigPusherImpl.java:132)&lt;br/&gt;
	at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.internalPushConfigs(ConfigPusherImpl.java:109)&lt;br/&gt;
	at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.process(ConfigPusherImpl.java:76)&lt;br/&gt;
	at org.opendaylight.controller.netconf.persist.impl.osgi.ConfigPersisterActivator$InnerCustomizer$1.run(ConfigPersisterActivator.java:178)&lt;br/&gt;
	at java.lang.Thread.run(Thread.java:745)&lt;br/&gt;
Caused by: org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl$NotEnoughCapabilitiesException: Netconf service not stable for 00-netty.xml(odl-mdsal-all,odl-config-netty)&lt;br/&gt;
	at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.getOperationService(ConfigPusherImpl.java:186)&lt;br/&gt;
	at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.getOperationServiceWithRetries(ConfigPusherImpl.java:152)&lt;br/&gt;
	... 5 more&lt;br/&gt;
Caused by: java.lang.SecurityException: Insufficient roles/credentials for operation&lt;br/&gt;
	at org.apache.karaf.management.KarafMBeanServerGuard.handleInvoke(KarafMBeanServerGuard.java:228)&lt;br/&gt;
	at org.apache.karaf.management.KarafMBeanServerGuard.handleGetAttribute(KarafMBeanServerGuard.java:192)&lt;br/&gt;
	at org.apache.karaf.management.KarafMBeanServerGuard.invoke(KarafMBeanServerGuard.java:63)&lt;br/&gt;
	at org.apache.karaf.management.boot.KarafMBeanServerBuilder$MBeanInvocationHandler.invoke(KarafMBeanServerBuilder.java:63)&lt;br/&gt;
	at com.sun.proxy.$Proxy0.getAttribute(Unknown Source)&lt;br/&gt;
	at com.sun.jmx.mbeanserver.MXBeanProxy$GetHandler.invoke(MXBeanProxy.java:122)&lt;br/&gt;
	at com.sun.jmx.mbeanserver.MXBeanProxy.invoke(MXBeanProxy.java:167)&lt;br/&gt;
	at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:252)&lt;br/&gt;
	at com.sun.proxy.$Proxy20.getAvailableModuleFactoryQNames(Unknown Source)&lt;br/&gt;
	at org.opendaylight.controller.config.util.ConfigRegistryJMXClient.getAvailableModuleFactoryQNames(ConfigRegistryJMXClient.java:220)&lt;br/&gt;
	at org.opendaylight.controller.netconf.confignetconfconnector.osgi.NetconfOperationServiceImpl.checkConsistencyBetweenYangStoreAndConfig(NetconfOperationServiceImpl.java:58)&lt;br/&gt;
	at org.opendaylight.controller.netconf.confignetconfconnector.osgi.NetconfOperationServiceImpl.&amp;lt;init&amp;gt;(NetconfOperationServiceImpl.java:45)&lt;br/&gt;
	at org.opendaylight.controller.netconf.confignetconfconnector.osgi.NetconfOperationServiceFactoryImpl.createService(NetconfOperationServiceFactoryImpl.java:71)&lt;br/&gt;
	at org.opendaylight.controller.netconf.confignetconfconnector.osgi.NetconfOperationServiceFactoryImpl.createService(NetconfOperationServiceFactoryImpl.java:19)&lt;br/&gt;
	at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.getOperationService(ConfigPusherImpl.java:184)&lt;br/&gt;
	... 6 more&lt;/p&gt;


&lt;p&gt;Karaf prevented config subsystem to push configs due to security exception.&lt;/p&gt;</comment>
                            <comment id="50459" author="mmarsale@cisco.com" created="Thu, 7 May 2015 07:48:02 +0000"  >&lt;p&gt;Maybe linked to this issue in karaf&lt;br/&gt;
&lt;a href=&quot;https://issues.apache.org/jira/browse/KARAF-3147&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://issues.apache.org/jira/browse/KARAF-3147&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Noticed that when starting child karaf instances, the jvm is started with following option:&lt;br/&gt;
-Djavax.management.builder.initial=org.apache.karaf.management.boot.KarafMBeanServerBuilder &lt;/p&gt;

&lt;p&gt;which causes the jvm to provide KarafMBeanServerGuard as the default platform MBeanServer. This guard rejects method invocation over JMX even if the privileges are correctly set in jmx.acl.cfg file. Overriding/Removing this option might fix the issue (when starting karaf instance, user can provide jvm options using -o switch so this might be used to override mbean server builder option: &quot;-Djavax.management.builder.initial= &quot;).&lt;/p&gt;</comment>
                            <comment id="50460" author="mmarsale@cisco.com" created="Tue, 12 May 2015 15:01:03 +0000"  >&lt;p&gt;This seem to work with lithium (karaf 3.0.3) but not with Helium (karaf 3.0.1). Workaround needs to be tested.&lt;/p&gt;</comment>
                            <comment id="50461" author="noam.mor@contextream.com" created="Wed, 13 May 2015 11:38:02 +0000"  >&lt;p&gt;We checked out the Helium-SR3 code, modified its pom.xmls to depend on karaf 3.0.2, and built it. We did not observe the bug in this version. In my opinion, it&apos;s almost certainly a bug in karaf 3.0.1. &lt;/p&gt;

&lt;p&gt;We haven&apos;t yet found a workaround for the 3.0.1 build.&lt;/p&gt;</comment>
                            <comment id="50462" author="mmarsale@cisco.com" created="Thu, 28 May 2015 09:02:34 +0000"  >&lt;p&gt;Closing as works for me. This issue is not present with Lithium and karaf version 3.0.3.  For Helium there is a workaround.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3027</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=3027]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i02phz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>