<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:38:37 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-10836] MDS hangs on --replace and remount OSTs</title>
                <link>https://jira.whamcloud.com/browse/LU-10836</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;I recreated two OSTs on one of our file systems because they had corrupted ZFS meta data affecting their spacemaps. Their files had been migrated, they were set to max_create_count=0 and also deactivated for the destroy / --replace.&lt;/p&gt;

&lt;p&gt;I ran these commands on the OSS:&lt;/p&gt;

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

&lt;p&gt;&#160;&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;umount /mnt/lustre/local/iliad-OST0018
umount /mnt/lustre/local/iliad-OST0019
zpool list
zpool destroy iliad-ost18
zpool destroy iliad-ost19
zpool list
mkfs.lustre --fsname=iliad --ost --replace --backfstype=zfs --index=24 --mgsnode=172.16.25.4@o2ib iliad-ost18/ost18 /dev/mapper/mpathc
mkfs.lustre --fsname=iliad --ost --replace --backfstype=zfs --index=25 --mgsnode=172.16.25.4@o2ib iliad-ost19/ost19 /dev/mapper/mpathdsystemctl restart lustre
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;

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

&lt;p&gt;Then on the MDS:&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;lctl set_param osp.iliad-OST0019-osc-MDT0000.active=1
lctl set_param osp.iliad-OST0018-osc-MDT0000.active=1
lctl set_param lod.iliad-MDT0000-mdtlov.qos_threshold_rr=17
lctl get_param osp.iliad-OST0019-osc-MDT0000.max_create_count
lctl set_param osp.iliad-OST0019-osc-MDT0000.max_create_count=20000
lctl set_param osp.iliad-OST0018-osc-MDT0000.max_create_count=20000&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;At this point, I noticed the inode count on each OST was 10191 and it wasn&apos;t increasing. I tried to copy a file but the command hung. I checked the status of the MDS with the following commands, ultimately remounting the ldiskfs MDT:&lt;/p&gt;

&lt;p&gt;&#160;&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;lctl get_param osp.iliad-OST00*.active
dmesg
less /&lt;span class=&quot;code-keyword&quot;&gt;var&lt;/span&gt;/log/messages
umount /mnt/meta
dmesg | tail
mount /mnt/meta&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Upon mount, the file system went into recovery, completed in 20 seconds, and began operating normally. The stack trace is attached, truncated to avoid redundant traces.&lt;/p&gt;

&lt;p&gt;The file system appears to be fine and I am currently migrating files back onto the replaced OSTs.&lt;/p&gt;</description>
                <environment>Centos 7.4 w/ mellanox OFED 4.2-1.2.0.0&lt;br/&gt;
ZFS OSTs, ldiskfs MDT</environment>
        <key id="51469">LU-10836</key>
            <summary>MDS hangs on --replace and remount OSTs</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="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="jstroik">Jesse Stroik</reporter>
                        <labels>
                    </labels>
                <created>Wed, 21 Mar 2018 22:18:03 +0000</created>
                <updated>Fri, 23 Mar 2018 01:29:41 +0000</updated>
                                            <version>Lustre 2.10.3</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                            <comments>
                            <comment id="224360" author="adilger" created="Fri, 23 Mar 2018 01:29:41 +0000"  >&lt;p&gt;I suspect the problem is that when the MDS reconnects to a replaced OST the first time, it tries to precreate the objects up to what it expects in &lt;tt&gt;lov_objids&lt;/tt&gt;.  However, the OST doesn&apos;t know how many objects it needs to precreate (i.e. what the former &lt;tt&gt;LAST_ID&lt;/tt&gt; value was) so it precreates the maximum number of files, which is 10000.  It isn&apos;t clear why this would take more than a few seconds, but it seems to take long enough to make the MDS unhappy.&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;LNet: Service thread pid 4963 was inactive for 212.77s.
Pid: 4963, comm: mdt01_001
Call Trace:
schedule+0x29/0x70
schedule_timeout+0x174/0x2c0
osp_precreate_reserve+0x2e8/0x800 [osp]
osp_declare_create+0x193/0x590 [osp]
lod_sub_declare_create+0xdc/0x210 [lod]
lod_qos_declare_object_on+0xbe/0x3a0 [lod]
lod_alloc_qos.constprop.17+0xea2/0x1590 [lod]
lod_qos_prep_create+0x1291/0x17f0 [lod]
lod_prepare_create+0x298/0x3f0 [lod]
lod_declare_striped_create+0x1ee/0x970 [lod]
lod_declare_create+0x1e4/0x540 [lod]
mdd_declare_create_object_internal+0xdf/0x2f0 [mdd]
mdd_declare_create+0x53/0xe20 [mdd]
mdd_create+0x7d9/0x1320 [mdd]
mdt_reint_open+0x218c/0x31a0 [mdt]
mdt_reint_rec+0x80/0x210 [mdt]
mdt_reint_internal+0x5fb/0x9c0 [mdt]
mdt_intent_reint+0x162/0x430 [mdt]
mdt_intent_policy+0x43e/0xc70 [mdt]
ldlm_lock_enqueue+0x387/0x970 [ptlrpc]
ldlm_handle_enqueue0+0x9c3/0x1680 [ptlrpc]
tgt_enqueue+0x62/0x210 [ptlrpc]
tgt_request_handle+0x925/0x1370 [ptlrpc]
ptlrpc_server_handle_request+0x236/0xa90 [ptlrpc]
ptlrpc_main+0xa92/0x1e40 [ptlrpc]
kthread+0xcf/0xe0
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;On the one hand, the MDS wants to allocate new objects on these OSTs, because they are the least full, but on the other hand, the MDS should skip them if they do not yet have any objects available.  I suspect that if the MDS was left alone for a few minutes it might recover, but it isn&apos;t ideal behaviour. That is probably a minor bug in &lt;tt&gt;lod_alloc_qos()&lt;/tt&gt; which leads the MDS to allow the new OST to be selected before it is available.  We could also limit the number of OST objects precreated on a new OST to a much smaller number, and rely on any previously-existing objects to be created on demand.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="29868" name="mds-mar21-trace.txt" size="18992" author="jstroik" created="Wed, 21 Mar 2018 21:59:16 +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|hzzunz:</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>