<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:53:52 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-12582] lustre 2.10.3 QoS  nrs_tbf_rule_match LBUG</title>
                <link>https://jira.whamcloud.com/browse/LU-12582</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Hi all. The kernel assert &apos;LASSERT((tmp_rule-&amp;gt;tr_flags &amp;amp; NTRS_STOPPING) == 0)&apos; is triggered in&#160; function&#160;&#160;static struct nrs_tbf_rule *nrs_tbf_rule_match(struct nrs_tbf_head *head, struct nrs_tbf_client *cli) of&#160;lustre/ptlrpc/nrs_tbf.c.&lt;br/&gt;
&#160;&lt;br/&gt;
it seems that the tmp_rule-&amp;gt;tr_flags of some rule is set to&#160;NTRS_STOPPING or the variable tmp_rule gets a bad value, but I have never run lctl command like &apos;lctl set_param mds.MDS.mdt.nrs_tbf_rule=&quot;stop rule1&quot; &apos;.&lt;br/&gt;
&#160;&lt;br/&gt;
Here is the call trace:&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;
[1139547.817517] LustreError: 20086:0:(nrs_tbf.c:235:nrs_tbf_rule_match()) ASSERTION( (tmp_rule-&amp;gt;tr_flags &amp;amp; 0x0000001) == 0 ) failed:
[1139547.817540] LustreError: 20086:0:(nrs_tbf.c:235:nrs_tbf_rule_match()) LBUG
[1139547.817544] Pid: 20086, comm: mdt00_068
[1139547.817547]
Call Trace:
[1139547.817586]&#160; [&amp;lt;ffffffffc09d57ae&amp;gt;] libcfs_call_trace+0x4e/0x60 [libcfs]
[1139547.817602]&#160; [&amp;lt;ffffffffc09d583c&amp;gt;] lbug_with_loc+0x4c/0xb0 [libcfs]
[1139547.817700]&#160; [&amp;lt;ffffffffc0f804c5&amp;gt;] nrs_tbf_rule_match+0xc5/0xd0 [ptlrpc]
[1139547.817780]&#160; [&amp;lt;ffffffffc0f834ad&amp;gt;] nrs_tbf_res_get+0xad/0x4c0 [ptlrpc]
[1139547.817852]&#160; [&amp;lt;ffffffffc0f7621c&amp;gt;] nrs_resource_get+0x7c/0x100 [ptlrpc]
[1139547.817922]&#160; [&amp;lt;ffffffffc0f76790&amp;gt;] nrs_resource_get_safe+0x80/0xf0 [ptlrpc]
[1139547.817993]&#160; [&amp;lt;ffffffffc0f7a263&amp;gt;] ptlrpc_nrs_req_initialize+0x83/0x100 [ptlrpc]
[1139547.818059]&#160; [&amp;lt;ffffffffc0f48f31&amp;gt;] ptlrpc_main+0x1771/0x1e40 [ptlrpc]
[1139547.818125]&#160; [&amp;lt;ffffffffc0f477c0&amp;gt;] ? ptlrpc_main+0x0/0x1e40 [ptlrpc]
[1139547.818134]&#160; [&amp;lt;ffffffff810b252f&amp;gt;] kthread+0xcf/0xe0
[1139547.818141]&#160; [&amp;lt;ffffffff810b2460&amp;gt;] ? kthread+0x0/0xe0
[1139547.818149]&#160; [&amp;lt;ffffffff816b8798&amp;gt;] ret_from_fork+0x58/0x90
[1139547.818155]&#160; [&amp;lt;ffffffff810b2460&amp;gt;] ? kthread+0x0/0xe0
[1139547.818159]
[1139547.818162] Kernel panic - not syncing: LBUG
[1139547.818212] CPU: 16 PID: 20086 Comm: mdt00_068 Tainted: G &#160; &#160; &#160; &#160; &#160; OEL ------------ &#160; 3.10.0-693.11.6.el7_lustre.x86_64 #1
[1139547.818355] Call Trace:
[1139547.818385]&#160; [&amp;lt;ffffffff816a5e7d&amp;gt;] dump_stack+0x19/0x1b
[1139547.818433]&#160; [&amp;lt;ffffffff8169fd64&amp;gt;] panic+0xe8/0x20d
[1139547.818492]&#160; [&amp;lt;ffffffffc09d5854&amp;gt;] lbug_with_loc+0x64/0xb0 [libcfs]
[1139547.818611]&#160; [&amp;lt;ffffffffc0f804c5&amp;gt;] nrs_tbf_rule_match+0xc5/0xd0 [ptlrpc]
[1139547.818732]&#160; [&amp;lt;ffffffffc0f834ad&amp;gt;] nrs_tbf_res_get+0xad/0x4c0 [ptlrpc]
[1139547.818848]&#160; [&amp;lt;ffffffffc0f7621c&amp;gt;] nrs_resource_get+0x7c/0x100 [ptlrpc]
[1139547.818965]&#160; [&amp;lt;ffffffffc0f76790&amp;gt;] nrs_resource_get_safe+0x80/0xf0 [ptlrpc]
[1139547.819084]&#160; [&amp;lt;ffffffffc0f7a263&amp;gt;] ptlrpc_nrs_req_initialize+0x83/0x100 [ptlrpc]
[1139547.819203]&#160; [&amp;lt;ffffffffc0f48f31&amp;gt;] ptlrpc_main+0x1771/0x1e40 [ptlrpc]
[1139547.819316]&#160; [&amp;lt;ffffffffc0f477c0&amp;gt;] ? ptlrpc_register_service+0xe30/0xe30 [ptlrpc]
[1139547.819376]&#160; [&amp;lt;ffffffff810b252f&amp;gt;] kthread+0xcf/0xe0
[1139547.819419]&#160; [&amp;lt;ffffffff810b2460&amp;gt;] ? insert_kthread_work+0x40/0x40
[1139547.819470]&#160; [&amp;lt;ffffffff816b8798&amp;gt;] ret_from_fork+0x58/0x90
[1139547.819516]&#160; [&amp;lt;ffffffff810b2460&amp;gt;] ? insert_kthread_work+0x40/0x40
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;</description>
                <environment>Lustre 2.10.3, CentOS 7.4, OS 3.10.0.693, OFED 4.2</environment>
        <key id="56478">LU-12582</key>
            <summary>lustre 2.10.3 QoS  nrs_tbf_rule_match LBUG</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="1" iconUrl="https://jira.whamcloud.com/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="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="wc-triage">WC Triage</assignee>
                                    <reporter username="anhua">anhua</reporter>
                        <labels>
                    </labels>
                <created>Wed, 24 Jul 2019 08:17:44 +0000</created>
                <updated>Wed, 24 Jul 2019 08:36:20 +0000</updated>
                                            <version>Lustre 2.10.3</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                            <comments>
                            <comment id="251922" author="anhua" created="Wed, 24 Jul 2019 08:32:49 +0000"  >&lt;p&gt;Here is the kernel vm snapshotted by kdump when the LASSERT is triggered.&lt;br/&gt;
 &#160;&lt;br/&gt;
 &lt;b&gt;nrs_tbf_head *head:&lt;/b&gt;&lt;br/&gt;
 ---------------------&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;
crash&amp;gt; struct nrs_tbf_head ffff8852e0748b00
struct nrs_tbf_head {
&#160; th_res = {
&#160; &#160; res_parent = 0x0,
&#160; &#160; res_policy = 0xffff885eb9f08100
&#160; },
&#160; th_list = {
&#160; &#160; next = 0xffff885219687bd8,
&#160; &#160; prev = 0xffff884a160c58d8
&#160; },
&#160; th_rule_lock = {
&#160; &#160; {
&#160; &#160; &#160; rlock = {
&#160; &#160; &#160; &#160; raw_lock = {
&#160; &#160; &#160; &#160; &#160; val = {
&#160; &#160; &#160; &#160; &#160; &#160; counter = 1
&#160; &#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; }
&#160; &#160; &#160; }
&#160; &#160; }
&#160; },
&#160; th_rule_sequence = {
&#160; &#160; counter = 607
&#160; },
&#160; th_rule = 0xffff884a160c58c0,
&#160; th_timer = {
&#160; &#160; node = {
&#160; &#160; &#160; node = {
&#160; &#160; &#160; &#160; __rb_parent_color = 18446612488267270960,
&#160; &#160; &#160; &#160; rb_right = 0x0,
&#160; &#160; &#160; &#160; rb_left = 0x0
&#160; &#160; &#160; },
&#160; &#160; &#160; expires = {
&#160; &#160; &#160; &#160; tv64 = 1139545063897123
&#160; &#160; &#160; }
&#160; &#160; },
&#160; &#160; _softexpires = {
&#160; &#160; &#160; tv64 = 1139545063897123
&#160; &#160; },
&#160; &#160; function = 0xffffffffc0f80830 &amp;lt;nrs_tbf_timer_cb&amp;gt;,
&#160; &#160; base = 0xffff885ebf993960,
&#160; &#160; state = 0,
&#160; &#160; start_pid = 18992,
&#160; &#160; start_site = 0xffffffff810b65a2 &amp;lt;hrtimer_start+18&amp;gt;,
&#160; &#160; start_comm = &lt;span class=&quot;code-quote&quot;&gt;&quot;mdt00_045\000\000\000\000\000\000&quot;&lt;/span&gt;
&#160; },
&#160; th_deadline = 1139545063897123,
&#160; th_sequence = 20564788676,
&#160; th_binheap = 0xffff884105ed4060,
&#160; th_cli_hash = 0xffff88b105ee2000,
&#160; th_type = &lt;span class=&quot;code-quote&quot;&gt;&quot;nid\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000&quot;&lt;/span&gt;,
&#160; th_ops = 0xffffffffc10485e0 &amp;lt;nrs_tbf_nid_ops&amp;gt;,
&#160; th_type_flag = 2,
&#160; th_purge_start = 0
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;br/&gt;
 &lt;b&gt;the linked list of &quot;struct nrs_tbf_rule&quot;:&lt;/b&gt;&lt;br/&gt;
 -----------------------&lt;br/&gt;
 &lt;b&gt;default rule:&lt;/b&gt;&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;
crash&amp;gt; struct nrs_tbf_rule 0xffff884a160c58c0
struct nrs_tbf_rule {
&#160; tr_name = &lt;span class=&quot;code-quote&quot;&gt;&quot;&lt;span class=&quot;code-keyword&quot;&gt;default&lt;/span&gt;\000\000\000\000\000\000\000\000&quot;&lt;/span&gt;,
&#160; tr_head = 0xffff8852e0748b00,
&#160; tr_linkage = {
&#160; &#160; next = 0xffff8852e0748b10,
&#160; &#160; prev = 0xffff885219687bd8
&#160; },
&#160; tr_nids = {
&#160; &#160; next = 0xffff884a160c58e8,
&#160; &#160; prev = 0xffff884a160c58e8
&#160; },
&#160; tr_nids_str = 0xffff8854bffade60 &lt;span class=&quot;code-quote&quot;&gt;&quot;*&quot;&lt;/span&gt;,
&#160; tr_jobids = {
&#160; &#160; next = 0x0,
&#160; &#160; prev = 0x0
&#160; },
&#160; tr_jobids_str = 0x0,
&#160; tr_opcodes = 0x0,
&#160; tr_opcodes_str = 0x0,
&#160; tr_conds = {
&#160; &#160; next = 0x0,
&#160; &#160; prev = 0x0
&#160; },
&#160; tr_conds_str = 0x0,
&#160; tr_rpc_rate = 10000,
&#160; tr_nsecs = 100000,
&#160; tr_depth = 3,
&#160; tr_rule_lock = {
&#160; &#160; {
&#160; &#160; &#160; rlock = {
&#160; &#160; &#160; &#160; raw_lock = {
&#160; &#160; &#160; &#160; &#160; val = {
&#160; &#160; &#160; &#160; &#160; &#160; counter = 0
&#160; &#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; }
&#160; &#160; &#160; }
&#160; &#160; }
&#160; },
&#160; tr_cli_list = {
&#160; &#160; next = 0xffff88533b6938a0,
&#160; &#160; prev = 0xffff88533b6938a0
&#160; },
&#160; tr_flags = 2,
&#160; tr_ref = {
&#160; &#160; counter = 2
&#160; },
&#160; tr_generation = 0
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;b&gt;rule_clients:&lt;/b&gt;&lt;br/&gt;
 -------------------&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;
crash&amp;gt; struct nrs_tbf_rule 0xffff885219687bc0
struct nrs_tbf_rule {
&#160; tr_name = &lt;span class=&quot;code-quote&quot;&gt;&quot;rule_clients\000\000\000&quot;&lt;/span&gt;,
&#160; tr_head = 0xffff8852e0748b00,
&#160; tr_linkage = {
&#160; &#160; next = 0xffff884a160c58d8,
&#160; &#160; prev = 0xffff8852e0748b10
&#160; },
&#160; tr_nids = {
&#160; &#160; next = 0xffff885e1a280380,
&#160; &#160; prev = 0xffff885e1a280380
&#160; },
&#160; tr_nids_str = 0xffff885e0f762a40 &lt;span class=&quot;code-quote&quot;&gt;&quot;*******&quot;&lt;/span&gt;,
&#160; tr_jobids = {
&#160; &#160; next = 0x0,
&#160; &#160; prev = 0x0
&#160; },
&#160; tr_jobids_str = 0x0,
&#160; tr_opcodes = 0x0,
&#160; tr_opcodes_str = 0x0,
&#160; tr_conds = {
&#160; &#160; next = 0x0,
&#160; &#160; prev = 0x0
&#160; },
&#160; tr_conds_str = 0x0,
&#160; tr_rpc_rate = 3000,
&#160; tr_nsecs = 333333,
&#160; tr_depth = 3,
&#160; tr_rule_lock = {
&#160; &#160; {
&#160; &#160; &#160; rlock = {
&#160; &#160; &#160; &#160; raw_lock = {
&#160; &#160; &#160; &#160; &#160; val = {
&#160; &#160; &#160; &#160; &#160; &#160; counter = 0
&#160; &#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; }
&#160; &#160; &#160; }
&#160; &#160; }
&#160; },
&#160; tr_cli_list = {
&#160; &#160; next = 0xffff885219687c60,
&#160; &#160; prev = 0xffff885219687c60
&#160; },
&#160; tr_flags = 0,
&#160; tr_ref = {
&#160; &#160; counter = 1
&#160; },
&#160; tr_generation = 0
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;b&gt;an unknown and bad&#160; rule:&lt;/b&gt;&lt;br/&gt;
 -------------------------&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;
crash&amp;gt;&#160; struct nrs_tbf_rule 0xffff8852e0748af8
struct nrs_tbf_rule {
&#160; tr_name = &lt;span class=&quot;code-quote&quot;&gt;&quot;\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000&quot;&lt;/span&gt;,
&#160; tr_head = 0xffff885eb9f08100,
&#160; tr_linkage = {
&#160; &#160; next = 0xffff885219687bd8,
&#160; &#160; prev = 0xffff884a160c58d8
&#160; },
&#160; tr_nids = {
&#160; &#160; next = 0x25f00000001,
&#160; &#160; prev = 0xffff884a160c58c0
&#160; },
&#160; tr_nids_str = 0xffff8852e0748b30 &lt;span class=&quot;code-quote&quot;&gt;&quot;0\213t\340R\210\377\377&quot;&lt;/span&gt;,
&#160; tr_jobids = {
&#160; &#160; next = 0x0,
&#160; &#160; prev = 0x0
&#160; },
&#160; tr_jobids_str = 0x40c6902bd3823 &amp;lt;Address 0x40c6902bd3823 out of bounds&amp;gt;,
&#160; tr_opcodes = 0x40c6902bd3823,
&#160; tr_opcodes_str = 0xffffffffc0f80830 &amp;lt;nrs_tbf_timer_cb&amp;gt; &lt;span class=&quot;code-quote&quot;&gt;&quot;\017\037D&quot;&lt;/span&gt;,
&#160; tr_conds = {
&#160; &#160; next = 0xffff885ebf993960,
&#160; &#160; prev = 0x0
&#160; },
&#160; tr_conds_str = 0x4a30 &amp;lt;Address 0x4a30 out of bounds&amp;gt;,
&#160; tr_rpc_rate = 18446744071579592098,
&#160; tr_nsecs = 3760610349430367341,
&#160; tr_depth = 53,
&#160; tr_rule_lock = {
&#160; &#160; {
&#160; &#160; &#160; rlock = {
&#160; &#160; &#160; &#160; raw_lock = {
&#160; &#160; &#160; &#160; &#160; val = {
&#160; &#160; &#160; &#160; &#160; &#160; counter = 45955107
&#160; &#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; }
&#160; &#160; &#160; }
&#160; &#160; }
&#160; },
&#160; tr_cli_list = {
&#160; &#160; next = 0x4c9c1c5c4,
&#160; &#160; prev = 0xffff884105ed4060
&#160; },
&#160; tr_flags = 99491840,
&#160; tr_ref = {
&#160; &#160; counter = -30543
&#160; },
&#160; tr_generation = 6580590
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;------------------------&lt;br/&gt;
 It seems that the assert can not be triggered, since all the &quot;tr_flags&quot; of all three rules are 0, 2,&#160;99491840(a bad value). the result of &quot;tr_flags &amp;amp; 1&quot; is always 0.&lt;br/&gt;
 &#160;&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_10030" key="com.atlassian.jira.plugin.system.customfieldtypes:labels">
                        <customfieldname>Epic/Theme</customfieldname>
                        <customfieldvalues>
                                        <label>QoS-TBF</label>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i00k3j:</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="10020"><![CDATA[1]]></customfieldvalue>

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