<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:24:13 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>[NETVIRT-1504] VpnInterfaceManager filling up logs at alarming rate</title>
                <link>https://jira.opendaylight.org/browse/NETVIRT-1504</link>
                <project id="10144" key="NETVIRT">netvirt</project>
                    <description>&lt;p&gt;Netvirt 3 node csit failing after 6 hours. Logs show two things:&lt;/p&gt;

&lt;p&gt;1. Default config shard in error state on ODL1.&lt;br/&gt;
2. VPNInterfaceManager repeatedly filling log with error messages at a near instantaneous rate without any delays.&lt;/p&gt;

&lt;p&gt;Cluster issues need to be looked into, but VPNInterfaceManager shouldn&apos;t be filling up logs with ERROR messages at such a high rate.&lt;br/&gt;
2018-11-07T00:34:55,909 | ERROR | jobcoordinator-main-task-0 | VpnInterfaceManager              | 359 - org.opendaylight.netvirt.vpnmanager-impl - 0.7.1 | add: VpnInstance b15bbaf1-6b95-46c9-b19d-83d7719804ba for vpnInterface 052f2318-dd2a-4530-9703-fdd47b13c3cb not ready, holding on &lt;br/&gt;
2018-11-07T00:34:55,909 | ERROR | jobcoordinator-main-task-0 | VpnInterfaceManager              | 359 - org.opendaylight.netvirt.vpnmanager-impl - 0.7.1 | add: VpnInstance b15bbaf1-6b95-46c9-b19d-83d7719804ba for vpnInterface 93517e2a-2534-42c4-a334-2454e04fb17f not ready, holding on &lt;br/&gt;
2018-11-07T00:34:55,910 | ERROR | jobcoordinator-main-task-0 | VpnInterfaceManager              | 359 - org.opendaylight.netvirt.vpnmanager-impl - 0.7.1 | add: VpnInstance b15bbaf1-6b95-46c9-b19d-83d7719804ba for vpnInterface 4efba312-0be0-4a6a-a059-3636b344c2aa not ready, holding on &lt;br/&gt;
2018-11-07T00:34:55,911 | ERROR | jobcoordinator-main-task-0 | VpnInterfaceManager              | 359 - org.opendaylight.netvirt.vpnmanager-impl - 0.7.1 | add: VpnInstance b15bbaf1-6b95-46c9-b19d-83d7719804ba for vpnInterface 1cb60d50-95dd-4ec6-a78e-375c90b36490 not ready, holding on &lt;/p&gt;

&lt;p&gt;Guilty code is in VpnInterfaceManager.java:&lt;/p&gt;

&lt;p&gt;    @Override&lt;br/&gt;
    public void add(final InstanceIdentifier&amp;lt;VpnInterface&amp;gt; identifier, final VpnInterface vpnInterface) {&lt;br/&gt;
        LOG.trace(&quot;Received VpnInterface add event: vpnInterface={}&quot;, vpnInterface);&lt;br/&gt;
        LOG.info(&quot;add: intfName {} onto vpnName {}&quot;, vpnInterface.getName(),&lt;br/&gt;
                VpnHelper.getVpnInterfaceVpnInstanceNamesString(vpnInterface.getVpnInstanceNames()));&lt;br/&gt;
        addVpnInterface(identifier, vpnInterface, null, null);&lt;br/&gt;
    }&lt;/p&gt;

&lt;p&gt;addVpnInterface eventuall calls&lt;/p&gt;

&lt;p&gt;   private void addVpnInterfaceCall(final InstanceIdentifier&amp;lt;VpnInterface&amp;gt; identifier, final VpnInterface vpnInterface,&lt;br/&gt;
                         final List&amp;lt;Adjacency&amp;gt; oldAdjs, final List&amp;lt;Adjacency&amp;gt; newAdjs, String vpnName) {&lt;br/&gt;
        final VpnInterfaceKey key = identifier.firstKeyOf(VpnInterface.class);&lt;br/&gt;
        final String interfaceName = key.getName();&lt;/p&gt;

&lt;p&gt;        if (!canHandleNewVpnInterface(identifier, vpnInterface, vpnName)) {&lt;br/&gt;
            LOG.error(&quot;add: VpnInstance {} for vpnInterface {} not ready, holding on &quot;,&lt;br/&gt;
                  vpnName, vpnInterface.getName());&lt;br/&gt;
            return;&lt;br/&gt;
        }&lt;/p&gt;

&lt;p&gt;The log messages in above to methods are what are filling up the log. &lt;/p&gt;

&lt;p&gt;This code should not be:&lt;br/&gt;
1. Retrying forever&lt;br/&gt;
2. Retrying without any delay.&lt;/p&gt;</description>
                <environment></environment>
        <key id="31024">NETVIRT-1504</key>
            <summary>VpnInterfaceManager filling up logs at alarming rate</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="1" iconUrl="https://jira.opendaylight.org/images/icons/priorities/blocker.svg">Highest</priority>
                        <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="thapar">Vishal Thapar</assignee>
                                    <reporter username="thapar">Vishal Thapar</reporter>
                        <labels>
                            <label>csit:3node</label>
                    </labels>
                <created>Tue, 13 Nov 2018 17:21:06 +0000</created>
                <updated>Thu, 15 Nov 2018 13:52:32 +0000</updated>
                            <resolved>Thu, 15 Nov 2018 13:52:32 +0000</resolved>
                                    <version>Fluorine-SR1</version>
                                    <fixVersion>Fluorine-SR1</fixVersion>
                    <fixVersion>Neon</fixVersion>
                                    <component>vpnmanager</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                    <progress percentage="100">
                                    <originalProgress>
                                                    <row percentage="0" backgroundColor="#89afd7"/>
                                                    <row percentage="100" backgroundColor="transparent"/>
                                            </originalProgress>
                                                    <currentProgress>
                                                    <row percentage="100" backgroundColor="#51a825"/>
                                                    <row percentage="0" backgroundColor="#ec8e00"/>
                                            </currentProgress>
                            </progress>
                                    <aggregateprogress percentage="100">
                                    <originalProgress>
                                                    <row percentage="0" backgroundColor="#89afd7"/>
                                                    <row percentage="100" backgroundColor="transparent"/>
                                            </originalProgress>
                                                    <currentProgress>
                                                    <row percentage="100" backgroundColor="#51a825"/>
                                                    <row percentage="0" backgroundColor="#ec8e00"/>
                                            </currentProgress>
                            </aggregateprogress>
                                            <timeestimate seconds="0">0 minutes</timeestimate>
                            <timespent seconds="14400">4 hours</timespent>
                                <comments>
                            <comment id="65594" author="thapar" created="Tue, 13 Nov 2018 17:41:47 +0000"  >&lt;p&gt;Issue is in VPnInterfaceManager&apos;s add retry logic. It is working something like this:&lt;/p&gt;

&lt;p&gt;1. Try to add interface.&lt;br/&gt;
2. If it fails, add it to unprocessed interfaces.&lt;br/&gt;
3. also OnFailure of DJC method is to process saved interfaces.&lt;/p&gt;

&lt;p&gt;This means we&apos;re repeatedly trying to process it without any delay, basically an infinite loop.&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_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03kgf:</customfieldvalue>

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