<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:23:21 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-2218] lots of small IO causes OST deadlock</title>
                <link>https://jira.whamcloud.com/browse/LU-2218</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Sanger have been running into an issue where one of their applications seems to deadlock OSTs. They have an application that does lots of small IO and seems to create and delete a lot of files. It also seems to saturate the network, so there are a lot of bulk IO errors. It looks like the quota and jbd sections are getting into some kind of deadlock. I&apos;m uploading the full logs, but there is a lot of:&lt;/p&gt;

&lt;p&gt;Oct 21 11:29:40 lus08-oss2 kernel: [ 1456.264411]  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff8139ba25&amp;gt;&amp;#93;&lt;/span&gt; rwsem_down_failed_common+0x95/0x1e0&lt;br/&gt;
Oct 21 11:29:40 lus08-oss2 kernel: [ 1456.264418]  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff8139bb8f&amp;gt;&amp;#93;&lt;/span&gt; rwsem_down_write_failed+0x1f/0x30&lt;br/&gt;
Oct 21 11:29:40 lus08-oss2 kernel: [ 1456.264425]  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff811e8db3&amp;gt;&amp;#93;&lt;/span&gt; call_rwsem_down_write_failed+0x13/0x20&lt;br/&gt;
Oct 21 11:29:40 lus08-oss2 kernel: [ 1456.264431]  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff8139ad8c&amp;gt;&amp;#93;&lt;/span&gt; down_write+0x1c/0x20&lt;br/&gt;
Oct 21 11:29:40 lus08-oss2 kernel: [ 1456.264438]  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff8114fd3f&amp;gt;&amp;#93;&lt;/span&gt; dquot_initialize+0x8f/0x1c0&lt;br/&gt;
Oct 21 11:29:40 lus08-oss2 kernel: [ 1456.264453]  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa098fff0&amp;gt;&amp;#93;&lt;/span&gt; ldiskfs_unlink+0x130/0x270 &lt;span class=&quot;error&quot;&gt;&amp;#91;ldiskfs&amp;#93;&lt;/span&gt;&lt;br/&gt;
Oct 21 11:29:40 lus08-oss2 kernel: [ 1456.264484]  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa0a18a58&amp;gt;&amp;#93;&lt;/span&gt; filter_vfs_unlink+0x2f8/0x500 &lt;span class=&quot;error&quot;&gt;&amp;#91;obdfilter&amp;#93;&lt;/span&gt;&lt;br/&gt;
Oct 21 11:29:40 lus08-oss2 kernel: [ 1456.264499]  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa0a2c412&amp;gt;&amp;#93;&lt;/span&gt; filter_destroy+0x1572/0x1b90 &lt;span class=&quot;error&quot;&gt;&amp;#91;obdfilter&amp;#93;&lt;/span&gt;&lt;br/&gt;
Oct 21 11:29:40 lus08-oss2 kernel: [ 1456.264512]  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa09e4436&amp;gt;&amp;#93;&lt;/span&gt; ost_handle+0x2f36/0x5ef0 &lt;span class=&quot;error&quot;&gt;&amp;#91;ost&amp;#93;&lt;/span&gt;&lt;br/&gt;
Oct 21 11:29:40 lus08-oss2 kernel: [ 1456.264539]  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa06fb040&amp;gt;&amp;#93;&lt;/span&gt; ptlrpc_main+0x1bc0/0x22f0 &lt;span class=&quot;error&quot;&gt;&amp;#91;ptlrpc&amp;#93;&lt;/span&gt;&lt;br/&gt;
Oct 21 11:29:40 lus08-oss2 kernel: [ 1456.264574]  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff81003eba&amp;gt;&amp;#93;&lt;/span&gt; child_rip+0xa/0x20&lt;br/&gt;
Oct 21 11:29:40 lus08-oss2 kernel: [ 1456.264577]&lt;/p&gt;

&lt;p&gt;and&lt;/p&gt;

&lt;p&gt;Oct 21 12:02:13 lus08-oss2 kernel: [ 3406.266346] Call Trace:&lt;br/&gt;
Oct 21 12:02:13 lus08-oss2 kernel: [ 3406.266366]  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa0956006&amp;gt;&amp;#93;&lt;/span&gt; start_this_handle+0x356/0x450 &lt;span class=&quot;error&quot;&gt;&amp;#91;jbd2&amp;#93;&lt;/span&gt;&lt;br/&gt;
Oct 21 12:02:13 lus08-oss2 kernel: [ 3406.266388]  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa09562e0&amp;gt;&amp;#93;&lt;/span&gt; jbd2_journal_start+0xa0/0xe0 &lt;span class=&quot;error&quot;&gt;&amp;#91;jbd2&amp;#93;&lt;/span&gt;&lt;br/&gt;
Oct 21 12:02:13 lus08-oss2 kernel: [ 3406.266398]  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa095632e&amp;gt;&amp;#93;&lt;/span&gt; jbd2_journal_force_commit+0xe/0x30 &lt;span class=&quot;error&quot;&gt;&amp;#91;jbd2&amp;#93;&lt;/span&gt;&lt;br/&gt;
Oct 21 12:02:13 lus08-oss2 kernel: [ 3406.266415]  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa0995ce1&amp;gt;&amp;#93;&lt;/span&gt; ldiskfs_force_commit+0xb1/0xe0 &lt;span class=&quot;error&quot;&gt;&amp;#91;ldiskfs&amp;#93;&lt;/span&gt;&lt;br/&gt;
Oct 21 12:02:13 lus08-oss2 kernel: [ 3406.266444]  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa0a1fab0&amp;gt;&amp;#93;&lt;/span&gt; filter_sync+0x80/0x600 &lt;span class=&quot;error&quot;&gt;&amp;#91;obdfilter&amp;#93;&lt;/span&gt;&lt;br/&gt;
Oct 21 12:02:13 lus08-oss2 kernel: [ 3406.266457]  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa09e039f&amp;gt;&amp;#93;&lt;/span&gt; ost_blocking_ast+0x29f/0xa30 &lt;span class=&quot;error&quot;&gt;&amp;#91;ost&amp;#93;&lt;/span&gt;&lt;br/&gt;
Oct 21 12:02:13 lus08-oss2 kernel: [ 3406.266485]  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa06a36d6&amp;gt;&amp;#93;&lt;/span&gt; ldlm_cancel_callback+0x56/0xe0 &lt;span class=&quot;error&quot;&gt;&amp;#91;ptlrpc&amp;#93;&lt;/span&gt;&lt;br/&gt;
Oct 21 12:02:13 lus08-oss2 kernel: [ 3406.266504]  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa06a37ac&amp;gt;&amp;#93;&lt;/span&gt; ldlm_lock_cancel+0x4c/0x190 &lt;span class=&quot;error&quot;&gt;&amp;#91;ptlrpc&amp;#93;&lt;/span&gt;&lt;br/&gt;
Oct 21 12:02:13 lus08-oss2 kernel: [ 3406.266528]  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa06c3dcf&amp;gt;&amp;#93;&lt;/span&gt; ldlm_request_cancel+0x13f/0x380 &lt;span class=&quot;error&quot;&gt;&amp;#91;ptlrpc&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;I asked them to turn down the oss threads to try to reduce contention on the disks and network, but that didn&apos;t seem to help. Let me know if there are any other logs you need. &lt;/p&gt;</description>
                <environment>SLES kernel on debian</environment>
        <key id="16416">LU-2218</key>
            <summary>lots of small IO causes OST deadlock</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="5">Cannot Reproduce</resolution>
                                        <assignee username="niu">Niu Yawei</assignee>
                                    <reporter username="kitwestneat">Kit Westneat</reporter>
                        <labels>
                    </labels>
                <created>Mon, 22 Oct 2012 05:42:17 +0000</created>
                <updated>Fri, 9 May 2014 18:07:44 +0000</updated>
                            <resolved>Fri, 9 May 2014 18:07:44 +0000</resolved>
                                    <version>Lustre 1.8.8</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>7</watches>
                                                                            <comments>
                            <comment id="46834" author="pjones" created="Mon, 22 Oct 2012 08:47:25 +0000"  >&lt;p&gt;Niu&lt;/p&gt;

&lt;p&gt;Could you please help with this one?&lt;/p&gt;

&lt;p&gt;Thanks&lt;/p&gt;

&lt;p&gt;peter&lt;/p&gt;</comment>
                            <comment id="46836" author="kitwestneat" created="Mon, 22 Oct 2012 09:02:19 +0000"  >&lt;p&gt;Here is additional information from Sanger:&lt;/p&gt;

&lt;p&gt;The pipeline runs 200-1500 concurrent jobs; each job creates its own&lt;br/&gt;
working directory on lustre and processes ~2000 files within the&lt;br/&gt;
directory. The file IO is all small; each job is typically opening a&lt;br/&gt;
file, writing a couple of lines, closing the file. The process is then&lt;br/&gt;
repeated on another file.&lt;/p&gt;

&lt;p&gt;There does not appear to be any concurrent write access to any of the&lt;br/&gt;
files. At the end of the job, the working directory is deleted.&lt;/p&gt;

&lt;p&gt;All of these IO is happening on un-striped files &amp;amp; directories.&lt;/p&gt;

&lt;p&gt;One thing we also noticed; the user concerned was at 98% of their inode&lt;br/&gt;
quota, and it is entirely possible that they went over quota at some point.&lt;/p&gt;

&lt;p&gt;Unfortunately, their pipeline does not trap errors; it simply re-tries&lt;br/&gt;
job if they fail. I have looked through the logs on all of the clients,&lt;br/&gt;
and none of them have logged any of the lustre -122 errors that we would&lt;br/&gt;
expect to see in an over-quota situation, but maybe the over-quota&lt;br/&gt;
errors never makes it back from the deadlocked OSS.&lt;/p&gt;

&lt;p&gt;We have upped the user&apos;s quota, and re-activated the pipeline, so we&lt;br/&gt;
should know in the next 24 hours whether this was the cause or not.&lt;/p&gt;</comment>
                            <comment id="46868" author="gmpc@sanger.ac.uk" created="Wed, 24 Oct 2012 04:33:56 +0000"  >&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;We can reproduce the deadlock even when the user is well within quota.&lt;/p&gt;</comment>
                            <comment id="46870" author="kitwestneat" created="Wed, 24 Oct 2012 09:10:48 +0000"  >&lt;p&gt;I&apos;ve looked more closely at the logs and it looks like there is some kind of deadlock between 3 different functions:&lt;/p&gt;

&lt;p&gt;mutex_lock &lt;br/&gt;
rwsem_down_failed_common&lt;br/&gt;
start_this_handle&lt;/p&gt;

&lt;p&gt;They all seem to be called by either filter_destroy or ldlm_cancel_callback originally. &lt;/p&gt;

&lt;p&gt;Are there any debug flags that might help get information?&lt;/p&gt;</comment>
                            <comment id="46871" author="niu" created="Wed, 24 Oct 2012 13:13:37 +0000"  >&lt;p&gt;Hi, Kit&lt;/p&gt;

&lt;p&gt;I checked the log, there are indeed many service threads are waiting for starting journal, and somes are waiting on the dqptr_sem, but it seems not necessary be a deadlock. I didn&apos;t see lock ordering issues from code so far (there was a deadlock problem, but it&apos;s already fixed in &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-952&quot; title=&quot;Hung thread with HIGH OSS load&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-952&quot;&gt;&lt;del&gt;LU-952&lt;/del&gt;&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Could you try to get the full stacktrace (on the hang OST) by sysrq? I think that could be helpful. Thanks.&lt;/p&gt;</comment>
                            <comment id="46872" author="niu" created="Wed, 24 Oct 2012 13:40:33 +0000"  >&lt;p&gt;Hi, Yangshen&lt;/p&gt;

&lt;p&gt;I saw that ext4-back-dquot-to-rhel54.patch is removed by ba5dd769f66194a80920cf93d6014c78729efaae (&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-674&quot; title=&quot;Update RHEL5 kernel to 2.6.18-274.3.1.el5  security update&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-674&quot;&gt;&lt;del&gt;LU-674&lt;/del&gt;&lt;/a&gt;), won&apos;t it cause deadlock? (see b23235     530ddd7935bfbea6a9714c69d44da61f5efc098f).&lt;/p&gt;</comment>
                            <comment id="46883" author="niu" created="Wed, 24 Oct 2012 18:37:44 +0000"  >&lt;p&gt;btw, Kit, what&apos;s the exact kernel version on OST?&lt;/p&gt;</comment>
                            <comment id="46889" author="ys" created="Wed, 24 Oct 2012 19:06:37 +0000"  >&lt;p&gt;SLES kernel may different than RHEL. So the patches cannot apply directly. &lt;/p&gt;</comment>
                            <comment id="46899" author="kitwestneat" created="Thu, 25 Oct 2012 05:39:18 +0000"  >&lt;p&gt;The kernel is version 2.6.32.59-sles-lustre-1.8.8wc1. I tried to see if there were any ext4 bugs fixed in more recent 2.6.32.y kernels, but I couldn&apos;t find any. We&apos;ll try to get a full stack trace the next time this occurred. We tried this time, but as you can see the first part was not saved for some reason.&lt;/p&gt;</comment>
                            <comment id="46964" author="gmpc@sanger.ac.uk" created="Fri, 26 Oct 2012 12:10:26 +0000"  >&lt;p&gt;We have been running the same workload on one of our 2.2 file-systems for the past few days, and we not able to trigger the problem.&lt;/p&gt;

&lt;p&gt;Our plan will be to upgrade the problematic file-system to 2.X. I am happy for you to reduce the priority of the ticket  in the meantime.&lt;br/&gt;
Thanks,&lt;/p&gt;

&lt;p&gt;Guy&lt;/p&gt;</comment>
                            <comment id="46969" author="niu" created="Fri, 26 Oct 2012 13:04:01 +0000"  >&lt;p&gt;Thank you, Guy. sles kernel isn&apos;t officially supported by 1.8.8, so I&apos;m not sure if there is potential deadlock of journal lock with qptr_sem. Anyway, glad to hear you resolved the problem by upgrading.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="11976" name="debug.tar.gz" size="219" author="kitwestneat" created="Mon, 22 Oct 2012 05:42:18 +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|hzvaqv:</customfieldvalue>

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