<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:16:23 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-1411] panic in lmd_parse() on kernels &lt; 2.6.18</title>
                <link>https://jira.whamcloud.com/browse/LU-1411</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;We&apos;ve begun testing the Lustre 2.1 client on our BlueGene P development system.&lt;/p&gt;

&lt;p&gt;It immediately panicked on the first mount attempt.  This turns out to be related to a patch landed for &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-163&quot; title=&quot;compilebench fail on NFS v4 client&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-163&quot;&gt;&lt;del&gt;LU-163&lt;/del&gt;&lt;/a&gt;. lustre_get_sb() conditionally calls get_sb_nodev() with a struct lustre_mount_data2 * for kernels 2.6.18 and newer, and a void * data pointer for older kernels:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;2196 #&lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (LINUX_VERSION_CODE &amp;lt; KERNEL_VERSION(2,6,18))
2197 struct super_block * lustre_get_sb(struct file_system_type *fs_type, &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; flags,
2198                                    &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt; *devname, void * data)
2199 {
2200         &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; get_sb_nodev(fs_type, flags, data, lustre_fill_super);
2201 }
2202 #&lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt;
2203 &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; lustre_get_sb(struct file_system_type *fs_type, &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; flags,
2204                   &lt;span class=&quot;code-keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt; *devname, void * data, struct vfsmount *mnt)
2205 {
2206         struct lustre_mount_data2 lmd2 = {data, mnt};
2207 
2208         &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; get_sb_nodev(fs_type, flags, &amp;amp;lmd2, lustre_fill_super, mnt);
2209 }
2210 #endif
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;However, lustre_fill_super() unconditionally casts its void *data argument to a struct lustre_mount_data2 *, which causes a crash when we deference into it on older kernels.&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;1945 /** Parse mount line options
1946  * e.g. mount -v -t lustre -o abort_recov uml1:uml2:/lustre-client /mnt/lustre
1947  * dev is passed as device=uml1:/lustre by mount.lustre
1948  */
1949 &lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; lmd_parse(&lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt; *options, struct lustre_mount_data *lmd)
1950 {
1951         &lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt; *s1, *s2, *devname = NULL;
1952         struct lustre_mount_data *raw = (struct lustre_mount_data *)options;
...
1963         &lt;span class=&quot;code-comment&quot;&gt;/* Options should be a string - &lt;span class=&quot;code-keyword&quot;&gt;try&lt;/span&gt; to detect old lmd data */&lt;/span&gt;
1964         &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; ((raw-&amp;gt;lmd_magic &amp;amp; 0xffffff00) == (LMD_MAGIC &amp;amp; 0xffffff00)) { &amp;lt;--- crashes here

...

2102 &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; lustre_fill_super(struct super_block *sb, void *data, &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; silent)
2103 {
2104         struct lustre_mount_data *lmd;
2105         struct lustre_mount_data2 *lmd2 = data;
...
2122 
2123         &lt;span class=&quot;code-comment&quot;&gt;/* Figure out the lmd from the mount options */&lt;/span&gt;
2124         &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (lmd_parse((&lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt; *)(lmd2-&amp;gt;lmd2_data), lmd)) {
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment>IBM BlueGene P&lt;br/&gt;
Linux rzdawndevio33 2.6.16.60-304.3llnl #1 SMP Wed May 9 13:15:00 PDT 2012 ppc ppc ppc GNU/Linux&lt;br/&gt;
</environment>
        <key id="14448">LU-1411</key>
            <summary>panic in lmd_parse() on kernels &lt; 2.6.18</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</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="3">Duplicate</resolution>
                                        <assignee username="bobijam">Zhenyu Xu</assignee>
                                    <reporter username="nedbass">Ned Bass</reporter>
                        <labels>
                            <label>bgp</label>
                            <label>client</label>
                            <label>ppc</label>
                    </labels>
                <created>Tue, 15 May 2012 19:06:18 +0000</created>
                <updated>Fri, 5 Dec 2014 18:52:08 +0000</updated>
                            <resolved>Wed, 17 Oct 2012 15:45:38 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                            <comments>
                            <comment id="38878" author="nedbass" created="Tue, 15 May 2012 19:43:38 +0000"  >&lt;p&gt;Here is a proof-of-concept patch that at least lets me build and mount on 2.6.16 and 2.6.32 kernels.  I&apos;m not sure if passing a null vfsmount pointer to ll_fill_super() is the right thing to do on older kernels.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://review.whamcloud.com/2795&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/2795&lt;/a&gt;&lt;/p&gt;
</comment>
                            <comment id="38906" author="pjones" created="Wed, 16 May 2012 09:40:53 +0000"  >&lt;p&gt;Bobijam&lt;/p&gt;

&lt;p&gt;Could you please comment on the validity of this suggested approach?&lt;/p&gt;

&lt;p&gt;Ned&lt;/p&gt;

&lt;p&gt;Wouldn&apos;t it be safer to continue to run 1.8.x clients that support this older kernel version?&lt;/p&gt;

&lt;p&gt;Peter&lt;/p&gt;</comment>
                            <comment id="38925" author="nedbass" created="Wed, 16 May 2012 12:39:56 +0000"  >&lt;p&gt;Hi Peter,&lt;/p&gt;

&lt;p&gt;Yes, we originally planned to run Lustre 1.8 clients on our BGP systems until they retire.  But then our BGP users ran into some bugs, i.e. &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-1378&quot; title=&quot;ASSERTION(range_is_sane(&amp;amp;seq-&amp;gt;lcs_space)) failed&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-1378&quot;&gt;&lt;del&gt;LU-1378&lt;/del&gt;&lt;/a&gt;.  We have a strong incentive to discontinue maintenance of our 1.8 branch, so we have started some exploratory testing of the 2.1 client on BGP which runs Linux 2.6.16 on the IO nodes.&lt;/p&gt;</comment>
                            <comment id="38961" author="bobijam" created="Wed, 16 May 2012 23:10:21 +0000"  >&lt;p&gt;master branch port at &lt;a href=&quot;http://review.whamcloud.com/2820&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/2820&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="39864" author="pjones" created="Sat, 2 Jun 2012 13:57:49 +0000"  >&lt;p&gt;Ned&lt;/p&gt;

&lt;p&gt;Is my understanding correct that you have abandoned this approach and are now using 18x clients for your systems running older kernels?&lt;/p&gt;

&lt;p&gt;Peter&lt;/p&gt;</comment>
                            <comment id="39956" author="morrone" created="Mon, 4 Jun 2012 17:36:56 +0000"  >&lt;p&gt;The plan to put 2.1 on BG/P is only delayed, not abandoned.&lt;/p&gt;

&lt;p&gt;We need to get 2.1 working reasonably well because I do not have the resources to test and bebug 1.8 compatibility with every new 2.X release.  The BG/P systems will be around for at &lt;em&gt;least&lt;/em&gt; two more years.  And the 1.8 to 2.1 compatibility is not good enough to last that long.  We&apos;ll continually have new breakage as servers go beyond 2.1.&lt;/p&gt;</comment>
                            <comment id="46683" author="simmonsja" created="Wed, 17 Oct 2012 15:19:26 +0000"  >&lt;p&gt;This bug is a duplicate of &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-1646&quot; title=&quot;mounting lustre oops on older kernels&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-1646&quot;&gt;&lt;del&gt;LU-1646&lt;/del&gt;&lt;/a&gt;. A patch already exist for this for &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-1646&quot; title=&quot;mounting lustre oops on older kernels&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-1646&quot;&gt;&lt;del&gt;LU-1646&lt;/del&gt;&lt;/a&gt; which was developed under &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-812&quot; title=&quot;Support for Linux 3.0 kernels&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-812&quot;&gt;&lt;del&gt;LU-812&lt;/del&gt;&lt;/a&gt;. The patch is&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://review.whamcloud.com/#change,3661&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,3661&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also NFS with Lustre is broken in older kernels which is addressed with &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-1718&quot; title=&quot;fix Lustre NFS re-export for 3.0+ kernels&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-1718&quot;&gt;&lt;del&gt;LU-1718&lt;/del&gt;&lt;/a&gt;. The patch is &lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://review.whamcloud.com/#change,3840&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,3840&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="46684" author="pjones" created="Wed, 17 Oct 2012 15:45:38 +0000"  >&lt;p&gt;Thanks for the tip James - it&apos;s always good to get older tickets cleaned up where possible!&lt;/p&gt;</comment>
                            <comment id="47680" author="simmonsja" created="Mon, 12 Nov 2012 07:37:56 +0000"  >&lt;p&gt;The patch from &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-812&quot; title=&quot;Support for Linux 3.0 kernels&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-812&quot;&gt;&lt;del&gt;LU-812&lt;/del&gt;&lt;/a&gt; has been landed which fixes this bug. This ticket can be closed now.&lt;/p&gt;</comment>
                    </comments>
                    <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|hzvgy7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6395</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>