<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:58:19 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-13093] osd_trans_exec_check()) lustre-OST0001: opcode 0: used 8, used now 8, reserved 1 LBUG</title>
                <link>https://jira.whamcloud.com/browse/LU-13093</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;During racer the next LBUG happened&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;00080000:00000400:0.0:1576770158.744398:0:13105:0:(osd_internal.h:1288:osd_trans_exec_check()) lustre-OST0001: opcode 0: used 8, used now 8, reserved 1
00080000:00000400:0.0:1576770158.750040:0:13105:0:(osd_handler.c:1801:osd_trans_dump_creds())   create: 0/0/0, destroy: 0/0/0
00080000:00000400:0.0:1576770158.755956:0:13105:0:(osd_handler.c:1808:osd_trans_dump_creds())   attr_set: 1/1/8, xattr_set: 2/274/0
00080000:00000400:0.0:1576770158.760212:0:13105:0:(osd_handler.c:1818:osd_trans_dump_creds())   write: 0/0/0, punch: 0/0/0, quota 6/6/0
00080000:00000400:0.0:1576770158.764684:0:13105:0:(osd_handler.c:1825:osd_trans_dump_creds())   insert: 0/0/0, delete: 0/0/0
00080000:00000400:0.0:1576770158.768719:0:13105:0:(osd_handler.c:1832:osd_trans_dump_creds())   ref_add: 0/0/0, ref_del: 0/0/0
00080000:00040000:0.0:1576770158.772504:0:13105:0:(osd_internal.h:1291:osd_trans_exec_check()) LBUG

 #2 [ffff99728ef238a0] panic at ffffffffa5b5d55b
 #3 [ffff99728ef23920] lbug_with_loc at ffffffffc0aa48cb [libcfs]
 #4 [ffff99728ef23950] osd_attr_set at ffffffffc11f6f5e [osd_ldiskfs]
 #5 [ffff99728ef239b8] ofd_write_attr_set at ffffffffc135c292 [ofd]
 #6 [ffff99728ef23a28] ofd_commitrw_write at ffffffffc135c99d [ofd]
 #7 [ffff99728ef23ab8] ofd_commitrw at ffffffffc1360dac [ofd]
 #8 [ffff99728ef23b30] tgt_brw_write at ffffffffc0fba34c [ptlrpc]
 #9 [ffff99728ef23ca8] tgt_request_handle at ffffffffc0fbe0ba [ptlrpc]

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;After adding some debug I&apos;ve found  that vfs_dq_transfer spent 7-8 credits during this failure.  Here is a full log with a race, one thread do brw_write another do set_attr&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;00000100:00100000:1.0:1576770158.667759:0:13105:0:(service.c:2227:ptlrpc_server_handle_request()) Handling RPC req@ffff89779e486050 pname:cluuid+ref:pid:xid:nid:opc:job ll_ost_io00_011:ed527c8c-2be3-96ff-ed07-99e9220c53c7+30:9976:x1653362876819568:12345-192.168.111.36@tcp:4:cat.0
00080000:00080000:0.0:1576770158.714330:0:13105:0:(osd_handler.c:2777:osd_declare_attr_set()) declare uid 0 -&amp;gt; 0
00000001:00080000:0.0:1576770158.714333:0:13105:0:(osd_quota.c:576:osd_declare_qid()) uid 0 type 0 res 1
00000001:00080000:0.0:1576770158.714334:0:13105:0:(osd_quota.c:614:osd_declare_qid()) adding 1 credits for quota uid=0 type=0 res=1
00000001:00080000:0.0:1576770158.714337:0:13105:0:(osd_quota.c:576:osd_declare_qid()) uid 0 type 0 res 1
00000001:00080000:0.0:1576770158.714338:0:13105:0:(osd_quota.c:576:osd_declare_qid()) uid 0 type 0 res 2
00000001:00080000:0.0:1576770158.714339:0:13105:0:(osd_quota.c:614:osd_declare_qid()) adding 1 credits for quota uid=0 type=0 res=2
00000001:00080000:0.0:1576770158.714340:0:13105:0:(osd_quota.c:576:osd_declare_qid()) uid 0 type 0 res 2
00080000:00080000:0.0:1576770158.714341:0:13105:0:(osd_handler.c:2785:osd_declare_attr_set()) declare gid 0 -&amp;gt; 0
00000001:00080000:0.0:1576770158.714341:0:13105:0:(osd_quota.c:576:osd_declare_qid()) uid 0 type 1 res 1
00000001:00080000:0.0:1576770158.714342:0:13105:0:(osd_quota.c:614:osd_declare_qid()) adding 1 credits for quota uid=0 type=1 res=1
00000001:00080000:0.0:1576770158.714343:0:13105:0:(osd_quota.c:576:osd_declare_qid()) uid 0 type 1 res 1
00000001:00080000:0.0:1576770158.714343:0:13105:0:(osd_quota.c:576:osd_declare_qid()) uid 0 type 1 res 2
00000001:00080000:0.0:1576770158.714344:0:13105:0:(osd_quota.c:614:osd_declare_qid()) adding 1 credits for quota uid=0 type=1 res=2
00000001:00080000:0.0:1576770158.714345:0:13105:0:(osd_quota.c:576:osd_declare_qid()) uid 0 type 1 res 2
00000001:00080000:0.0:1576770158.714345:0:13105:0:(osd_quota.c:576:osd_declare_qid()) uid 0 type 2 res 1
00000001:00080000:0.0:1576770158.714346:0:13105:0:(osd_quota.c:614:osd_declare_qid()) adding 1 credits for quota uid=0 type=2 res=1
00000001:00080000:0.0:1576770158.714347:0:13105:0:(osd_quota.c:576:osd_declare_qid()) uid 0 type 2 res 1
00000001:00080000:0.0:1576770158.714347:0:13105:0:(osd_quota.c:576:osd_declare_qid()) uid 0 type 2 res 2
00000001:00080000:0.0:1576770158.714348:0:13105:0:(osd_quota.c:614:osd_declare_qid()) adding 1 credits for quota uid=0 type=2 res=2
00000001:00080000:0.0:1576770158.714349:0:13105:0:(osd_quota.c:576:osd_declare_qid()) uid 0 type 2 res 2
00000100:00100000:1.0:1576770158.734168:0:13086:0:(nrs_fifo.c:179:nrs_fifo_req_get()) NRS start fifo request from 12345-192.168.111.33@tcp, seq: 202067
00000100:00100000:1.0:1576770158.734170:0:13086:0:(service.c:2227:ptlrpc_server_handle_request()) Handling RPC req@ffff89778bdd2880 pname:cluuid+ref:pid:xid:nid:opc:job ll_ost00_008:lustre-MDT0001-mdtlov_UUID+17:11480:x1653362832391888:12345-192.168.111.33@tcp:2:osp-syn-1-1.0
00080000:00080000:1.0:1576770158.734179:0:13086:0:(osd_handler.c:2777:osd_declare_attr_set()) declare uid 0 -&amp;gt; 1892
00000001:00080000:1.0:1576770158.734179:0:13086:0:(osd_quota.c:576:osd_declare_qid()) uid 1892 type 0 res 1
00000001:00080000:1.0:1576770158.734180:0:13086:0:(osd_quota.c:614:osd_declare_qid()) adding 73 credits for quota uid=1892 type=0 res=1
00000001:00080000:1.0:1576770158.734181:0:13086:0:(osd_quota.c:576:osd_declare_qid()) uid 0 type 0 res 1
00000001:00080000:1.0:1576770158.734182:0:13086:0:(osd_quota.c:614:osd_declare_qid()) adding 1 credits for quota uid=0 type=0 res=1
00000001:00080000:1.0:1576770158.734183:0:13086:0:(osd_quota.c:576:osd_declare_qid()) uid 1892 type 0 res 2
00000001:00080000:1.0:1576770158.734184:0:13086:0:(osd_quota.c:614:osd_declare_qid()) adding 73 credits for quota uid=1892 type=0 res=2
00000001:00080000:1.0:1576770158.734215:0:13086:0:(osd_quota.c:576:osd_declare_qid()) uid 0 type 0 res 2
00000001:00080000:1.0:1576770158.734216:0:13086:0:(osd_quota.c:614:osd_declare_qid()) adding 1 credits for quota uid=0 type=0 res=2
00080000:00080000:1.0:1576770158.734218:0:13086:0:(osd_handler.c:2785:osd_declare_attr_set()) declare gid 0 -&amp;gt; 23392
00000001:00080000:1.0:1576770158.734219:0:13086:0:(osd_quota.c:576:osd_declare_qid()) uid 23392 type 1 res 1
00000001:00080000:1.0:1576770158.734221:0:13086:0:(osd_quota.c:614:osd_declare_qid()) adding 73 credits for quota uid=23392 type=1 res=1
00000001:00080000:1.0:1576770158.734222:0:13086:0:(osd_quota.c:576:osd_declare_qid()) uid 0 type 1 res 1
00000001:00080000:1.0:1576770158.734223:0:13086:0:(osd_quota.c:614:osd_declare_qid()) adding 1 credits for quota uid=0 type=1 res=1
00000001:00080000:1.0:1576770158.734224:0:13086:0:(osd_quota.c:576:osd_declare_qid()) uid 23392 type 1 res 2
00000001:00080000:1.0:1576770158.734225:0:13086:0:(osd_quota.c:614:osd_declare_qid()) adding 73 credits for quota uid=23392 type=1 res=2
00000001:00080000:1.0:1576770158.734257:0:13086:0:(osd_quota.c:576:osd_declare_qid()) uid 0 type 1 res 2
00000001:00080000:1.0:1576770158.734259:0:13086:0:(osd_quota.c:614:osd_declare_qid()) adding 1 credits for quota uid=0 type=1 res=2
00000001:00080000:1.0:1576770158.734278:0:13086:0:(osd_quota.c:576:osd_declare_qid()) uid 0 type 0 res 2
00000001:00080000:1.0:1576770158.734280:0:13086:0:(osd_quota.c:576:osd_declare_qid()) uid 0 type 1 res 2
00000001:00080000:1.0:1576770158.734281:0:13086:0:(osd_quota.c:576:osd_declare_qid()) uid 0 type 2 res 2
00000001:00080000:1.0:1576770158.734282:0:13086:0:(osd_quota.c:614:osd_declare_qid()) adding 1 credits for quota uid=0 type=2 res=2
00080000:00080000:1.0:1576770158.734285:0:13086:0:(osd_handler.c:2978:osd_show_credits()) opcode 0: before 512, transaction  512
00080000:00080000:1.0:1576770158.734286:0:13086:0:(osd_handler.c:2978:osd_show_credits()) opcode 0: before 512, transaction  512
00080000:00080000:1.0:1576770158.734288:0:13086:0:(osd_handler.c:2933:osd_quota_transfer()) executing vfs_dq_transfer inode 293 uid 0 -&amp;gt; 1892 gid 0 -&amp;gt; 23392
00080000:00080000:1.0:1576770158.734311:0:13086:0:(osd_handler.c:2978:osd_show_credits()) opcode 0: before 512, transaction  512
00080000:00080000:1.0:1576770158.734313:0:13086:0:(osd_handler.c:2978:osd_show_credits()) opcode 0: before 512, transaction  512
00080000:00080000:1.0:1576770158.734317:0:13086:0:(osd_handler.c:2978:osd_show_credits()) opcode 0: before 512, transaction  511
00002000:00010000:1.0:1576770158.734328:0:13086:0:(ofd_lvb.c:307:ofd_lvbo_update()) res: [0x280000400:0xe81:0x0] updating lvb size from disk: 10642 -&amp;gt; 10642
00002000:00010000:1.0:1576770158.734330:0:13086:0:(ofd_lvb.c:314:ofd_lvbo_update()) res: [0x280000400:0xe81:0x0] updating lvb mtime from disk: 1576770157 -&amp;gt; 1576770157
00002000:00010000:1.0:1576770158.734331:0:13086:0:(ofd_lvb.c:320:ofd_lvbo_update()) res: [0x280000400:0xe81:0x0] updating lvb atime from disk: 0 -&amp;gt; 0
00002000:00010000:1.0:1576770158.734333:0:13086:0:(ofd_lvb.c:326:ofd_lvbo_update()) res: [0x280000400:0xe81:0x0] updating lvb ctime from disk: 1576770158 -&amp;gt; 1576770158
00002000:00010000:1.0:1576770158.734334:0:13086:0:(ofd_lvb.c:332:ofd_lvbo_update()) res: [0x280000400:0xe81:0x0] updating lvb blocks from disk: 0 -&amp;gt; 0
00000100:00100000:1.0:1576770158.734368:0:13086:0:(service.c:2277:ptlrpc_server_handle_request()) Handled RPC req@ffff89778bdd2880 pname:cluuid+ref:pid:xid:nid:opc:job ll_ost00_008:lustre-MDT0001-mdtlov_UUID+18:11480:x1653362832391888:12345-192.168.111.33@tcp:2:osp-syn-1-1.0 Request processed in 196us (383us total) trans 4295022387 rc 0/0
00000100:00100000:1.0:1576770158.734373:0:13086:0:(nrs_fifo.c:241:nrs_fifo_req_stop()) NRS stop fifo request from 12345-192.168.111.33@tcp, seq: 202067
00080000:00080000:0.0:1576770158.744271:0:13105:0:(osd_handler.c:2978:osd_show_credits()) opcode 0: before 291, transaction  291
00080000:00080000:0.0:1576770158.744272:0:13105:0:(osd_handler.c:2978:osd_show_credits()) opcode 0: before 291, transaction  291
00080000:00080000:0.0:1576770158.744273:0:13105:0:(osd_handler.c:2933:osd_quota_transfer()) executing vfs_dq_transfer inode 293 uid 1892 -&amp;gt; 0 gid 23392 -&amp;gt; 0
00080000:00080000:0.0:1576770158.744394:0:13105:0:(osd_handler.c:2978:osd_show_credits()) opcode 0: before 291, transaction  284
00080000:00080000:0.0:1576770158.744395:0:13105:0:(osd_handler.c:2978:osd_show_credits()) opcode 0: before 291, transaction  284
00080000:00080000:0.0:1576770158.744397:0:13105:0:(osd_handler.c:2978:osd_show_credits()) opcode 0: before 291, transaction  283
00080000:00000400:0.0:1576770158.744398:0:13105:0:(osd_internal.h:1288:osd_trans_exec_check()) lustre-OST0001: opcode 0: used 8, used now 8, reserved 1
00080000:00000400:0.0:1576770158.750040:0:13105:0:(osd_handler.c:1801:osd_trans_dump_creds())   create: 0/0/0, destroy: 0/0/0
00080000:00000400:0.0:1576770158.755956:0:13105:0:(osd_handler.c:1808:osd_trans_dump_creds())   attr_set: 1/1/8, xattr_set: 2/274/0
00080000:00000400:0.0:1576770158.760212:0:13105:0:(osd_handler.c:1818:osd_trans_dump_creds())   write: 0/0/0, punch: 0/0/0, quota 6/6/0
00080000:00000400:0.0:1576770158.764684:0:13105:0:(osd_handler.c:1825:osd_trans_dump_creds())   insert: 0/0/0, delete: 0/0/0
00080000:00000400:0.0:1576770158.768719:0:13105:0:(osd_handler.c:1832:osd_trans_dump_creds())   ref_add: 0/0/0, ref_del: 0/0/0
00080000:00040000:0.0:1576770158.772504:0:13105:0:(osd_internal.h:1291:osd_trans_exec_check()) LBUG
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;So here, brw_write reserved credit for uid 0 -&amp;gt; uid 0 quota. But after OST_SETATTR happened and changed uid from 0 to 1892. brw_write continued to set attr and failed because not enough credits for 1892 -&amp;gt; 0 transfer.&lt;br/&gt;
It looks like locking fot setattr with ofd_read_lock is broken since commit dcb0f2f03f7 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10048&quot; title=&quot;osd-ldiskfs to truncate outside of main transaction&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10048&quot;&gt;&lt;del&gt;LU-10048&lt;/del&gt;&lt;/a&gt; ofd: take local locks within transaction.&lt;/p&gt;</description>
                <environment></environment>
        <key id="57684">LU-13093</key>
            <summary>osd_trans_exec_check()) lustre-OST0001: opcode 0: used 8, used now 8, reserved 1 LBUG</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.whamcloud.com/images/icons/priorities/major.svg">Major</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="bzzz">Alex Zhuravlev</assignee>
                                    <reporter username="aboyko">Alexander Boyko</reporter>
                        <labels>
                    </labels>
                <created>Fri, 20 Dec 2019 11:49:58 +0000</created>
                <updated>Sun, 20 Jun 2021 20:21:06 +0000</updated>
                            <resolved>Tue, 28 Jan 2020 15:57:23 +0000</resolved>
                                    <version>Lustre 2.12.0</version>
                    <version>Lustre 2.13.0</version>
                    <version>Lustre 2.14.0</version>
                                    <fixVersion>Lustre 2.14.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                            <comments>
                            <comment id="260231" author="bzzz" created="Fri, 20 Dec 2019 12:03:25 +0000"  >&lt;p&gt;what kernel version do you use?&lt;/p&gt;</comment>
                            <comment id="260232" author="bzzz" created="Fri, 20 Dec 2019 12:06:28 +0000"  >&lt;p&gt;this is actually not the locking broken but rather credits calculation (in optimization part)..&lt;/p&gt;</comment>
                            <comment id="260233" author="aboyko" created="Fri, 20 Dec 2019 12:13:39 +0000"  >&lt;p&gt;ofd_write_attrset(pid 13105) do declaration for 0 -&amp;gt; 0, then another thread(pid 13086) changed uid, and then ofd_write_attrset do ofd_read_lock, setattr.&lt;/p&gt;

&lt;p&gt;3.10.0-957.1.3957.1.3.x3.4.160.x86_64&lt;/p&gt;</comment>
                            <comment id="260234" author="aboyko" created="Fri, 20 Dec 2019 12:20:17 +0000"  >&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;     th = ofd_trans_create(env, ofd);
        if (IS_ERR(th))
                GOTO(out, rc = PTR_ERR(th));

        if (la-&amp;gt;la_valid) {
                rc = dt_declare_attr_set(env, dt_obj, la, th);
                if (rc)
                        GOTO(out_tx, rc);
        }

        rc = dt_declare_xattr_set(env, dt_obj, &amp;amp;info-&amp;gt;fti_buf,
                        XATTR_NAME_FID, 0, th);
        if (rc)
                GOTO(out_tx, rc);

        /* We don&apos;t need a transno for this operation which will be re-executed
         * anyway when the OST_WRITE (with a transno assigned) is replayed */
        rc = dt_trans_start_local(env, ofd-&amp;gt;ofd_osd , th);
        if (rc)
                GOTO(out_tx, rc);
                                                                             &amp;lt;----------------- here another thread call osd_attr_set and changed uid/gid
        ofd_read_lock(env, ofd_obj);

        /* set uid/gid/projid */
        if (la-&amp;gt;la_valid) {
                rc = dt_attr_set(env, dt_obj, la, th);
                if (rc)
                        GOTO(out_unlock, rc);
        }


 &lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="260236" author="aboyko" created="Fri, 20 Dec 2019 12:25:56 +0000"  >&lt;blockquote&gt;&lt;p&gt;this is actually not the locking broken but rather credits calculation (in optimization part)..&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Could you clarify, if we reserve credits for a moment1, and execute operation at moment2, how this relates to calculation optimization? We do it only once per thread.&lt;/p&gt;</comment>
                            <comment id="260237" author="bzzz" created="Fri, 20 Dec 2019 12:29:52 +0000"  >&lt;p&gt;we&apos;d calculate credits like both UIDs aren&apos;t 0 w/o optimization which how it was long before.&lt;/p&gt;</comment>
                            <comment id="260239" author="aboyko" created="Fri, 20 Dec 2019 12:38:40 +0000"  >&lt;p&gt;At old version ofd_preprw_write takes ofd_read_lock and it protects declare+setattr from OST_SETATTR. Now both operation are separate.&lt;/p&gt;</comment>
                            <comment id="260240" author="bzzz" created="Fri, 20 Dec 2019 12:43:04 +0000"  >&lt;p&gt;yes, there was a similar issue recently. in general we can&apos;t rely on locking anymore as we take locks after declaration (MDD does that from the very beginning).&lt;/p&gt;</comment>
                            <comment id="260241" author="aboyko" created="Fri, 20 Dec 2019 12:47:35 +0000"  >&lt;p&gt;set_attr for 0 -&amp;gt; 1892 reserved ~290 credits, it is too much to reserve this number every time&lt;/p&gt;</comment>
                            <comment id="260242" author="bzzz" created="Fri, 20 Dec 2019 12:49:36 +0000"  >&lt;p&gt;not really &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; except a tiny local setup...&lt;/p&gt;</comment>
                            <comment id="260276" author="adilger" created="Fri, 20 Dec 2019 21:22:54 +0000"  >&lt;blockquote&gt;
&lt;p&gt;not really except a tiny local setup...&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Alex, having too-large credit reservation hurts concurrency by consuming all journal credits and blocking other threads in &lt;tt&gt;start_this_handle()&lt;/tt&gt;, unless journal is huge.  Having a very large journal can consume a lot of RAM, which is also not good.  Better to have more efficient journal declarations if possible.&lt;/p&gt;

&lt;p&gt;I guess the other question here is why the BRW write clobbers the UID from setattr?  That is a problem even more important than the credit calculation, as it may leave objects with the wrong ownership == wrong quota. &lt;/p&gt;</comment>
                            <comment id="260284" author="bzzz" created="Sat, 21 Dec 2019 03:50:51 +0000"  >&lt;p&gt;yes, I&apos;m aware about credits a bit. in regular setups the journal is really huge as writes (especially fragmented) require more credits and normally number of threads is high as well. where possible it does makes sense to optimize credits, of course (e.g. &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-4611&quot; title=&quot;too many transaction credits (32279 &amp;gt; 25600) &quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-4611&quot;&gt;&lt;del&gt;LU-4611&lt;/del&gt;&lt;/a&gt;), but we can&apos;t change locking - DoM is the point where we had to unify it with MDT&apos;s order.&lt;/p&gt;</comment>
                            <comment id="260413" author="shadow" created="Fri, 27 Dec 2019 08:45:47 +0000"  >&lt;p&gt;It looks bug don&apos;t related to the credits at all, but it related to the brw internal state.&lt;/p&gt;

&lt;p&gt;based on Alex comment early&lt;br/&gt;
&amp;gt;&amp;gt; ofd_write_attrset(pid 13105) do declaration for 0 -&amp;gt; 0, then another thread(pid 13086) changed uid, and then ofd_write_attrset do ofd_read_lock, setattr.&lt;/p&gt;

&lt;p&gt;it mean - brw should skip any attribute changes during write, but it looks, brw tries to restore original owner (as setattr executed).&lt;/p&gt;</comment>
                            <comment id="260415" author="bzzz" created="Fri, 27 Dec 2019 09:04:13 +0000"  >&lt;p&gt;well, OST_WRITE may and should change credentials as this is the way to initialize UID/GID correctly given objects are precreated with no knowledge who will be using them.&lt;/p&gt;</comment>
                            <comment id="260417" author="shadow" created="Fri, 27 Dec 2019 09:09:28 +0000"  >&lt;p&gt;yes, but this change only for the precreated objects aka inode version == 0. while any setattr will change an inode version (including a first write), so this change should be NOP once inode version greater than zero.&lt;/p&gt;</comment>
                            <comment id="260418" author="adilger" created="Fri, 27 Dec 2019 10:28:49 +0000"  >&lt;p&gt;We don&apos;t use the version to check this, but rather the SUID/SGID bits on the inode, which are set on the inode at precreate time, and cleared when the UID/GID are set. Since there is no lock held across the declare and transaction, it makes sense to reverify these flags in the BRW code under lock before setattr is called. The OST_SETATTR code should also lock the inode at this point for exclusion. That avoids one clobbering the other in a race. &lt;/p&gt;</comment>
                            <comment id="260469" author="gerrit" created="Tue, 31 Dec 2019 15:21:07 +0000"  >&lt;p&gt;Alexandr Boyko (c17825@cray.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/37117&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/37117&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13093&quot; title=&quot;osd_trans_exec_check()) lustre-OST0001: opcode 0: used 8, used now 8, reserved 1 LBUG&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13093&quot;&gt;&lt;del&gt;LU-13093&lt;/del&gt;&lt;/a&gt; osd: fix osd_attr_set race&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 6902db97e01f3815455892d8dd70faf75e9d53a6&lt;/p&gt;</comment>
                            <comment id="261964" author="gerrit" created="Tue, 28 Jan 2020 06:02:28 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/37117/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/37117/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13093&quot; title=&quot;osd_trans_exec_check()) lustre-OST0001: opcode 0: used 8, used now 8, reserved 1 LBUG&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13093&quot;&gt;&lt;del&gt;LU-13093&lt;/del&gt;&lt;/a&gt; osd: fix osd_attr_set race&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 83ac160bd19bcedaa817a419a3912726b9a3bd9d&lt;/p&gt;</comment>
                            <comment id="262021" author="pjones" created="Tue, 28 Jan 2020 15:57:23 +0000"  >&lt;p&gt;Landed for 2.14&lt;/p&gt;</comment>
                            <comment id="298544" author="gerrit" created="Mon, 12 Apr 2021 14:19:38 +0000"  >&lt;p&gt;Etienne AUJAMES (eaujames@ddn.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/43278&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/43278&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13093&quot; title=&quot;osd_trans_exec_check()) lustre-OST0001: opcode 0: used 8, used now 8, reserved 1 LBUG&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13093&quot;&gt;&lt;del&gt;LU-13093&lt;/del&gt;&lt;/a&gt; osd: fix osd_attr_set race&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_12&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 0179daf3bcd73e45deaa922f333dc30af9353984&lt;/p&gt;</comment>
                            <comment id="298735" author="bzzz" created="Wed, 14 Apr 2021 08:33:46 +0000"  >&lt;p&gt;still hitting this with racer...&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="31527">LU-7021</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|i00rb3:</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>