<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:28: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>[ODLPARENT-262] SingleFeatureTest needs to be safe to execute in parallel</title>
                <link>https://jira.opendaylight.org/browse/ODLPARENT-262</link>
                <project id="10149" key="ODLPARENT">odlparent</project>
                    <description>&lt;p&gt;Attempting to run mutlple SFTs, i.e. feature.xml builds, on the same machine is going to lead into failures (the dreaded NotBoundException) due to concurrent Karaf invocation (I think, needs to be tested).&lt;br/&gt;
 Given that SFT is run through SureFire -&amp;gt; Pax-Exam -&amp;gt; Karaf, we may end up needing to rework this pipeline.&lt;/p&gt;

&lt;p&gt;Note that whatever solution we brew up here needs to be licensed under Apache-2.0 license as we will want to contribute it back to karaf (and not deal with maintaining it).&lt;/p&gt;</description>
                <environment></environment>
        <key id="34485">ODLPARENT-262</key>
            <summary>SingleFeatureTest needs to be safe to execute in parallel</summary>
                <type id="10103" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10311&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="2" iconUrl="https://jira.opendaylight.org/images/icons/priorities/critical.svg">High</priority>
                        <status id="3" iconUrl="https://jira.opendaylight.org/images/icons/statuses/inprogress.png" description="This issue is being actively worked on at the moment by the assignee.">In Progress</status>
                    <statusCategory id="4" key="indeterminate" colorName="yellow"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="rkashapov">Ruslan Kashapov</assignee>
                                    <reporter username="rovarga">Robert Varga</reporter>
                        <labels>
                            <label>pick-next</label>
                            <label>pt</label>
                    </labels>
                <created>Wed, 29 Sep 2021 01:33:46 +0000</created>
                <updated>Fri, 19 Jan 2024 08:30:29 +0000</updated>
                                                            <fixVersion>14.0.0</fixVersion>
                    <fixVersion>13.0.11</fixVersion>
                                    <component>SFT</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="69648" author="rovarga" created="Wed, 29 Sep 2021 11:56:42 +0000"  >&lt;p&gt;Looking at &lt;a href=&quot;https://github.com/apache/karaf/blob/e1dde27b88303c78e1d94b3dddaca0ea177e59e5/itests/test/pom.xml#L297-L313&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/apache/karaf/blob/e1dde27b88303c78e1d94b3dddaca0ea177e59e5/itests/test/pom.xml#L297-L313&lt;/a&gt; it is clear this is not something solved in upstream and we will need to brew our own solution.&lt;/p&gt;

&lt;p&gt;In order to control when a Karaf instance is launched and when not, we will need to attach to Maven reactor, hence this will invariantly include a bespoke maven plugin.&lt;/p&gt;

&lt;p&gt;For maintaining reactor-global state we need to do something along the lines of &lt;a href=&quot;https://github.com/fabric8io/docker-maven-plugin/issues/504&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/fabric8io/docker-maven-plugin/issues/504&lt;/a&gt; which ends up needing to talk to &lt;a href=&quot;https://maven.apache.org/ref/3.8.2/maven-core/apidocs/org/apache/maven/execution/MavenSession.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://maven.apache.org/ref/3.8.2/maven-core/apidocs/org/apache/maven/execution/MavenSession.html&lt;/a&gt; .&lt;/p&gt;

&lt;p&gt;That in turn gives us complete visibility into what the entirety of build looks like, with things like getCurrentProject() (hence no need for depends-maven-plugin), getProjects() and getPluginContext() &#8211; which should give us enough rope to implement what amounts to a Reactor-global lock we need to ensure there is no reactor-level concurrency around launching Karaf.&lt;/p&gt;</comment>
                            <comment id="69649" author="rovarga" created="Wed, 29 Sep 2021 12:14:27 +0000"  >&lt;p&gt;For launching Karaf, that does not look like an involved operation: &lt;a href=&quot;https://github.com/ops4j/org.ops4j.pax.exam2/blob/master/containers/pax-exam-container-karaf/src/main/java/org/ops4j/pax/exam/karaf/container/internal/KarafTestContainer.java#L129&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/ops4j/org.ops4j.pax.exam2/blob/master/containers/pax-exam-container-karaf/src/main/java/org/ops4j/pax/exam/karaf/container/internal/KarafTestContainer.java#L129&lt;/a&gt; , hence we should be able to brew our own.&lt;/p&gt;

&lt;p&gt;All we really need for SFT is to install the needed features and then monitor Karaf and wait for it to settle. I thing all the things we collect in &lt;font color=&quot;#000000&quot;&gt;BundleDiagInfosImpl&lt;/font&gt; should also be available through Karaf&apos;s serviceability features. Certainly the JMX information provided in osgi.core, org.apache.aries.blueprint and org.apache.karaf looks very promising.&lt;/p&gt;</comment>
                            <comment id="69651" author="rovarga" created="Wed, 29 Sep 2021 12:35:51 +0000"  >&lt;p&gt;As a side note: policy as to whether karaf can be launched concurrently or not depends on networking ports being used.&lt;br/&gt;
The first step there would be to reign in opendaylight-karaf-empty&apos;s, so that most of odlparent-packaged features can be tested concurrently &#8211; which would be an opt-in configured by the SFT-using artifact (based on knowledge of what is being tested). Based on that experience we may provide enough tools for at least some downstreams to the same.&lt;/p&gt;

&lt;p&gt;That work is out of scope for this issue, though: for now we will serialize all Karaf tests.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="34498">ODLPARENT-264</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="23665">BGPCEP-425</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="34449">ODLPARENT-257</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="19501">INFRAUTILS-12</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_10002" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>ODLPARENT-261</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03zrj:</customfieldvalue>

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