<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:15: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-15055] spurious qmt_pool_add_rem() message when adding OST to pool: -EEXIST </title>
                <link>https://jira.whamcloud.com/browse/LU-15055</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;The &lt;tt&gt;qmt_pool_add_rem()&lt;/tt&gt; message started appearing on 2021-08-18 in test output, and there have been a few thousand hits per day:&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;LustreError: 5659:0:(qmt_pool.c:1390:qmt_pool_add_rem()) add to: can&apos;t scratch-QMT0000 scratch-OST0000_UUID pool pool1: rc = -17
LustreError: 5666:0:(qmt_pool.c:1390:qmt_pool_add_rem()) add to: can&apos;t scratch-QMT0000 scratch-OST0001_UUID pool pool2: rc = -17
LustreError: 5674:0:(qmt_pool.c:1390:qmt_pool_add_rem()) add to: can&apos;t scratch-QMT0000 scratch-OST0002_UUID pool pool3: rc = -17
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Patches landed on that day are listed below (no other patches landed after 2021-08-10 or before 2021-08-25):&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;$ git log --oneline --before 2021-08-22  --after 2021-08-16
d8204f903a (tag: v2_14_54, tag: 2.14.54) New tag 2.14.54
5220160648 LU-14093 lutf: fix build with gcc10
a205334da5 LU-14903 doc: update lfs-setdirstripe man page
1313cad7a1 LU-14899 ldiskfs: Add 5.4.136 mainline kernel support
c44afcfb72 LU-12815 socklnd: set conns_per_peer based on link speed
6e30cd0844 LU-14871 kernel: kernel update RHEL7.9 [3.10.0-1160.36.2.el7]
14b8276e06 LU-14865 utils: llog_reader.c printf type mismatch
aa5d081237 LU-9859 lnet: fold lprocfs_call_handler functionality into lnet_debugfs_*
e423a0bd7a LU-14787 libcfs: Proved an abstraction for AS_EXITING
76c71a167b LU-14775 kernel: kernel update SLES12 SP5 [4.12.14-122.74.1]
67752f6db2 LU-14773 tests: skip check_network() on working node
024f9303bc LU-14668 lnet: Lock primary NID logic
684943e2d0 LU-14668 lnet: peer state to lock primary nid
16321de596 LU-14661 obdclass: Add peer/peer NI when processing llog *
ac201366ad LU-14661 lnet: Provide kernel API for adding peers
51350e9b73 LU-14531 osd: serialize access to object vs object destroy
a5cbe7883d LU-12815 socklnd: allow dynamic setting of conns_per_peer
d13d8158e8 LU-14093 mgc: rework mgc_apply_recover_logs() for gcc10
8dd4488a07 LU-6142 tests: remove iam_ut binary
301d76a711 LU-14876 out: don&apos;t connect to busy MDS-MDS export *
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;It isn&apos;t really clear which of those patches started causing this problem, but the message is being printed in different subtests that create/remove OST pools.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;The graph shows occurrences by subtest since 2021-08-18, it looks like this happens in any subtest that is adding a pool:&lt;br/&gt;
 &lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;a id=&quot;40785_thumb&quot; href=&quot;https://jira.whamcloud.com/secure/attachment/40785/40785_Screen+Shot+2021-09-29+at+14.03.14.png&quot; title=&quot;Screen Shot 2021-09-29 at 14.03.14.png&quot; file-preview-type=&quot;image&quot; file-preview-id=&quot;40785&quot; file-preview-title=&quot;Screen Shot 2021-09-29 at 14.03.14.png&quot;&gt;&lt;img src=&quot;https://jira.whamcloud.com/secure/thumbnail/40785/_thumb_40785.png&quot; style=&quot;border: 0px solid black&quot; role=&quot;presentation&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description>
                <environment></environment>
        <key id="66359">LU-15055</key>
            <summary>spurious qmt_pool_add_rem() message when adding OST to pool: -EEXIST </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="scherementsev">Sergey Cheremencev</assignee>
                                    <reporter username="adilger">Andreas Dilger</reporter>
                        <labels>
                    </labels>
                <created>Fri, 1 Oct 2021 23:51:19 +0000</created>
                <updated>Mon, 27 Jun 2022 15:56:43 +0000</updated>
                            <resolved>Mon, 27 Jun 2022 15:56:43 +0000</resolved>
                                                    <fixVersion>Lustre 2.16.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                            <comments>
                            <comment id="319263" author="pjones" created="Fri, 26 Nov 2021 22:27:15 +0000"  >&lt;p&gt;Alex&lt;/p&gt;

&lt;p&gt;Any suggestions on this one?&lt;/p&gt;

&lt;p&gt;Peter&lt;/p&gt;</comment>
                            <comment id="319276" author="adilger" created="Fri, 26 Nov 2021 23:22:24 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.whamcloud.com/secure/ViewProfile.jspa?name=sergey&quot; class=&quot;user-hover&quot; rel=&quot;sergey&quot;&gt;sergey&lt;/a&gt;, I suspect that this message is actually related to a pool quota change?  The other possibility is that there is something bad/wrong happening with how OST pools are configured, and the same OST is being added to a pool multiple times.&lt;/p&gt;

&lt;p&gt;Also related, the formatting of the error message is broken:&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;
        CERROR(&lt;span class=&quot;code-quote&quot;&gt;&quot;%s: can&apos;t %s %s pool %s: rc = %d\n&quot;&lt;/span&gt;,
                       add ? &lt;span class=&quot;code-quote&quot;&gt;&quot;add to&quot;&lt;/span&gt; : &lt;span class=&quot;code-quote&quot;&gt;&quot;remove&quot;&lt;/span&gt;, obd-&amp;gt;obd_name,
                       slavename, poolname, rc);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;resulting in:&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;qmt_pool_add_rem()) add to: can&apos;t scratch-QMT0000 scratch-OST0000_UUID pool pool1: rc = -17
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;but it should really be something like:&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;qmt_pool_add_rem()) scratch-QMT0000: can&apos;t add scratch-OST0000_UUID to pool &apos;pool1&apos;: rc = -17
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The simple solution would be to quiet this console error message for the &lt;tt&gt;-EEXIST&lt;/tt&gt;, but it would be better to understand &lt;b&gt;why&lt;/b&gt; this message suddenly started being seen, and fix the root cause (e.g. duplicate config records for OSTs, or an issue in the test script?).&lt;/p&gt;</comment>
                            <comment id="319280" author="adilger" created="Fri, 26 Nov 2021 23:47:39 +0000"  >&lt;p&gt;The only patches that are even tangentially related to configuration that landed in the target window are:&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;16321de596 LU-14661 obdclass: Add peer/peer NI when processing llog
301d76a711 LU-14876 out: don&apos;t connect to busy MDS-MDS export
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;and no patches even come close to the OST pools or quota code or tests in this window.  Possibly something in &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-14661&quot; title=&quot;Provide kernel API for adding peer/peer NI&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-14661&quot;&gt;&lt;del&gt;LU-14661&lt;/del&gt;&lt;/a&gt; &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-14876&quot; title=&quot;OUT: possible concurrent execution of UPDATE request and its resent&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-14876&quot;&gt;&lt;del&gt;LU-14876&lt;/del&gt;&lt;/a&gt; is causing the OST to be registered twice?  Looking at the MDS logs of a recent test run:&lt;br/&gt;
&lt;a href=&quot;https://testing.whamcloud.com/test_sets/bb6c5d01-df84-47fd-8bd9-21f08be29658&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://testing.whamcloud.com/test_sets/bb6c5d01-df84-47fd-8bd9-21f08be29658&lt;/a&gt;&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;[11762.531609] Lustre: DEBUG MARKER: /usr/sbin/lctl mark == sanity-quota test 1b: Quota pools: Block hard limit \(normal use and out of quota\) === 14:55:59 \(1637679359\)
(1637673981)
[11780.265188] Lustre: DEBUG MARKER: lctl pool_new lustre.qpool1
[11788.955306] Lustre: DEBUG MARKER: lctl get_param -n lod.lustre-MDT0000-mdtlov.pools.qpool1 				2&amp;gt;/dev/null || echo foo
[11790.247590] Lustre: DEBUG MARKER: lctl get_param -n lod.lustre-MDT0002-mdtlov.pools.qpool1 				2&amp;gt;/dev/null || echo foo
[11791.573141] Lustre: DEBUG MARKER: /usr/sbin/lctl pool_add lustre.qpool1 lustre-OST[0000-0007/1]
[11802.006568] LustreError: 624610:0:(qmt_pool.c:1390:qmt_pool_add_rem()) add to: can&apos;t lustre-QMT0000 lustre-OST0000_UUID pool qpool1: rc = -17
[11802.008583] LustreError: 624610:0:(qmt_pool.c:1390:qmt_pool_add_rem()) Skipped 1 previous similar message
:
[11907.682379] Lustre: DEBUG MARKER: /usr/sbin/lctl pool_list lustre
[11908.326534] Lustre: DEBUG MARKER: /usr/sbin/lctl pool_list lustre.qpool1
[11908.975981] Lustre: DEBUG MARKER: lctl pool_remove lustre.qpool1 lustre-OST0000_UUID
[11916.181171] LustreError: 632050:0:(qmt_pool.c:1390:qmt_pool_add_rem()) remove: can&apos;t lustre-QMT0000 lustre-OST0000_UUID pool qpool1: rc = -22
[11916.183136] LustreError: 632050:0:(qmt_pool.c:1390:qmt_pool_add_rem()) Skipped 7 previous similar messages
[11917.638271] Lustre: DEBUG MARKER: lctl pool_remove lustre.qpool1 lustre-OST0001_UUID
[11926.306964] Lustre: DEBUG MARKER: lctl pool_remove lustre.qpool1 lustre-OST0002_UUID
[11935.124558] LustreError: 632331:0:(qmt_pool.c:1390:qmt_pool_add_rem()) remove: can&apos;t lustre-QMT0000 lustre-OST0002_UUID pool qpool1: rc = -22
[11935.126564] LustreError: 632331:0:(qmt_pool.c:1390:qmt_pool_add_rem()) Skipped 1 previous similar message
[11936.973878] Lustre: DEBUG MARKER: lctl pool_remove lustre.qpool1 lustre-OST0003_UUID
[11945.649745] Lustre: DEBUG MARKER: lctl pool_remove lustre.qpool1 lustre-OST0004_UUID
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;so it is also &lt;b&gt;removing&lt;/b&gt; the same OST from the pool twice and &lt;tt&gt;lu_tgt_pool_remove()&lt;/tt&gt; is returning &lt;tt&gt;-EINVAL&lt;/tt&gt;?&lt;/p&gt;</comment>
                            <comment id="331441" author="eaujames" created="Fri, 8 Apr 2022 19:05:17 +0000"  >&lt;p&gt;Hello,&lt;/p&gt;

&lt;p&gt;I was debugging the &lt;a href=&quot;https://review.whamcloud.com/#/c/46955&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/#/c/46955&lt;/a&gt; (&quot;&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-15707&quot; title=&quot;Unable to create file without a pool with a pool define on the parent or on the fs root.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-15707&quot;&gt;&lt;del&gt;LU-15707&lt;/del&gt;&lt;/a&gt; lod: force creation of a component without a pool&quot;) when I saw the same message.&lt;/p&gt;

&lt;p&gt;I think the root cause is the following code:&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-c&quot;&gt;
&lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;&lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt;&lt;/span&gt; lod_pool_add_q(&lt;span class=&quot;code-keyword&quot;&gt;struct&lt;/span&gt; obd_device *obd, &lt;span class=&quot;code-keyword&quot;&gt;&lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt;&lt;/span&gt; *poolname, &lt;span class=&quot;code-keyword&quot;&gt;&lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt;&lt;/span&gt; *ostname)
{                                                                               
        &lt;span class=&quot;code-keyword&quot;&gt;&lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt;&lt;/span&gt; err = lod_pool_add(obd, poolname, ostname);                         
                                                                                
        if (!err) {                                                             
                obd = obd_find_qmt0(obd-&amp;gt;obd_name);                             &amp;lt;------
                if (obd)                                                        
                        obd_pool_add(obd, poolname, ostname);                   
        }                                                                       
                                                                                
        &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; err;                                                             
}                                                                               
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;If the mds0 has 2 MDT, the MGS will add 1 pool_add record in CONFIGS/lustre-MDT0000 and CONFIGS/lustre-MDT0001. So obd_pool_add/lod_pool_add_q will be call 2 times (1 for each MDT), QMT0000 will be found 2 times (on mds0) and finally qmt_pool_add/qmt_pool_add_rem will try to add the same OST on QMT0000.&lt;/p&gt;

&lt;p&gt;So maybe we can add/remove the pool to QMT0000 only for the MDT0000:&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-c&quot;&gt;
&lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;&lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt;&lt;/span&gt; lod_pool_add_q(&lt;span class=&quot;code-keyword&quot;&gt;struct&lt;/span&gt; obd_device *obd, &lt;span class=&quot;code-keyword&quot;&gt;&lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt;&lt;/span&gt; *poolname, &lt;span class=&quot;code-keyword&quot;&gt;&lt;span class=&quot;code-object&quot;&gt;char&lt;/span&gt;&lt;/span&gt; *ostname)
{                                                                               
        &lt;span class=&quot;code-keyword&quot;&gt;&lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt;&lt;/span&gt; err = lod_pool_add(obd, poolname, ostname);                         
                                                                                
        if (!err &amp;amp;&amp;amp; strstr(obd-&amp;gt;obd_name, &lt;span class=&quot;code-quote-red&quot;&gt;&quot;-MDT0000&quot;&lt;/span&gt;)) {                                                             
                obd = obd_find_qmt0(obd-&amp;gt;obd_name);                           
                if (obd)                                                        
                        obd_pool_add(obd, poolname, ostname);                   
        }                                                                       
                                                                                
        &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; err;                                                             
}                                                                               
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="331819" author="gerrit" created="Wed, 13 Apr 2022 14:44:07 +0000"  >&lt;p&gt;&quot;Etienne AUJAMES &amp;lt;eaujames@ddn.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/47059&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/47059&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-15055&quot; title=&quot;spurious qmt_pool_add_rem() message when adding OST to pool: -EEXIST &quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-15055&quot;&gt;&lt;del&gt;LU-15055&lt;/del&gt;&lt;/a&gt; lod: run qmt_pool_* only from the MDT0000 config&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 9b4ea520fa3f05da47b20758a81360d03d25e2db&lt;/p&gt;</comment>
                            <comment id="338856" author="gerrit" created="Mon, 27 Jun 2022 04:57:16 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/47059/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/47059/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-15055&quot; title=&quot;spurious qmt_pool_add_rem() message when adding OST to pool: -EEXIST &quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-15055&quot;&gt;&lt;del&gt;LU-15055&lt;/del&gt;&lt;/a&gt; lod: run qmt_pool_* only from the MDT0000 config&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 0f158c6a093e059d89f637f31d34742078c38209&lt;/p&gt;</comment>
                            <comment id="338914" author="pjones" created="Mon, 27 Jun 2022 15:56:43 +0000"  >&lt;p&gt;Landed for 2.16&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="66292">LU-15043</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="40785" name="Screen Shot 2021-09-29 at 14.03.14.png" size="54139" author="adilger" created="Fri, 1 Oct 2021 23:56:01 +0000"/>
                    </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|i0263r:</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>