<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:08:39 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-7409] llog declares write region that don&apos;t match actually write region later for osd_zfs</title>
                <link>https://jira.whamcloud.com/browse/LU-7409</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;The typical stack trace is as follows:&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;Call Trace:
 [&amp;lt;ffffffff8156bf13&amp;gt;] ? panic+0xac/0x179
 [&amp;lt;ffffffffa0f4e5cc&amp;gt;] ? zio_wait+0x21c/0x3e0 [zfs]
 [&amp;lt;ffffffffa0e7ef87&amp;gt;] ? dmu_tx_dirty_buf+0x247/0x3d0 [zfs]
 [&amp;lt;ffffffffa0f4e2f3&amp;gt;] ? zio_destroy+0xb3/0x170 [zfs]
 [&amp;lt;ffffffffa0e5e55f&amp;gt;] ? dbuf_dirty+0x5f/0x16d0 [zfs]
 [&amp;lt;ffffffff8157156b&amp;gt;] ? _spin_unlock+0x2b/0x40
 [&amp;lt;ffffffffa0e848ea&amp;gt;] ? dnode_rele+0x5a/0xa0 [zfs]
 [&amp;lt;ffffffffa0e61501&amp;gt;] ? dmu_buf_will_dirty+0x91/0x100 [zfs]
 [&amp;lt;ffffffffa0e6cc70&amp;gt;] ? dmu_write+0xa0/0x230 [zfs]
 [&amp;lt;ffffffffa08444c1&amp;gt;] ? osd_write+0x1d1/0x3a0 [osd_zfs]
 [&amp;lt;ffffffffa06b9bdd&amp;gt;] ? dt_record_write+0x3d/0x130 [obdclass]
 [&amp;lt;ffffffffa067955a&amp;gt;] ? llog_osd_write_rec+0xd6a/0x1b70 [obdclass]
 [&amp;lt;ffffffffa06673f6&amp;gt;] ? llog_write_rec+0xb6/0x270 [obdclass]
 [&amp;lt;ffffffffa066c1b8&amp;gt;] ? llog_write+0x298/0x430 [obdclass]
 [&amp;lt;ffffffffa066c1cf&amp;gt;] ? llog_write+0x2af/0x430 [obdclass]
 [&amp;lt;ffffffffa14780a1&amp;gt;] ? record_marker+0x1c1/0x1e0 [mgs]
 [&amp;lt;ffffffffa14779ea&amp;gt;] ? record_start_log+0x38a/0x4a0 [mgs]
 [&amp;lt;ffffffffa14787cf&amp;gt;] ? mgs_write_log_lov+0x38f/0x6b0 [mgs]
 [&amp;lt;ffffffffa148a5c6&amp;gt;] ? mgs_write_log_mdt+0x326/0x1630 [mgs]
 [&amp;lt;ffffffff810c156d&amp;gt;] ? trace_hardirqs_on+0xd/0x10
 [&amp;lt;ffffffffa148d475&amp;gt;] ? mgs_write_log_target+0xb55/0x1980 [mgs]
 [&amp;lt;ffffffff810c156d&amp;gt;] ? trace_hardirqs_on+0xd/0x10
 [&amp;lt;ffffffffa057cc11&amp;gt;] ? libcfs_debug_msg+0x41/0x50 [libcfs]
 [&amp;lt;ffffffffa1471d89&amp;gt;] ? mgs_target_reg+0xa19/0xe50 [mgs]
 [&amp;lt;ffffffffa0940b3f&amp;gt;] ? tgt_request_handle+0x8cf/0x1300 [ptlrpc]
 [&amp;lt;ffffffffa08eb85a&amp;gt;] ? ptlrpc_main+0xdaa/0x18b0 [ptlrpc]
 [&amp;lt;ffffffffa08eaab0&amp;gt;] ? ptlrpc_main+0x0/0x18b0 [ptlrpc]
 [&amp;lt;ffffffff810a728e&amp;gt;] ? kthread+0x9e/0xc0
 [&amp;lt;ffffffff8100c38a&amp;gt;] ? child_rip+0xa/0x20
 [&amp;lt;ffffffff815714b0&amp;gt;] ? _spin_unlock_irq+0x30/0x40
 [&amp;lt;ffffffff8100bb90&amp;gt;] ? restore_args+0x0/0x30
 [&amp;lt;ffffffff810a71f0&amp;gt;] ? kthread+0x0/0xc0
 [&amp;lt;ffffffff8100c380&amp;gt;] ? child_rip+0x0/0x20
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Patch will be submitted shortly&lt;/p&gt;</description>
                <environment></environment>
        <key id="33047">LU-7409</key>
            <summary>llog declares write region that don&apos;t match actually write region later for osd_zfs</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="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="2">Won&apos;t Fix</resolution>
                                        <assignee username="bzzz">Alex Zhuravlev</assignee>
                                    <reporter username="jay">Jinshan Xiong</reporter>
                        <labels>
                            <label>zfs</label>
                    </labels>
                <created>Sat, 7 Nov 2015 23:04:33 +0000</created>
                <updated>Thu, 16 Apr 2020 08:04:47 +0000</updated>
                            <resolved>Thu, 16 Apr 2020 08:04:47 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                            <comments>
                            <comment id="132953" author="gerrit" created="Sat, 7 Nov 2015 23:13:06 +0000"  >&lt;p&gt;Jinshan Xiong (jinshan.xiong@intel.com) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/17085&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/17085&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7409&quot; title=&quot;llog declares write region that don&amp;#39;t match actually write region later for osd_zfs&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7409&quot;&gt;&lt;del&gt;LDEV-239&lt;/del&gt;&lt;/a&gt; osd-zfs: declare exact object region to write&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: d0ee25c74f33cb99a0a7c2564e6112ca267ff06e&lt;/p&gt;</comment>
                            <comment id="132954" author="bzzz" created="Sun, 8 Nov 2015 08:21:26 +0000"  >&lt;p&gt;LLOG can&apos;t declare exact region as actual size is choosed after dmu_tx_assign() - it&apos;s append, essentially.&lt;/p&gt;</comment>
                            <comment id="132955" author="bzzz" created="Sun, 8 Nov 2015 08:23:02 +0000"  >&lt;p&gt;Ricardo developed a patch to allow append declaration, but I have no idea where that patch is. is your zfs build configured with debug enabled?&lt;/p&gt;</comment>
                            <comment id="132958" author="jay" created="Sun, 8 Nov 2015 19:56:52 +0000"  >&lt;p&gt;Yes, this is with debug enabled, and it failed at file system mount time. I saw there is a discussion about llog append therefore this patch is not a final solution, but simply an attempt to pass the check so that I can do some real test. &lt;/p&gt;</comment>
                            <comment id="132960" author="bzzz" created="Sun, 8 Nov 2015 20:10:01 +0000"  >&lt;p&gt;well, then what&apos;s the purpose of the ticket? looks like a duplication of &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-2160&quot; title=&quot;Implement ZFS dmu_tx_hold_append() declarations for llog &quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-2160&quot;&gt;LU-2160&lt;/a&gt; ?&lt;/p&gt;</comment>
                            <comment id="132961" author="jay" created="Sun, 8 Nov 2015 20:22:34 +0000"  >&lt;p&gt;it can allow me to mount my MDS after debug enabled.&lt;/p&gt;</comment>
                            <comment id="132962" author="adilger" created="Sun, 8 Nov 2015 20:35:37 +0000"  >&lt;p&gt;Alex, I recall that the actual patch to the ZFS declare code is not very complex? How hard would it be to recreate that patch?&lt;/p&gt;</comment>
                            <comment id="132970" author="bzzz" created="Mon, 9 Nov 2015 09:28:06 +0000"  >&lt;p&gt;I didn&apos;t see the patch, but in theory - yes. it should be consisting of two pieces:&lt;br/&gt;
1) recognize a special (like -1) offset and reserve slightly more credits like we&apos;re going to write at huge offset resulting in a deep tree&lt;br/&gt;
2) changes to the debugging code so that such a &quot;undefined&quot; write can be satisfied with that special declaration at (1)&lt;/p&gt;

&lt;p&gt;my original point was that we can&apos;t land this patch.&lt;/p&gt;</comment>
                            <comment id="133020" author="adilger" created="Mon, 9 Nov 2015 18:50:24 +0000"  >&lt;p&gt;Does declaring/holding a large range of the file cause ZFS to serialize IO to that region, or is this just accounting and serialization happens elsewhere?  I&apos;m just recalling the case of file creates where the TXG is serialized because (IIRC) you cannot modify a dnode in the same TXG as it is created in.&lt;/p&gt;</comment>
                            <comment id="133022" author="bzzz" created="Mon, 9 Nov 2015 18:56:09 +0000"  >&lt;p&gt;declaration is just accounting and actual serializations happens against specific dbufs at actual write.&lt;/p&gt;</comment>
                            <comment id="133028" author="jay" created="Mon, 9 Nov 2015 19:32:39 +0000"  >&lt;p&gt;This patch can work reasonably well on normal llog because I reserved large enough buffer for cushion, but it has problems with cat log for unlink case. Right now cat log is being used for unlink, changelog, and HSM, but I think the change to these logs are predictable at declare phase?&lt;/p&gt;</comment>
                            <comment id="133032" author="bzzz" created="Mon, 9 Nov 2015 19:41:20 +0000"  >&lt;p&gt;nope, we can&apos;t really predict this as the transactions can take different time and while one thread has been executing a single transaction, another is able to produce many more (each adding a new record). and we may have lots of threads like these. if we try to declare large ranges, then this can result in huge credits. the credits can be multiplied by N depending on the pool&apos;s configuration. ZFS reserves memory for all the credits promised. so that a transaction going to modify few llogs may want to reserve 1,5GB memory. and again we&apos;ve got to run few hundred threads usually. IOW, this approach doesn&apos;t work at scale and we need a proper support in ZFS&apos;s debugging code to understand append case. as a short term solution, we don&apos;t use debugging.&lt;/p&gt;</comment>
                            <comment id="133040" author="jay" created="Mon, 9 Nov 2015 20:16:52 +0000"  >&lt;p&gt;thanks for explanation, I see it now. It looks like ZFS temporarily reserves arc buffer for the data to be written. However, in our case for append, the reserved space are counted multiple times in the same txg, is it possible for us to add some code in dmu_tx_try_assign() and count it more accurately?&lt;/p&gt;
</comment>
                            <comment id="133041" author="bzzz" created="Mon, 9 Nov 2015 20:20:52 +0000"  >&lt;p&gt;I think it&apos;s better and simpler to modify ZFS instead. especially given Brian B. wasn&apos;t against.&lt;/p&gt;</comment>
                            <comment id="267796" author="bzzz" created="Thu, 16 Apr 2020 08:04:47 +0000"  >&lt;p&gt;we don&apos;t plan to configure ZFS with debugging enabled, so this shouldn&apos;t be an issue&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                            <outwardlinks description="duplicates">
                                        <issuelink>
            <issuekey id="12251">LU-2160</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="33049">LU-7408</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|hzxsjb:</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>