<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:53:59 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-833] sal-compatiblity does not register some services.</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-833</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;sal-comaptiblity does not register the following services with AD-SAL.&lt;/p&gt;

&lt;p&gt;  + IPluginInReadService&lt;br/&gt;
  + IPluginInInventoryService&lt;/p&gt;


&lt;p&gt;Therefore, for example, an AS-SAL application cannot get flow statistics from the MD-SAL OF plugin, because sal-compatibility does not register IPluginInReadService.&lt;/p&gt;


&lt;p&gt;For instance, we saw the following ERROR message, because sal-compatiblity does not register IPluginInInventoryService with AD-SAL.&lt;/p&gt;

&lt;p&gt;  WARN  o.o.c.s.i.internal.ReadService  - Plugin OF unavailable&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="25387">CONTROLLER-833</key>
            <summary>sal-compatiblity does not register some services.</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="10000">Done</resolution>
                                        <assignee username="Hideyuki1985">Hideyuki Tai</assignee>
                                    <reporter username="Hideyuki1985">Hideyuki Tai</reporter>
                        <labels>
                    </labels>
                <created>Sun, 14 Sep 2014 23:03:23 +0000</created>
                <updated>Thu, 19 Oct 2017 16:36:45 +0000</updated>
                            <resolved>Tue, 5 May 2015 15:17:13 +0000</resolved>
                                    <version>Helium</version>
                                                    <component>adsal</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="49175" author="hideyuki.tai@necam.com" created="Mon, 15 Sep 2014 21:23:07 +0000"  >&lt;p&gt;Please let me add more information on the first example.&lt;/p&gt;

&lt;p&gt;More precisely, when an AD-SAL application calls IStatisticsManager.getFlowsNoCache(Node), it fails to get up-to-date flow statistics.&lt;/p&gt;

&lt;p&gt;The implmentation of IStatisticsManager.getFlowsNoCache(Node) calls IReadService.nonCachedReadAllFlows(Node), and the implementation of IReadService.nonCachedReadAllFlows(Node) calls IPluginInReadService.readAllFlow(Node, boolean).&lt;br/&gt;
However, because sal-compatiblity does not register IPluginInReadService, calling IPluginInReadService.readAllFlow(Node, boolean) fails, and IStatisticsManager.getFlowsNoCache(Node) fails to get flow statistics.&lt;/p&gt;



&lt;p&gt;On the other hand, the implementation of IStatisticsManager.getFlows(Node) uses cached data, and does not call methods of IPluginInReadService.&lt;br/&gt;
This is why calling Northbound API of Statistics service is success.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jenkins.opendaylight.org/controller/job/controller-merge/lastSuccessfulBuild/artifact/opendaylight/northbound/statistics/target/site/wsdocs/index.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://jenkins.opendaylight.org/controller/job/controller-merge/lastSuccessfulBuild/artifact/opendaylight/northbound/statistics/target/site/wsdocs/index.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Northbound interface internally calls IStatisticsManager.getFlows(Node), and does not call IStatisticsManager.getFlowsNoCache(Node).&lt;/p&gt;</comment>
                            <comment id="49176" author="hideyuki.tai@necam.com" created="Tue, 16 Sep 2014 14:57:08 +0000"  >&lt;p&gt;Hi Tony,&lt;/p&gt;

&lt;p&gt;Thank you for updating the bug report.&lt;/p&gt;

&lt;p&gt;Could you explain why you changed the &quot;Product&quot; of this report from controller to openflowplugin?&lt;br/&gt;
Have you find out the root cause of this problem in openflowplugin?&lt;/p&gt;</comment>
                            <comment id="49177" author="hagbard@gmail.com" created="Wed, 17 Sep 2014 14:52:55 +0000"  >&lt;p&gt;This is very strange, if you look at InventoryAndReadAdapter it implements IPluginInReadService, IPluginInInventoryService and ComponentActivator registers them.&lt;/p&gt;

&lt;p&gt;Running in karaf:&lt;/p&gt;

&lt;p&gt;opendaylight-user@root&amp;gt;feature:install odl-adsal-compatibility&lt;br/&gt;
GossipRouter started at Wed Sep 17 09:50:22 CDT 2014&lt;br/&gt;
Listening on port 12001 bound on address 0.0.0.0/0.0.0.0&lt;br/&gt;
Backlog is 1000, linger timeout is 2000, and read timeout is 0&lt;br/&gt;
opendaylight-user@root&amp;gt;bundle:list -s | grep compat&lt;br/&gt;
 18 | Resolved |  20 | 1.0.0                   | org.apache.aries.blueprint.core.compatibility, Hosts: 19                 &lt;br/&gt;
193 | Active   |  80 | 1.1.0.SNAPSHOT          | org.opendaylight.controller.sal-compatibility                            &lt;br/&gt;
opendaylight-user@root&amp;gt;bundle:services 193&lt;/p&gt;

&lt;p&gt;MD-SAL to AD-SAL Adaptation (193) provides:&lt;br/&gt;
-------------------------------------------&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;org.opendaylight.controller.sal.flowprogrammer.IPluginInFlowProgrammerService&amp;#93;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;org.opendaylight.controller.sal.inventory.IPluginInInventoryService, org.opendaylight.controller.sal.reader.IPluginInReadService&amp;#93;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;org.opendaylight.controller.sal.utils.INodeFactory&amp;#93;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;org.opendaylight.controller.sal.utils.INodeConnectorFactory&amp;#93;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;org.opendaylight.controller.sal.topology.IPluginInTopologyService&amp;#93;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;org.opendaylight.controller.sal.core.IContainerAware&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Which basically shows that those services are in fact present and provided by odl-adsal-compatiblity.&lt;/p&gt;</comment>
                            <comment id="49178" author="hideyuki.tai@necam.com" created="Wed, 17 Sep 2014 18:33:00 +0000"  >&lt;p&gt;(In reply to Ed Warnicke from comment #3)&lt;br/&gt;
&amp;gt; This is very strange, if you look at InventoryAndReadAdapter it implements&lt;br/&gt;
&amp;gt; IPluginInReadService, IPluginInInventoryService and ComponentActivator&lt;br/&gt;
&amp;gt; registers them.&lt;br/&gt;
&amp;gt; &lt;/p&gt;

&lt;p&gt;Yes, this is very strange.&lt;/p&gt;

&lt;p&gt;I&apos;ve observed the same result Ed got.&lt;/p&gt;


&lt;p&gt;Running in karaf (RC1):&lt;/p&gt;

&lt;p&gt;feature:install odl-adsal-compatibility&lt;br/&gt;
feature:install odl-nsf-all&lt;/p&gt;

&lt;p&gt;bundle:list -s | grep compat&lt;br/&gt;
 18 | Resolved |  20 | 1.0.0                   | org.apache.aries.blueprint.core.compatibility, Hosts: 19&lt;br/&gt;
190 | Active   |  80 | 1.1.0.Helium-RC1        | org.opendaylight.controller.sal-compatibility&lt;/p&gt;

&lt;p&gt;bundle:services 190&lt;/p&gt;

&lt;p&gt;MD-SAL to AD-SAL Adaptation (190) provides:&lt;br/&gt;
-------------------------------------------&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;org.opendaylight.controller.sal.flowprogrammer.IPluginInFlowProgrammerService&amp;#93;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;org.opendaylight.controller.sal.inventory.IPluginInInventoryService, org.opendaylight.controller.sal.reader.IPluginInReadService&amp;#93;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;org.opendaylight.controller.sal.utils.INodeFactory&amp;#93;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;org.opendaylight.controller.sal.utils.INodeConnectorFactory&amp;#93;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;org.opendaylight.controller.sal.topology.IPluginInTopologyService&amp;#93;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;org.opendaylight.controller.sal.core.IContainerAware&amp;#93;&lt;/span&gt;&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;org.opendaylight.controller.sal.packet.IPluginInDataPacketService&amp;#93;&lt;/span&gt;&lt;/p&gt;




&lt;p&gt;The sal-compatibility registers the following two services with dependency manager.&lt;br/&gt;
  + IPluginInReadService&lt;br/&gt;
  + IPluginInInventoryService&lt;/p&gt;

&lt;p&gt;However, the correspondent AD-SAL methods are not called.&lt;br/&gt;
For example, if sal-compatibility correctly register InventoryAndReadAdapter (which implements IPluginInReadService), ReadService.setService(Map&amp;lt;?, ?&amp;gt;, IPluginInReadService) must be called.&lt;br/&gt;
(ReadService class is in org.opendaylight.controller.sal.implementation.internal.)&lt;/p&gt;

&lt;p&gt;However, I&apos;ve confirmed that the ReadService.setService method is not called.&lt;br/&gt;
To confirm that, I used RC1 Karaf distribution, and changed the log level of sal.implementation to TRACE.&lt;/p&gt;

&lt;p&gt;  log:set TRACE org.opendaylight.controller.sal.implementation&lt;/p&gt;

&lt;p&gt;If the ReadService.setService method is called, I guess I can see the following TRACE message.&lt;/p&gt;

&lt;p&gt;  Received set service request: org.opendaylight.controller.sal.compatibility.InventoryAndReadAdapter&lt;/p&gt;


&lt;p&gt;However, I couldn&apos;t see the above line.&lt;br/&gt;
What I saw is just the following two lines.&lt;/p&gt;

&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; TRACE &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; Local user karaf &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; FlowProgrammerService            &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 175 - org.opendaylight.controller.sal.implementation - 0.4.2.Helium-RC1 &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; Received set service request: org.opendaylight.controller.sal.compatibility.FlowProgrammerAdapter@55ad011c&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;


&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; TRACE &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; Local user karaf &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; DataPacketService                &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; 175 - org.opendaylight.controller.sal.implementation - 0.4.2.Helium-RC1 &lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt; Received set service request: org.opendaylight.controller.sal.compatibility.adsal.DataPacketServiceAdapter@145ddfea&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;



&lt;p&gt;We guess that the root cause of this issue is sal-compatibility registers the two services as &quot;global services&quot;.&lt;br/&gt;
  + IPluginInReadService&lt;br/&gt;
  + IPluginInInventoryService&lt;/p&gt;

&lt;p&gt;On the other hand, AD-SAL openflow plugin registers the above services as &quot;container services&quot;&lt;/p&gt;</comment>
                            <comment id="49179" author="hideyuki.tai@necam.com" created="Fri, 19 Sep 2014 21:33:34 +0000"  >&lt;p&gt;It seems to me that the bug is in sal-compatibility of Controller project.&lt;/p&gt;

&lt;p&gt;And, there are no analysis from anyone which indicates that the root cause of this issue is in OpenFlow plugin project.&lt;/p&gt;

&lt;p&gt;Therefore, I&apos;ve reverted the &quot;Product&quot; of this bug from openflowplugin to controller.&lt;/p&gt;</comment>
                            <comment id="49180" author="mirehak@cisco.com" created="Sat, 20 Sep 2014 13:02:04 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/11400/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/11400/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hi, I pushed a patch which:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;solves sal-compatibility service provider wiring&lt;/li&gt;
	&lt;li&gt;changes getAllStat behavior - stats are taken from operational (product of StatisticsManager)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;But there seems to be no change in output of vtn/../detail url.&lt;/p&gt;

&lt;p&gt;@Hideyuki: could you please test this patch a check if there is something wrong behind invocation of ReadService.nonCachedReadAllFlows()?&lt;/p&gt;

&lt;p&gt;Thank you.&lt;/p&gt;</comment>
                            <comment id="49181" author="hideyuki.tai@necam.com" created="Sun, 21 Sep 2014 00:55:59 +0000"  >&lt;p&gt;(In reply to michal rehak from comment #6)&lt;br/&gt;
&amp;gt; &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/11400/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/11400/&lt;/a&gt;&lt;br/&gt;
&amp;gt; &lt;/p&gt;

&lt;p&gt;(snip)&lt;/p&gt;

&lt;p&gt;&amp;gt; &lt;br/&gt;
&amp;gt; @Hideyuki: could you please test this patch a check if there is something&lt;br/&gt;
&amp;gt; wrong behind invocation of ReadService.nonCachedReadAllFlows()?&lt;/p&gt;

&lt;p&gt;Hi Michal,&lt;/p&gt;

&lt;p&gt;I&apos;ve pulled the above patch, and tested the &lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-833&quot; title=&quot;sal-compatiblity does not register some services.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-833&quot;&gt;&lt;del&gt;CONTROLLER-833&lt;/del&gt;&lt;/a&gt;.&lt;br/&gt;
And, I&apos;ve confirmed that your patch fixes &lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-833&quot; title=&quot;sal-compatiblity does not register some services.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-833&quot;&gt;&lt;del&gt;CONTROLLER-833&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;First, I saw the following TRACE log message.&lt;/p&gt;

&lt;p&gt;2014-09-20 20:24:13,151 | TRACE | Local user karaf | ReadService                      | 175 - org.opendaylight.controller.sal.implementation - 0.4.2.SNAPSHOT | Received set service request: org.opendaylight.controller.sal.compatibility.InventoryAndReadAdapter@26b0df73&lt;/p&gt;

&lt;p&gt;I think it meant that sal-compatibility correctly registered InventoryAndReadAdapter (which implements IPluginInReadService).&lt;/p&gt;


&lt;p&gt;Secondly, I didn&apos;t see the following WARN message.&lt;/p&gt;

&lt;p&gt;  Plugin OF unavailable&lt;/p&gt;

&lt;p&gt;I think that indicates that sal-compatibility successfully registered IPluginInInventoryService with AD-SAL.&lt;/p&gt;


&lt;p&gt;Thirdly, I observed that VTN Manager (an AD-SAL application) successfully got up-to-date flow statistics.&lt;/p&gt;


&lt;p&gt;Therefore, VTN project would be very happy if controller project merges this patch.&lt;/p&gt;

&lt;p&gt;Thank you!&lt;/p&gt;</comment>
                            <comment id="49182" author="hagbard@gmail.com" created="Sun, 21 Sep 2014 14:33:15 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/11400/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/11400/&lt;/a&gt; is merged.&lt;/p&gt;</comment>
                            <comment id="49183" author="carolsand@gmail.com" created="Tue, 5 May 2015 15:17:13 +0000"  >&lt;p&gt;This bug is part of the project to Move all ADSAL associated component bugs to ADSAL.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="26420">VTN-40</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <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>1866</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=1866]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10204" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>ODL SR Target Milestone</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10372"><![CDATA[Helium-RC2]]></customfieldvalue>

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

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