<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:16:43 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-15250] RPC Replay Signature</title>
                <link>https://jira.whamcloud.com/browse/LU-15250</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;From &lt;a href=&quot;https://bugzilla.lustre.org/show_bug.cgi?id=18657&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugzilla.lustre.org/show_bug.cgi?id=18657&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In order to prevent clients from incorrectly replaying saved RPC operations after an server failure, it would be desirable to generate a signature of the RPC &lt;b&gt;request&lt;/b&gt; on the MDS before replying to the client.  The &lt;b&gt;request&lt;/b&gt; signature generated on the server would be stored by the client in the saved RPC request that would be sent to the server again in case of recovery, and the signature could be verified by the server after restart to ensure that the RPC is still valid for replay (correct XID for ordering, etc).&lt;/p&gt;

&lt;p&gt;Since the client will typically update the RPC request after receiving the server reply (to insert the transno, file layout, etc.), the MDS needs to &quot;preformat&quot; the RPC request in the same way that the client will later send it for replay before generating the signature.&lt;/p&gt;

&lt;p&gt;Since only the server will need to generate and verify the RPC signature, it does not need to use a public-key signature, it may be enough to generate a local key periodically that is persistently stored on the target, and the prior key should be kept for a few minutes (subject to XID aging limitations, &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-3290&quot; title=&quot;disallow ptlrpc RPCs with old client XIDs&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-3290&quot;&gt;LU-3290&lt;/a&gt;) to ensure that a server crash shortly after key generation does not prevent slightly older RPCs from being replayed.&lt;/p&gt;

&lt;p&gt;This would also require the changes from Simplified Interoperability (&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5703&quot; title=&quot;Quiesce client mountpoints from the server&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5703&quot;&gt;LU-5703&lt;/a&gt; has an old presentation on this) to allow clients to reopen files on the MDS by FID instead of RPC replay, so that these long-lived open RPCs do not need to be saved explicitly on the client for every open file handle, and do not the exact RPC format for replay, which may not work with older servers and reduces memory usage.&lt;/p&gt;</description>
                <environment></environment>
        <key id="67241">LU-15250</key>
            <summary>RPC Replay Signature</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</priority>
                        <status id="1" iconUrl="https://jira.whamcloud.com/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="wc-triage">WC Triage</assignee>
                                    <reporter username="adilger">Andreas Dilger</reporter>
                        <labels>
                    </labels>
                <created>Thu, 18 Nov 2021 22:33:15 +0000</created>
                <updated>Fri, 19 Nov 2021 01:21:40 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                            <comments>
                            <comment id="318566" author="paf0186" created="Thu, 18 Nov 2021 22:52:53 +0000"  >&lt;p&gt;Sorry, I misunderstood the use case slightly.&#160; Disregard my previous.&lt;/p&gt;</comment>
                            <comment id="318568" author="paf0186" created="Thu, 18 Nov 2021 22:54:21 +0000"  >&lt;p&gt;What information will this signature capture that is not already in the RPC itself when replayed?&#160; How will it aid in making this choice?&#160; (FYI, the bugzilla link doesn&apos;t work for me)&lt;/p&gt;</comment>
                            <comment id="318582" author="adilger" created="Fri, 19 Nov 2021 00:11:59 +0000"  >&lt;p&gt;The bugzilla link no longer works, since bugzilla.lustre.org has been taken offline a while ago, so I created this ticket to capture information that was stored there and referenced by the &lt;a href=&quot;https://wiki.lustre.org/Projects&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Lustre Projects&lt;/a&gt; page.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="18739">LU-3290</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="26823">LU-5703</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                    <customfield id="customfield_10020" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Bugzilla ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>18657.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <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|i02abz:</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>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>