<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:09:01 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-7450] call dcb commit callback in osd_trans_stop()</title>
                <link>https://jira.whamcloud.com/browse/LU-7450</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;In osd_trans_stop()&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;     } else {
                osd_trans_stop_cb(oh, th-&amp;gt;th_result);
                OBD_FREE_PTR(oh);
     }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;It should call dcb commit callback as well, because the dcb callback is registered before transaction start().  Otherwise once error happens before transaction start, local commit callback will never be called, which will stop the llog cancellation, and cumulate a lot of update logs, cause long time recovery.  This issue might be related with endless recovery found in soak-test.&lt;/p&gt;</description>
                <environment></environment>
        <key id="33208">LU-7450</key>
            <summary>call dcb commit callback in osd_trans_stop()</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="1" iconUrl="https://jira.whamcloud.com/images/icons/priorities/blocker.svg">Blocker</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="di.wang">Di Wang</assignee>
                                    <reporter username="di.wang">Di Wang</reporter>
                        <labels>
                    </labels>
                <created>Thu, 19 Nov 2015 05:44:12 +0000</created>
                <updated>Mon, 14 Dec 2015 05:30:27 +0000</updated>
                            <resolved>Mon, 14 Dec 2015 05:30:27 +0000</resolved>
                                    <version>Lustre 2.8.0</version>
                                    <fixVersion>Lustre 2.8.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                            <comments>
                            <comment id="133901" author="bzzz" created="Thu, 19 Nov 2015 05:53:28 +0000"  >&lt;p&gt;this is a change to the current api.. why do you need that?&lt;/p&gt;</comment>
                            <comment id="133902" author="di.wang" created="Thu, 19 Nov 2015 05:57:54 +0000"  >&lt;p&gt;because dcb commit callback is registered before trans_start(), if it fails before trans_start(), then in osd_trans_stop will never call commit callback, i.e. we can not remove top thandle from the commit list. then the update log will be built up. cause long time recover. &lt;/p&gt;

&lt;p&gt;Btw: what do you mean change API?&lt;/p&gt;</comment>
                            <comment id="133903" author="bzzz" created="Thu, 19 Nov 2015 06:05:05 +0000"  >&lt;p&gt;hm, but if a transaction wasn&apos;t started, then no llog regords were added? and thandle should be released in top_trans_stop() ? this is what the current implementation does.&lt;/p&gt;

&lt;p&gt;an api isn&apos;t just a set of methods, but also some rules.&lt;/p&gt;</comment>
                            <comment id="133904" author="gerrit" created="Thu, 19 Nov 2015 06:07:29 +0000"  >&lt;p&gt;wangdi (di.wang@intel.com) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/17268&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/17268&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7450&quot; title=&quot;call dcb commit callback in osd_trans_stop()&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7450&quot;&gt;&lt;del&gt;LU-7450&lt;/del&gt;&lt;/a&gt; osd: add commit_callback in osd_trans_stop&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 47a3ee68426dbe2dcb472b9758a1fa93bc1ade66&lt;/p&gt;</comment>
                            <comment id="133905" author="di.wang" created="Thu, 19 Nov 2015 06:09:11 +0000"  >&lt;p&gt;No, the top_handle is added to commit list before transaction start. we need to remove this top_handle from commit list. which is the reason we need commit callback. &lt;/p&gt;</comment>
                            <comment id="133906" author="di.wang" created="Thu, 19 Nov 2015 06:12:00 +0000"  >&lt;p&gt;Hmm, we may be able to do this in top_trans_stop, if you insist not changing osd_trans_stop().&lt;/p&gt;</comment>
                            <comment id="133907" author="bzzz" created="Thu, 19 Nov 2015 06:15:16 +0000"  >&lt;p&gt;yes, exactly. logically - the transaction wasn&apos;t started, no any changes were made to the filesystem. all we need is just to release resources? this is what OSDs do now and I tend to think it&apos;s correct. this way TOP will be following the API and it&apos;s rules.&lt;/p&gt;</comment>
                            <comment id="136168" author="gerrit" created="Sun, 13 Dec 2015 21:57:57 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;http://review.whamcloud.com/17268/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/17268/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7450&quot; title=&quot;call dcb commit callback in osd_trans_stop()&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7450&quot;&gt;&lt;del&gt;LU-7450&lt;/del&gt;&lt;/a&gt; osd: call commit_callback if no write updates&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: c965fc8af8641cc810f6ff5c01cefceeaa79cb74&lt;/p&gt;</comment>
                            <comment id="136184" author="pjones" created="Mon, 14 Dec 2015 05:30:27 +0000"  >&lt;p&gt;Landed for 2.8&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                                        </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="31450">LU-6994</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </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|hzxtif:</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>