<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:03:32 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>[INTPAK-76] Use Karaf&apos;s PID file once we only support Karaf 4 distros</title>
                <link>https://jira.opendaylight.org/browse/INTPAK-76</link>
                <project id="10190" key="INTPAK">integration-packaging</project>
                    <description>&lt;p&gt;I fielded a question about how we&apos;re handling ODL restarts with systemd and which versions of ODL provide a PID file. Short version is that Karaf 4 distros provide a PID file that we may want to point at in our systemd unit file. For now, we&apos;re using the default GuessPID behavior and it seems to be working fine. Lots of info from the email exchange below.&lt;/p&gt;

&lt;p&gt;This is the systemd unit file we include in upstream (and RH downstream) packages.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/gitweb?p=integration/packaging.git;a=blob;f=packages/rpm/unitfiles/opendaylight.service;h=ac436592d2880047986b856c7dd6810665ba0d3e;hb=refs/heads/master&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/gitweb?p=integration/packaging.git;a=blob;f=packages/rpm/unitfiles/opendaylight.service;h=ac436592d2880047986b856c7dd6810665ba0d3e;hb=refs/heads/master&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note that we start ODL with `ExecStart=/opt/opendaylight/bin/start` and then expect that process to fork ODL&apos;s main process (`Type=forking`).&lt;/p&gt;

&lt;p&gt;Note these docs:&lt;/p&gt;

&lt;p&gt;&amp;gt; If set to forking, it is expected that the process configured with ExecStart= will call fork() as part of its start-up. The parent process is expected to exit when start-up is complete and all communication channels are set up. The child continues to run as the main daemon process. This is the behavior of traditional UNIX daemons. If this setting is used, it is recommended to also use the PIDFile= option, so that systemd can identify the main process of the daemon.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.freedesktop.org/software/systemd/man/systemd.service.html#Type=&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://www.freedesktop.org/software/systemd/man/systemd.service.html#Type=&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since we&apos;re not currently setting a PIDFile, systemd is falling back on guessing the main PID.&lt;/p&gt;

&lt;p&gt;See these docs:&lt;/p&gt;

&lt;p&gt;&amp;gt; Takes a boolean value that specifies whether systemd should try to guess the main PID of a service if it cannot be determined reliably. This option is ignored unless Type=forking is set and PIDFile= is unset because for the other types or with an explicitly configured PID file, the main PID is always known. The guessing algorithm might come to incorrect conclusions if a daemon consists of more than one process. If the main PID cannot be determined, failure detection and automatic restarting of a service will not work reliably. Defaults to yes.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.freedesktop.org/software/systemd/man/systemd.service.html#GuessMainPID=&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://www.freedesktop.org/software/systemd/man/systemd.service.html#GuessMainPID=&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I think this PID guessing is working, looking at the main PID info from `sudo systemctl status opendaylight`.&lt;/p&gt;

&lt;p&gt;Note that we recently had a discussion about ODL&apos;s restart behavior and ended up adding `Restart=on-failure`.&lt;/p&gt;

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

&lt;p&gt;I see karaf.pid files for these ODL versions.&lt;/p&gt;

&lt;p&gt;Nitrogen:&lt;/p&gt;

&lt;p&gt;$ sudo dnf install -y &lt;a href=&quot;http://cbs.centos.org/repos/nfv7-opendaylight-7-release/x86_64/os/Packages/opendaylight-7.0.0-1.el7.noarch.rpm&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://cbs.centos.org/repos/nfv7-opendaylight-7-release/x86_64/os/Packages/opendaylight-7.0.0-1.el7.noarch.rpm&lt;/a&gt;&lt;br/&gt;
$ sudo systemctl start opendaylight&lt;br/&gt;
$ find /opt/opendaylight -name &quot;*.pid&quot;                                             &lt;br/&gt;
/opt/opendaylight/karaf.pid&lt;/p&gt;

&lt;p&gt;Oxygen:&lt;/p&gt;

&lt;p&gt;$ wget &lt;a href=&quot;https://nexus.opendaylight.org/content/repositories/opendaylight-oxygen-epel-7-x86_64-devel/org/opendaylight/integration-packaging/opendaylight/8.0.0-0.1.20170928snap597.el7.noarch/opendaylight-8.0.0-0.1.20170928snap597.el7.noarch.rpm&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://nexus.opendaylight.org/content/repositories/opendaylight-oxygen-epel-7-x86_64-devel/org/opendaylight/integration-packaging/opendaylight/8.0.0-0.1.20170928snap597.el7.noarch/opendaylight-8.0.0-0.1.20170928snap597.el7.noarch.rpm&lt;/a&gt;&lt;br/&gt;
$ sudo rpm -i --nodeps ./opendaylight-8.0.0-0.1.20170928snap597.el7.noarch.rpm&lt;br/&gt;
$ sudo systemctl start opendaylight&lt;br/&gt;
$ find /opt/opendaylight -name &quot;*.pid&quot;                                             &lt;br/&gt;
/opt/opendaylight/karaf.pid&lt;/p&gt;

&lt;p&gt;Not with these:&lt;/p&gt;

&lt;p&gt;Carbon:&lt;/p&gt;

&lt;p&gt;$ sudo dnf install -y &lt;a href=&quot;http://cbs.centos.org/repos/nfv7-opendaylight-60-release/x86_64/os/Packages/opendaylight-6.0.0-1.el7.noarch.rpm&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://cbs.centos.org/repos/nfv7-opendaylight-60-release/x86_64/os/Packages/opendaylight-6.0.0-1.el7.noarch.rpm&lt;/a&gt;&lt;br/&gt;
$ sudo systemctl start opendaylight&lt;br/&gt;
$ find /opt/opendaylight -name &quot;*.pid&quot;&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;nothing&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Carbon SR1:&lt;/p&gt;

&lt;p&gt;$ sudo dnf install -y &lt;a href=&quot;http://cbs.centos.org/repos/nfv7-opendaylight-61-release/x86_64/os/Packages/opendaylight-6.1.0-1.el7.noarch.rpm&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://cbs.centos.org/repos/nfv7-opendaylight-61-release/x86_64/os/Packages/opendaylight-6.1.0-1.el7.noarch.rpm&lt;/a&gt;&lt;br/&gt;
$ sudo systemctl start opendaylight&lt;br/&gt;
$ find /opt/opendaylight -name &quot;*.pid&quot;&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;nothing&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;&lt;a href=&quot;https://trello.com/c/ZZcaW4sw/613-use-karafs-pid-file-once-we-only-support-karaf-4-distros&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Imported from Trello&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
        <key id="28826">INTPAK-76</key>
            <summary>Use Karaf&apos;s PID file once we only support Karaf 4 distros</summary>
                <type id="10100" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</priority>
                        <status id="1" iconUrl="https://jira.opendaylight.org/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="blue-gray"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="dfarrell07">Daniel Farrell</assignee>
                                    <reporter username="dfarrell07">Daniel Farrell</reporter>
                        <labels>
                    </labels>
                <created>Sat, 18 Nov 2017 03:52:28 +0000</created>
                <updated>Fri, 29 Jun 2018 21:55:45 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="63829" author="dfarrell07" created="Fri, 29 Jun 2018 21:55:36 +0000"  >&lt;p&gt;I haven&apos;t looked at this in a long time but during a bug-scrub I noticed that we&apos;re now past the trigger that it becomes relevant - we only support Karaf 4 distros. Raising prio and assign to me to figure out what we need to do.&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|i0381z:</customfieldvalue>

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