<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:55: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>Whamcloud Community JIRA</title>
    <link>https://jira.whamcloud.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.4.14</version>
        <build-number>940014</build-number>
        <build-date>05-12-2023</build-date>
    </build-info>


<item>
            <title>[LU-5851] Handle LU-4606 packaging changes for Lustre Server DKMS RPM</title>
                <link>https://jira.whamcloud.com/browse/LU-5851</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-4606&quot; title=&quot;Lustre hard codes libzfs.so.1 in lustre/utils/mount_utils_zfs.c&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-4606&quot;&gt;&lt;del&gt;LU-4606&lt;/del&gt;&lt;/a&gt; has introduced some packaging changes and particularly one that causes a lib/dso to be shipped inside each of the lustre-osd RPMs.&lt;br/&gt;
This breaks current packaging of Lustre Server DKMS RPM which presently builds and provides the osd module but also conflicts with the lustre-osd package!&lt;br/&gt;
This leads to the Lustre Server DKMS RPM to be unusable due to the necessary lib/dso for the mount command not to be installed.&lt;/p&gt;</description>
                <environment></environment>
        <key id="27423">LU-5851</key>
            <summary>Handle LU-4606 packaging changes for Lustre Server DKMS RPM</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="2" iconUrl="https://jira.whamcloud.com/images/icons/priorities/critical.svg">Critical</priority>
                        <status id="5" iconUrl="https://jira.whamcloud.com/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="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="bfaccini">Bruno Faccini</assignee>
                                    <reporter username="bfaccini">Bruno Faccini</reporter>
                        <labels>
                            <label>HB</label>
                    </labels>
                <created>Mon, 3 Nov 2014 17:36:52 +0000</created>
                <updated>Thu, 23 Nov 2017 18:51:44 +0000</updated>
                            <resolved>Fri, 9 Jan 2015 13:44:54 +0000</resolved>
                                                    <fixVersion>Lustre 2.7.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                            <comments>
                            <comment id="98197" author="bfaccini" created="Mon, 3 Nov 2014 17:55:45 +0000"  >&lt;p&gt;Patch to implement 1st way (build/install DSO in DKMS RPM itself) to fix hole from DKMS side is at &lt;a href=&quot;http://review.whamcloud.com/12538&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/12538&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="98270" author="bfaccini" created="Tue, 4 Nov 2014 08:07:18 +0000"  >&lt;p&gt;Patch to implement 2nd possible way to fix (ship DSO in lustre/utils generic RPM instead of lustre-osd) is at &lt;a href=&quot;http://review.whamcloud.com/12550&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/12550&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="98386" author="morrone" created="Tue, 4 Nov 2014 23:45:13 +0000"  >&lt;p&gt;I don&apos;t think either of these approaches are particularly desirable.  In the first solution, you are adding user-space libraries to packages that are explicitly for Kernel Modules (The &quot;KM&quot; in &quot;DKMS&quot;).  In the second solution, you are probably introducing dependencies on both ldiskfs and zfs to the higher level rpm packages (without necessarily adding the required dependencies to the spec file?) even though our explicit intent was to keep them out of the higher level packages.  We wanted to be able to let the sysadmin select one or the other (or both) of the backend filesystems as they choose.&lt;/p&gt;

&lt;p&gt;I think it is necessary to take a step back and document the overall build plan that you have in mind.  Understanding the use cases and requirements will help us to make more educated recommendations for how to craft a reasonable solution.&lt;/p&gt;</comment>
                            <comment id="98451" author="bfaccini" created="Wed, 5 Nov 2014 19:49:25 +0000"  >&lt;p&gt;Humm let say that these 2 first fix attempts/ideas have been a way to start the discussion ... And you should have noticed that I pushed them as fortestonly for instance!&lt;/p&gt;

&lt;p&gt;The need is to have the Lustre Server DKMS RPM (mainly coming from work/patches of B.Behlendorf/LLNL) to be still usable, even after an osd-specific lib/dso containing mount hooks has been created and shipped into each of the lustre-osd RPMs (in &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-4606&quot; title=&quot;Lustre hard codes libzfs.so.1 in lustre/utils/mount_utils_zfs.c&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-4606&quot;&gt;&lt;del&gt;LU-4606&lt;/del&gt;&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;May be you will prefer the 3rd one at &lt;a href=&quot;http://review.whamcloud.com/12589&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/12589&lt;/a&gt; ?? It attempts to split the lustre-osd RPMs in 2 RPMs, lustre-osd-&lt;span class=&quot;error&quot;&gt;&amp;#91;zfs,ldiskfs&amp;#93;&lt;/span&gt; as originally only shipping the Kernel module and lustre-mount-osd-&lt;span class=&quot;error&quot;&gt;&amp;#91;zfs,ldiskfs&amp;#93;&lt;/span&gt; now shipping the osd-specific lib/dso.&lt;/p&gt;</comment>
                            <comment id="98472" author="morrone" created="Wed, 5 Nov 2014 21:15:32 +0000"  >&lt;blockquote&gt;&lt;p&gt;Humm let say that these 2 first fix attempts/ideas have been a way to start the discussion ... And you should have noticed that I pushed them as fortestonly for instance!&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Yes, I saw the fortestonly.  The patches have indeed served amiably as a discussion starter.  Here I am conversing with you now.  Reviewing the patch was part of engaging in a discussion.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;The need is to have the Lustre Server DKMS RPM (mainly coming from work/patches of B.Behlendorf/LLNL) to be still usable&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I understand.  But when I talk about &quot;taking a step back&quot;, I am suggesting that we take a broader look at how the build system works, and the other requirements that need to be maintained while pursuing this goal.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;May be you will prefer the 3rd one at &quot;http://review.whamcloud.com/12589&quot;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;No, I&apos;m not really in favor of that either.  It is not at all clear to me why you would want to build the kernel modules, but not the utilities needed to use the kernel modules.  How would you intend to use that change?  Be specific.  What are the build commands you would use to put together a complete release?&lt;/p&gt;</comment>
                            <comment id="98912" author="morrone" created="Tue, 11 Nov 2014 19:14:48 +0000"  >&lt;p&gt;Actually the 3rd one is probably the least objectionable.  All this bizarre &quot;post-base&quot; junk is making the spec file harder and harder to read.  I would really like to see all of that backed out at some point.&lt;/p&gt;

&lt;p&gt;I still want to see you write down the use cases.  What are the build command that you intend to use to make a working set of packages?&lt;/p&gt;</comment>
                            <comment id="99531" author="bfaccini" created="Wed, 19 Nov 2014 00:28:19 +0000"  >&lt;p&gt;Before patch for &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-4606&quot; title=&quot;Lustre hard codes libzfs.so.1 in lustre/utils/mount_utils_zfs.c&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-4606&quot;&gt;&lt;del&gt;LU-4606&lt;/del&gt;&lt;/a&gt; landed, to be able to have a working Lustre Server (presently zfs-only) installation based on &lt;span class=&quot;error&quot;&gt;&amp;#91;lustre, spl, zfs&amp;#93;&lt;/span&gt;-dkms RPMs use, only a lustre (for the same Lustre version) RPM was required to be installed.&lt;/p&gt;

&lt;p&gt;Now that backend/osd-specific hooks have been extracted into different DSOs and are shipped separately as part of their corresponding lustre-osd RPM we need to find a way to install the required DSO but not the lustre-osd module (that is built by lustre-dkms RPM and thus Provides it but also Conflicts with it to prevent dual installs).&lt;/p&gt;

&lt;p&gt;So with my 1st patch, where the zfs osd-hooks DSO is built+installed by lustre-dkms, only lustre RPM still needs to be also installed.&lt;/p&gt;

&lt;p&gt;With my 2nd patch, where both the ldiskfs and zfs DSOs are shipped as part of lustre RPM, again only lustre RPM still needs to be also installed. But then, their dynamic load by &lt;span class=&quot;error&quot;&gt;&amp;#91;mkfs,mount,tunefs&amp;#93;&lt;/span&gt;.lustre tools must not be so strict than presently and allow for failures if some of their load/run-time dependencies are missing, like if spl/zfs modules/libs are not installed, ...&lt;/p&gt;

&lt;p&gt;With my 3rd patch, where each osd-hooks DSO is now shipped into a new+separate RPM than the respective/corresponding lustre-osd, they (at least one) will need to be installed in addition to the lustre RPM.&lt;/p&gt;

&lt;p&gt;BTW, for both the 2nd/3rd cases/patches, I will also need to re-evaluate and likely have to add/change the necessary Provides/Requires/Conflicts rules in lustre&lt;span class=&quot;error&quot;&gt;&amp;#91;-dkms&amp;#93;&lt;/span&gt;.spec files for the concerned lustre-dkms/lustre-modules/lustre-osd/lustre&lt;span class=&quot;error&quot;&gt;&amp;#91;/lustre-osd-mount&amp;#93;&lt;/span&gt; packages.&lt;/p&gt;

&lt;p&gt;It is a bit late for me, so I hope to have been flaw-less, enough clear and also to have answered your questions.&lt;/p&gt;</comment>
                            <comment id="100622" author="morrone" created="Thu, 4 Dec 2014 01:37:38 +0000"  >&lt;p&gt;Option 2, change &lt;a href=&quot;http://review.whamcloud.com/12550&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;12550&lt;/a&gt;, seems like the best stop-gap measure as of version Patch Set 6.  I marked it -1 but my quibbles are pretty minor and easily addressed.&lt;/p&gt;

&lt;p&gt;Longer term, we really need to address some a bigger issue with this code, but it doesn&apos;t really need to be addressed in this ticket:&lt;/p&gt;

&lt;p&gt;We shouldn&apos;t call osd_init() at all for client mounts.  Better yet, maybe we should split the server mounts out into a separate mount command, e.g. mount.lustre_server.  Or maybe even one for each osd type: mount.losd_zfs, mount.losd_ldiskfs.&lt;/p&gt;</comment>
                            <comment id="101827" author="utopiabound" created="Wed, 17 Dec 2014 17:21:22 +0000"  >&lt;p&gt;Option 2 / 12550 causes a zfs dependency in the base lustre rpm, and I would think that that would cause large headaches for ldiskfs only sites.&lt;br/&gt;
Option 3 (seperate user-space rpms with the dso&apos;s) seems like the right answer&lt;/p&gt;</comment>
                            <comment id="101936" author="bfaccini" created="Thu, 18 Dec 2014 11:56:09 +0000"  >&lt;p&gt;Nathaniel, thanks I think you are right unfortunately and that my testing environment for Option 2 / 12550 was incomplete+wrong and was hiding the libzfs dependency of mount_osd_zfs.so lib. BTW, auto-tests did not trigger it too which may mean that no pure ldiskfs Server install is made during non zfs-reviews?&lt;br/&gt;
So since, I easily presume it will not be accepted to revert some of your changes from &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-4606&quot; title=&quot;Lustre hard codes libzfs.so.1 in lustre/utils/mount_utils_zfs.c&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-4606&quot;&gt;&lt;del&gt;LU-4606&lt;/del&gt;&lt;/a&gt; and switch-back to the method where libzfs is dlopen()&apos;ed in mount_utils_zfs.c instead of being explicitely linked now nor to use, since Option 1 / 12538 has already been abandonned, you are again right there is only Option 3 / 12589 left, unless there is some other and better idea to fix?&lt;/p&gt;</comment>
                            <comment id="102376" author="gerrit" created="Mon, 29 Dec 2014 20:03:00 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;http://review.whamcloud.com/12589/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/12589/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5851&quot; title=&quot;Handle LU-4606 packaging changes for Lustre Server DKMS RPM&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5851&quot;&gt;&lt;del&gt;LU-5851&lt;/del&gt;&lt;/a&gt; build: split lustre-osd RPMs&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 2aa189790ca95f0f4f1d32fadea3269080091b02&lt;/p&gt;</comment>
                            <comment id="102469" author="bfaccini" created="Fri, 2 Jan 2015 12:07:11 +0000"  >&lt;p&gt;Option #1 (&lt;a href=&quot;http://review.whamcloud.com/12538&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/12538&lt;/a&gt;) and #2 (&lt;a href=&quot;http://review.whamcloud.com/12550&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/12550&lt;/a&gt;) patches have been abandoned.&lt;/p&gt;</comment>
                            <comment id="102994" author="jlevi" created="Fri, 9 Jan 2015 13:44:54 +0000"  >&lt;p&gt;Patches have landed to Master. Please reopen ticket if more work is still needed.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="23082">LU-4606</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="27859">LU-6013</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                            <customfield id="customfield_10890" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzx027:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>16382</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10060" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Severity</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10022"><![CDATA[3]]></customfieldvalue>

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