<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:32:51 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-17125] jbd2 commit deadlock</title>
                <link>https://jira.whamcloud.com/browse/LU-17125</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;The following commit deadlock has been observed on a customer side:&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;Sep  7 16:41:55 lustren002 kernel: jbd2/md65-8     D    0 259595      2 0x80004000
Sep  7 16:41:55 lustren002 kernel: Call Trace:
Sep  7 16:41:55 lustren002 kernel:  __schedule+0x2c4/0x700
Sep  7 16:41:55 lustren002 kernel:  ? __wake_up_common_lock+0x89/0xc0
Sep  7 16:41:55 lustren002 kernel:  schedule+0x38/0xa0
Sep  7 16:41:55 lustren002 kernel:  jbd2_log_wait_commit+0xac/0x120 [jbd2]
Sep  7 16:41:55 lustren002 kernel:  ? finish_wait+0x80/0x80
Sep  7 16:41:55 lustren002 kernel:  ldiskfs_sync_fs+0x1c1/0x1d0 [ldiskfs]
Sep  7 16:41:55 lustren002 kernel:  osd_sync+0xdf/0x180 [osd_ldiskfs]
Sep  7 16:41:55 lustren002 kernel:  qsd_acquire+0x468/0xdd0 [lquota]
Sep  7 16:41:55 lustren002 kernel:  qsd_op_begin0+0x161/0x890 [lquota]
Sep  7 16:41:55 lustren002 kernel:  ? __kmalloc+0x102/0x240
Sep  7 16:41:55 lustren002 kernel:  qsd_reserve_or_free_quota+0x2e1/0x7b0 [lquota]
Sep  7 16:41:55 lustren002 kernel:  osd_reserve_or_free_quota+0xe6/0x1c0 [osd_ldiskfs]
Sep  7 16:41:55 lustren002 kernel:  ? lu_context_init+0xa5/0x1a0 [obdclass]
Sep  7 16:41:55 lustren002 kernel:  tgt_cb_last_committed+0xc2/0x5c0 [ptlrpc]
Sep  7 16:41:55 lustren002 kernel:  osd_trans_commit_cb+0xe6/0x300 [osd_ldiskfs]
Sep  7 16:41:55 lustren002 kernel:  ldiskfs_journal_commit_callback+0xa5/0xe0 [ldiskfs]
Sep  7 16:41:55 lustren002 kernel:  jbd2_journal_commit_transaction+0x17ba/0x19e0 [jbd2]
Sep  7 16:41:55 lustren002 kernel:  kjournald2+0xbd/0x270 [jbd2]
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Revert of &quot;&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-14370&quot; title=&quot; sanity-quota test_12b: @@@@@@ FAIL: create failed, but expect success &quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-14370&quot;&gt;&lt;del&gt;LU-14370&lt;/del&gt;&lt;/a&gt; quota: use dt_sync() to flush pending writes&quot; could be a potential fix for the problem.&lt;/p&gt;</description>
                <environment></environment>
        <key id="77973">LU-17125</key>
            <summary>jbd2 commit deadlock</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="6" iconUrl="https://jira.whamcloud.com/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="3">Duplicate</resolution>
                                        <assignee username="wc-triage">WC Triage</assignee>
                                    <reporter username="vsaveliev">Vladimir Saveliev</reporter>
                        <labels>
                    </labels>
                <created>Mon, 18 Sep 2023 11:07:42 +0000</created>
                <updated>Wed, 25 Oct 2023 15:50:55 +0000</updated>
                            <resolved>Wed, 25 Oct 2023 15:50:55 +0000</resolved>
                                                                        <due></due>
                            <votes>1</votes>
                                    <watches>5</watches>
                                                                            <comments>
                            <comment id="386282" author="bzzz" created="Mon, 18 Sep 2023 11:21:23 +0000"  >&lt;p&gt;I rather think that calling qsd_acquire() from commit callback context is a bad idea.&lt;/p&gt;</comment>
                            <comment id="386385" author="vsaveliev" created="Tue, 19 Sep 2023 10:21:23 +0000"  >&lt;blockquote&gt;
&lt;p&gt;I rather think that calling qsd_acquire() from commit callback context is a bad idea.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;ok, then would it make sense to ask Hongchao Zhang to take a look, as that was done 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;From: Hongchao Zhang &amp;lt;hongchao@whamcloud.com&amp;gt;
Date: Fri, 2 Apr 2021 14:53:59 +0800
Subject: [PATCH] LU-11303 quota: enforce block quota for chgrp
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="390517" author="zam" created="Wed, 25 Oct 2023 15:38:02 +0000"  >&lt;p&gt;The issue was hit with the lustre code w/o &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-15880&quot; title=&quot;ASSERTION( lqe-&amp;gt;u.se.lse_pending_write == 0 )&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-15880&quot;&gt;&lt;del&gt;LU-15880&lt;/del&gt;&lt;/a&gt; landed, that code contains an incorrect integer values conversion when tgt_cb_last_committed() calls dt_reserve_or_free_quota():&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;
                dt_reserve_or_free_quota(&amp;amp;temp_env, th-&amp;gt;th_dev,
                                         th-&amp;gt;th_reserved_quota.qrr_type,
                                         th-&amp;gt;th_reserved_quota.qrr_id.qid_uid,
                                         th-&amp;gt;th_reserved_quota.qrr_id.qid_gid,
                                         -th-&amp;gt;th_reserved_quota.qrr_count,
                                         &lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;);
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;the &quot;count&quot; parameter in dt_reserve_or_free_quota prototype is inly 4-bytes &quot;int&quot;, while it is used to pass an 64bit value down the call stack. For enough big numbers of quota space to be released, the sign bit of the value can be lost..  the underlaying functions use sign of the passing value to determine whether it is quota &quot;reservation&quot; or &quot;freeing&quot;.  Eventually, in qsd_reserve_or_free_quota(), it causes wrong function to be called, qsd_op_begin0 instead of qsd_op_end0 at the transaction commit time.&lt;/p&gt;

&lt;p&gt;here the values from a crash dump:&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;crash&amp;gt; osd_thandle.ot_super.th_reserved_quota -x ffff95df1fc4ee00
  ot_super.th_reserved_quota = {
    qrr_type = GRPQUOTA,
    qrr_id = {
      qid_fid = {
        f_seq = 0x760a83c4,
        f_oid = 0x0,
        f_ver = 0x0
      },
      qid_uid = 0x760a83c4,
      qid_gid = 0x760a83c4,
      qid_projid = 0x760a83c4
    },
    qrr_count = 0x80001000
  },
crash&amp;gt; 
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;And, &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-15880&quot; title=&quot;ASSERTION( lqe-&amp;gt;u.se.lse_pending_write == 0 )&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-15880&quot;&gt;&lt;del&gt;LU-15880&lt;/del&gt;&lt;/a&gt; fixes that by getting rid of &quot;int count&quot; parameter in dt_reserve_or_free_quota(). So the issue should not be reproducible with the changes from &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-15880&quot; title=&quot;ASSERTION( lqe-&amp;gt;u.se.lse_pending_write == 0 )&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-15880&quot;&gt;&lt;del&gt;LU-15880&lt;/del&gt;&lt;/a&gt; patches in place.&lt;/p&gt;</comment>
                            <comment id="390527" author="zam" created="Wed, 25 Oct 2023 15:50:55 +0000"  >&lt;p&gt;Closing as a dup of &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-15880&quot; title=&quot;ASSERTION( lqe-&amp;gt;u.se.lse_pending_write == 0 )&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-15880&quot;&gt;&lt;del&gt;LU-15880&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                            <outwardlinks description="duplicates">
                                        <issuelink>
            <issuekey id="70419">LU-15880</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </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|i03vz3:</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>