<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:02:04 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>[INFRAUTILS-24] JobCoordinator should use bounded Executors and bound its own job queue</title>
                <link>https://jira.opendaylight.org/browse/INFRAUTILS-24</link>
                <project id="10129" key="INFRAUTILS">infrautils</project>
                    <description>&lt;p&gt;motivated by &lt;a href=&quot;https://jira.opendaylight.org/browse/GENIUS-96&quot; title=&quot;DataStoreJobCoordinator OOM&quot; class=&quot;issue-link&quot; data-issue-key=&quot;GENIUS-96&quot;&gt;&lt;del&gt;GENIUS-96&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;as per &lt;a href=&quot;https://lists.opendaylight.org/pipermail/infrautils-dev/2017-November/000487.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://lists.opendaylight.org/pipermail/infrautils-dev/2017-November/000487.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;it seems to me that JobCoordinatorImpl unbounded datastructures are very risky, and that we should limit and reject new jobs at the time enqueueJob() is called if we&apos;re full, instead of OOM&apos;ing.&lt;/p&gt;

&lt;p&gt;NB there are at least 3 if not more datastructures here I see we need to protect:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;ForkJoinPool fjPool&lt;/li&gt;
	&lt;li&gt;ScheduledExecutorService scheduledExecutorService&lt;/li&gt;
	&lt;li&gt;Map&amp;lt;String, JobQueue&amp;gt; jobQueueMap keys&lt;/li&gt;
	&lt;li&gt;Map&amp;lt;String, JobQueue&amp;gt; jobQueueMap internal JobQueue (separate from the keys)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;And when JC is &quot;full&quot;, it would probably be useful in future analysis to have a dump of all jobs that are stuck in the queue at that point? Or force a thread dump via &lt;a href=&quot;https://jira.opendaylight.org/browse/INFRAUTILS-21&quot; title=&quot;Automatic deadlock detection logging&quot; class=&quot;issue-link&quot; data-issue-key=&quot;INFRAUTILS-21&quot;&gt;&lt;del&gt;INFRAUTILS-21&lt;/del&gt;&lt;/a&gt; ?&lt;/p&gt;</description>
                <environment></environment>
        <key id="28698">INFRAUTILS-24</key>
            <summary>JobCoordinator should use bounded Executors and bound its own job queue</summary>
                <type id="10100" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="2" iconUrl="https://jira.opendaylight.org/images/icons/priorities/critical.svg">High</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="10001">Won&apos;t Do</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="vorburger">Michael Vorburger</reporter>
                        <labels>
                    </labels>
                <created>Sat, 4 Nov 2017 01:49:01 +0000</created>
                <updated>Tue, 13 Apr 2021 20:50:26 +0000</updated>
                            <resolved>Tue, 13 Apr 2021 20:50:02 +0000</resolved>
                                                                    <component>jobcoordinator</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>0</watches>
                                                                                                                <comments>
                            <comment id="69104" author="rovarga" created="Tue, 13 Apr 2021 20:50:02 +0000"  >&lt;p&gt;Superseded by &lt;a href=&quot;https://jira.opendaylight.org/browse/INFRAUTILS-75&quot; title=&quot;Remove jobcoordinator&quot; class=&quot;issue-link&quot; data-issue-key=&quot;INFRAUTILS-75&quot;&gt;&lt;del&gt;INFRAUTILS-75&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="28693">GENIUS-96</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="28695">INFRAUTILS-21</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </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_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i0379z:</customfieldvalue>

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