<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:15:29 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-8197] early reply causes replay request deadline decrease</title>
                <link>https://jira.whamcloud.com/browse/LU-8197</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;When calculating timeout to be sent in reply ptlrpc_at_set_reply() uses at_get(&amp;amp;svcpt-&amp;gt;scp_at_estimate)&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;&lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; void ptlrpc_at_set_reply(struct ptlrpc_request *req, &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; flags)
{
...
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (req-&amp;gt;rq_type == PTL_RPC_MSG_ERR &amp;amp;&amp;amp;
            (req-&amp;gt;rq_export == NULL || req-&amp;gt;rq_export-&amp;gt;exp_obd-&amp;gt;obd_recovering))
                lustre_msg_set_timeout(req-&amp;gt;rq_repmsg, 0);
        &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt;
                lustre_msg_set_timeout(req-&amp;gt;rq_repmsg,
                                       at_get(&amp;amp;svcpt-&amp;gt;scp_at_estimate));
...
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Setting timeout that way for replay requests results in replay request deadlines decrease, early timeout and clients&apos; disconnect/reconnect as in example shown below:&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;00:0.0:1455205888.609614:0:4097:0:(client.c:2898:ptlrpc_replay_req()) @@@ REPLAY  req@ffff88001f993400 x1525892057668728/t17179869186(17179869186) o4-&amp;gt;lustre-OST0000-osc-ffff880022d97800@192.168.2.100@tcp:6/4 lens 488/416 e 0 to 0 dl 1455205882 ref 1 fl New:R/4/0 rc 0/0
00000100:00001000:0.0:1455205889.610452:0:4097:0:(client.c:399:ptlrpc_at_recv_early_reply()) @@@ Early reply #1, new deadline in 1s (-5s)  req@ffff88001f993400 x1525892057668728/t17179869186(17179869186) o4-&amp;gt;lustre-OST0000-osc-ffff880022d97800@192.168.2.100@tcp:6/4 lens 488/416 e 1 to 0 dl 1455205890 ref 2 fl Rpc:/4/ffffffff rc 0/-1
00000100:00001000:0.0:1455205900.616950:0:4097:0:(client.c:399:ptlrpc_at_recv_early_reply()) @@@ Early reply #2, new deadline in -4s (-5s)  req@ffff88001f993400 x1525892057668728/t17179869186(17179869186) o4-&amp;gt;lustre-OST0000-osc-ffff880022d97800@192.168.2.100@tcp:6/4 lens 488/416 e 2 to 0 dl 1455205896 ref 2 fl Rpc:/6/ffffffff rc 0/-1
00000100:00000400:0.0:1455205894.611675:0:4097:0:(client.c:1979:ptlrpc_expire_one_request()) @@@ Request sent has timed out for slow reply: [sent 1455205888/real 1455205888]  req@ffff88001f993400 x1525892057668728/t17179869186(17179869186) o4-&amp;gt;lustre-OST0000-osc-ffff880022d97800@192.168.2.100@tcp:6/4 lens 488/416 e 1 to 1 dl 1455205890 ref 2 fl Rpc:X/4/ffffffff rc 0/-1
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Instead in case of recovery the timeout should be calculated similar to way new deadline is calculated for the replay requests in ptlrpc_at_send_early_reply().&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;&lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; ptlrpc_at_send_early_reply(struct ptlrpc_request *req)
{
...
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (req-&amp;gt;rq_export &amp;amp;&amp;amp;
            lustre_msg_get_flags(req-&amp;gt;rq_reqmsg) &amp;amp;
            (MSG_REPLAY | MSG_REQ_REPLAY_DONE | MSG_LOCK_REPLAY_DONE)) {
                /* During recovery, we don&apos;t want to send too many early                                                                                                     
                 * replies, but on the other hand we want to make sure the                                                                                                   
                 * client has enough time to resend &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; the rpc is lost. So                                                                                                   
                 * during the recovery period send at least 4 early replies,                                                                                                 
                 * spacing them every at_extra &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; we can. at_estimate should                                                                                                 
                 * always equal &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt; fixed value during recovery. */
                /* Don&apos;t account request processing time into AT history                                                                                                     
                 * during recovery, it is not service time we need but                                                                                                       
                 * includes also waiting time &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; recovering clients */
                newdl = cfs_time_current_sec() + min(at_extra,
                        req-&amp;gt;rq_export-&amp;gt;exp_obd-&amp;gt;obd_recovery_timeout / 4);

...
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="37177">LU-8197</key>
            <summary>early reply causes replay request deadline decrease</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="1">Fixed</resolution>
                                        <assignee username="tappro">Mikhail Pershin</assignee>
                                    <reporter username="vsaveliev">Vladimir Saveliev</reporter>
                        <labels>
                            <label>patch</label>
                    </labels>
                <created>Tue, 24 May 2016 12:36:32 +0000</created>
                <updated>Fri, 19 May 2017 12:00:10 +0000</updated>
                            <resolved>Wed, 29 Jun 2016 17:19:52 +0000</resolved>
                                                    <fixVersion>Lustre 2.9.0</fixVersion>
                    <fixVersion>Lustre 2.10.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                            <comments>
                            <comment id="153320" author="gerrit" created="Tue, 24 May 2016 12:40:18 +0000"  >&lt;p&gt;Vladimir Saveliev (vladimir_saveliev@xyratex.com) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/20399&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/20399&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8197&quot; title=&quot;early reply causes replay request deadline decrease&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8197&quot;&gt;&lt;del&gt;LU-8197&lt;/del&gt;&lt;/a&gt; ptlrpc: do not reduce replay request deadline&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 278ec48c5a74da279b168d9436c40af900005eb8&lt;/p&gt;</comment>
                            <comment id="153382" author="pjones" created="Tue, 24 May 2016 17:29:11 +0000"  >&lt;p&gt;Mike&lt;/p&gt;

&lt;p&gt;Could you please review this patch?&lt;/p&gt;

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

&lt;p&gt;Peter&lt;/p&gt;</comment>
                            <comment id="157046" author="gerrit" created="Mon, 27 Jun 2016 18:55:56 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;http://review.whamcloud.com/20399/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/20399/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8197&quot; title=&quot;early reply causes replay request deadline decrease&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8197&quot;&gt;&lt;del&gt;LU-8197&lt;/del&gt;&lt;/a&gt; ptlrpc: do not reduce replay request deadline&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: f3ce48ce543791d60326777d95ab2c9c03826965&lt;/p&gt;</comment>
                            <comment id="157296" author="jgmitter" created="Wed, 29 Jun 2016 17:19:52 +0000"  >&lt;p&gt;Landed to master for 2.9.0&lt;/p&gt;</comment>
                            <comment id="174045" author="gerrit" created="Thu, 17 Nov 2016 14:15:55 +0000"  >&lt;p&gt;Niu Yawei (yawei.niu@intel.com) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/23833&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/23833&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8197&quot; title=&quot;early reply causes replay request deadline decrease&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8197&quot;&gt;&lt;del&gt;LU-8197&lt;/del&gt;&lt;/a&gt; ptlrpc: set correct rq_timeout for normal replay reply&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: af6a922f26fce7a6093c2074be3cf0a9f3c61940&lt;/p&gt;</comment>
                            <comment id="178225" author="gerrit" created="Sat, 17 Dec 2016 05:48:27 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/23833/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/23833/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8197&quot; title=&quot;early reply causes replay request deadline decrease&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8197&quot;&gt;&lt;del&gt;LU-8197&lt;/del&gt;&lt;/a&gt; ptlrpc: set correct rq_timeout for normal replay reply&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: db263714fb93fbed2822af775df5fcdb96eab9a2&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                                        </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|hzycof:</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>