<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:39:14 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-10906] checksums parameter not persistent after reboot</title>
                <link>https://jira.whamcloud.com/browse/LU-10906</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Attempting to run&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;mgs$ lctl set_param -P osc.s1lcl*.checksums=0
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;to disable checksums for their clients does not return any errors, and a&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;mgs$ lctl get_param osc.s1lcl*.checksums
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;shows that it is properly set to 0 at that time. However, after a reboot of a client node, this parameter gets reset to 1. This behavior does not appear for any of the other parameters that they are setting - just the checksums.  There is something preventing the &lt;tt&gt;checksums&lt;/tt&gt; parameter from being set permanently.&lt;/p&gt;</description>
                <environment></environment>
        <key id="51784">LU-10906</key>
            <summary>checksums parameter not persistent after reboot</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="1">Fixed</resolution>
                                        <assignee username="emoly.liu">Emoly Liu</assignee>
                                    <reporter username="adilger">Andreas Dilger</reporter>
                        <labels>
                    </labels>
                <created>Wed, 11 Apr 2018 22:20:01 +0000</created>
                <updated>Mon, 7 Jan 2019 19:19:07 +0000</updated>
                            <resolved>Sat, 6 Oct 2018 13:29:38 +0000</resolved>
                                    <version>Lustre 2.10.0</version>
                                    <fixVersion>Lustre 2.12.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                            <comments>
                            <comment id="225812" author="adilger" created="Wed, 11 Apr 2018 22:36:31 +0000"  >&lt;p&gt;It isn&apos;t clear why the &lt;tt&gt;lctl set_param -P&lt;/tt&gt; setting is not persistent for this parameter. It might be caused by ordering issues during client mount, since there is a separate &quot;&lt;tt&gt;-o checksum&lt;/tt&gt;&quot; and &quot;&lt;tt&gt;-o nochecksum&lt;/tt&gt;&quot; mount option available (which is enabled by default) that is also trying to enable the checksum during mount.&lt;/p&gt;

&lt;p&gt;Mounting the clients with &quot;-o nochecksum&quot; is verified to be working as expected (&lt;tt&gt;lctl get_param osc.*.checksums&lt;/tt&gt; returns 0 in this case, and returns 1 without this parameter).&lt;/p&gt;

&lt;p&gt;Some notes:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;this is likely related to the handling of &lt;tt&gt;LL_SBI_CHECKSUM&lt;/tt&gt; during mount clobbering the &lt;tt&gt;osc.*.checksums=0&lt;/tt&gt; parameter stored in the configuration.  It looks like the OSC &lt;tt&gt;cl_checksum&lt;/tt&gt; is already enabled by default in &lt;tt&gt;client_obd_setup()&lt;/tt&gt; so there is little benefit to set it again from &lt;tt&gt;client_common_fill_super()&lt;/tt&gt; at mount time, so fixing this issue may be as simple as making the following lines conditional on the &lt;tt&gt;checksum&lt;/tt&gt; or &lt;tt&gt;nochecksum&lt;/tt&gt; options actually being passed, rather than always overriding the OSC settings:
&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;        checksum = sbi-&amp;gt;ll_flags &amp;amp; LL_SBI_CHECKSUM;
        err = obd_set_info_async(NULL, sbi-&amp;gt;ll_dt_exp, sizeof(KEY_CHECKSUM),
                                 KEY_CHECKSUM, sizeof(checksum), &amp;amp;checksum,
                                 NULL);
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (err) {
                CERROR(&lt;span class=&quot;code-quote&quot;&gt;&quot;%s: Set checksum failed: rc = %d\n&quot;&lt;/span&gt;,
                       sbi-&amp;gt;ll_dt_exp-&amp;gt;exp_obd-&amp;gt;obd_name, err);
                GOTO(out_root, err);
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
	&lt;li&gt;the &lt;tt&gt;llite.&amp;#42;.checksum_pages&lt;/tt&gt; tunable is misnamed.  This was (in 1.8) a tunable to enable per-page checksums at the llite layer, independent of the BRW RPC data checksums.  It would be better to rename this &lt;tt&gt;llite.&amp;#42;.checksums&lt;/tt&gt; to match &lt;tt&gt;osc.&amp;#42;.checksums&lt;/tt&gt;, and leave &lt;tt&gt;checksum_pages&lt;/tt&gt; for its original purpose of enabling per-page checksums (which was not implemented in the CLIO development).&lt;/li&gt;
&lt;/ul&gt;

</comment>
                            <comment id="226370" author="emoly.liu" created="Thu, 19 Apr 2018 14:22:15 +0000"  >&lt;p&gt;As Andreas said, &#160;after a remount, this parameter is really set to 0 by &quot;process_param2_config()) lctl: invoked upcall /usr/sbin/lctl set_param osc.lustre*.checksums=0&quot;, but it is changed later by&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;client_common_fill_super()
  -&amp;gt;obd_set_info_async()
    -&amp;gt;lov_set_info_async()
      -&amp;gt;osc_set_info_async()

int osc_set_info_async()
{
...
        if (KEY_IS(KEY_CHECKSUM)) {
                if (vallen != sizeof(int))
                        RETURN(-EINVAL);
                exp-&amp;gt;exp_obd-&amp;gt;u.cli.cl_checksum = (*(int *)val) ? 1 : 0;
                RETURN(0);
        }
...
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="226447" author="emoly.liu" created="Fri, 20 Apr 2018 03:57:47 +0000"  >&lt;p&gt;There are three ways to set checksum support in Lustre:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;configure: --enable-checksum or --disable-checksum&lt;/li&gt;
	&lt;li&gt;mount option: -o checksum/nochecksum&lt;/li&gt;
	&lt;li&gt;lctl set_param: osc.*.checksums&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;My question is if &quot;--disable-checksum&quot; is specified when configuring, can we enable checksum again with &quot;-o checksum&quot; or osc.*.checksums=1? I think no.&lt;/p&gt;</comment>
                            <comment id="226455" author="adilger" created="Fri, 20 Apr 2018 05:58:25 +0000"  >&lt;p&gt;It looks like &quot;&lt;tt&gt;configure &amp;#45;&amp;#45;enable&amp;#45;checksum&lt;/tt&gt;&quot; (&lt;tt&gt;ENABLE&amp;#95;CHECKSUM&lt;/tt&gt;) only affects the default mount option in &lt;tt&gt;client&amp;#95;obd&amp;#95;setup()&lt;/tt&gt; and &lt;tt&gt;ll&amp;#95;sbi&amp;#95;init()&lt;/tt&gt;, but doesn&apos;t actually disable any of the code.  That means it should be possible to enable checksums even if &lt;tt&gt;&amp;#45;&amp;#45;disable&amp;#45;checksum&lt;/tt&gt; is used.  There does look like one minor bug in &lt;tt&gt;client&amp;#95;obd&amp;#95;setup()&lt;/tt&gt; - the initialization of &lt;tt&gt;cl&amp;#95;supp&amp;#95;cksum&amp;#95;types&lt;/tt&gt; is not done if &lt;tt&gt;ENABLE&amp;#95;CHECKSUM&lt;/tt&gt; is unset, but it should probably always do that.&lt;/p&gt;

&lt;p&gt;I think the call to &lt;tt&gt;obd&amp;#95;set&amp;#95;info&amp;#95;async()&lt;/tt&gt; could be removed if the current setting matches the &lt;tt&gt;ENABLE&amp;#95;CHECKSUM&lt;/tt&gt; definition and there isn&apos;t a &lt;tt&gt;checksum&lt;/tt&gt; or &lt;tt&gt;nochecksum&lt;/tt&gt; mount option.  Maybe something like the following, to only change the OSC checksum values if it has been changed from the default value:&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;        checksum = sbi-&amp;gt;ll_flags &amp;amp; LL_SBI_CHECKSUM;
#ifdef ENABLE_CHECKSUM           
        default_checksum = LL_SBI_CHECKSUM;
#endif
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (checksum ^ default_checksum) {
                err = obd_set_info_async(NULL, sbi-&amp;gt;ll_dt_exp, 
                                         sizeof(KEY_CHECKSUM), KEY_CHECKSUM, 
                                         sizeof(checksum), &amp;amp;checksum, NULL);
                &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (err) {
                        CERROR(&lt;span class=&quot;code-quote&quot;&gt;&quot;%s: Set checksum failed: rc = %d\n&quot;&lt;/span&gt;,
                               sbi-&amp;gt;ll_dt_exp-&amp;gt;exp_obd-&amp;gt;obd_name, err);
                        GOTO(out_root, err);
                }
        }       
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
</comment>
                            <comment id="226457" author="emoly.liu" created="Fri, 20 Apr 2018 06:27:45 +0000"  >&lt;p&gt;Got, thanks!&lt;/p&gt;</comment>
                            <comment id="226469" author="gerrit" created="Fri, 20 Apr 2018 13:43:41 +0000"  >&lt;p&gt;Emoly Liu (emoly.liu@intel.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/32095&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/32095&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10906&quot; title=&quot;checksums parameter not persistent after reboot&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10906&quot;&gt;&lt;del&gt;LU-10906&lt;/del&gt;&lt;/a&gt; checksum: enable/disable checksum correctly&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: afe8d04a2aee007a9df086b7a1d70096d75d3330&lt;/p&gt;</comment>
                            <comment id="226599" author="gerrit" created="Tue, 24 Apr 2018 05:18:43 +0000"  >&lt;p&gt;Emoly Liu (emoly.liu@intel.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/32131&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/32131&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10906&quot; title=&quot;checksums parameter not persistent after reboot&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10906&quot;&gt;&lt;del&gt;LU-10906&lt;/del&gt;&lt;/a&gt; llite: rename llite checksum_pages to checksums&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 0949d2acc3887d4673a617f46b01b6771c8a8695&lt;/p&gt;</comment>
                            <comment id="228251" author="gerrit" created="Mon, 21 May 2018 16:52:37 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/32095/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/32095/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10906&quot; title=&quot;checksums parameter not persistent after reboot&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10906&quot;&gt;&lt;del&gt;LU-10906&lt;/del&gt;&lt;/a&gt; checksum: enable/disable checksum correctly&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: e9b13cd1daf959b40e9ff5c810368c67e9491e06&lt;/p&gt;</comment>
                            <comment id="233898" author="gerrit" created="Sat, 22 Sep 2018 21:14:10 +0000"  >&lt;p&gt;James Simmons (uja.ornl@yahoo.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/33222&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/33222&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10906&quot; title=&quot;checksums parameter not persistent after reboot&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10906&quot;&gt;&lt;del&gt;LU-10906&lt;/del&gt;&lt;/a&gt; llite: create checksums to replace checksum_pages&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 34df45679fd854b903467a259102b7104dc2bd55&lt;/p&gt;</comment>
                            <comment id="234481" author="gerrit" created="Fri, 5 Oct 2018 22:27:52 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/33222/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/33222/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10906&quot; title=&quot;checksums parameter not persistent after reboot&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10906&quot;&gt;&lt;del&gt;LU-10906&lt;/del&gt;&lt;/a&gt; llite: create checksums to replace checksum_pages&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 123ee3cf96dd152c55f7e46042eba85cd23310a1&lt;/p&gt;</comment>
                            <comment id="234530" author="pjones" created="Sat, 6 Oct 2018 13:29:38 +0000"  >&lt;p&gt;Landed for 2.12&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="36381">LU-8066</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="52202">LU-11011</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="52401">LU-11058</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|hzzvpj:</customfieldvalue>

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