<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:37:37 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-3869] landing HSM broke a clustered samba support and NFS v4</title>
                <link>https://jira.whamcloud.com/browse/LU-3869</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;As i see, HSM patch have a land LL_IOC_SET_LEASE support.&lt;br/&gt;
but it&apos;s support invalid and don&apos;t supported NFS v4 lease functionality and clustered samba.&lt;/p&gt;

&lt;p&gt;first of all, if lease conflict found - we need notify an application via sending an signal to release a lease, but implementation do NOTHING in that area.&lt;br/&gt;
second, lease lock should be released after some timeout unconditionally and take to new owner.&lt;/p&gt;

&lt;p&gt;current implementation do NOTHING for both, so broke both NFS v4 and clustered samba.&lt;/p&gt;</description>
                <environment></environment>
        <key id="20741">LU-3869</key>
            <summary>landing HSM broke a clustered samba support and NFS v4</summary>
                <type id="7" iconUrl="https://jira.whamcloud.com/images/icons/issuetypes/task_agile.png">Technical task</type>
                            <parent id="20020">LU-3647</parent>
                                    <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="6">Not a Bug</resolution>
                                        <assignee username="wc-triage">WC Triage</assignee>
                                    <reporter username="shadow">Alexey Lyashkov</reporter>
                        <labels>
                    </labels>
                <created>Sat, 31 Aug 2013 08:41:54 +0000</created>
                <updated>Wed, 4 Sep 2013 16:19:43 +0000</updated>
                            <resolved>Wed, 4 Sep 2013 16:19:43 +0000</resolved>
                                    <version>Lustre 2.5.0</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                            <comments>
                            <comment id="65495" author="shadow" created="Sat, 31 Aug 2013 15:15:36 +0000"  >&lt;p&gt;to reference&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;   When a process (the &quot;lease breaker&quot;) performs an open(2) or
       truncate(2) that conflicts with a lease established via F_SETLEASE,
       the system call is blocked by the kernel and the kernel notifies the
       lease holder by sending it a signal (SIGIO by default).  The lease
       holder should respond to receipt of this signal by doing whatever
       cleanup is required in preparation for the file to be accessed by
       another process (e.g., flushing cached buffers) and then either
       remove or downgrade its lease.  A lease is removed by performing an
       F_SETLEASE command specifying arg as F_UNLCK.  If the lease holder
       currently holds a write lease on the file, and the lease breaker is
       opening the file for reading, then it is sufficient for the lease
       holder to downgrade the lease to a read lease.  This is done by
       performing an F_SETLEASE command specifying arg as F_RDLCK.

       If the lease holder fails to downgrade or remove the lease within the
       number of seconds specified in /proc/sys/fs/lease-break-time then the
       kernel forcibly removes or downgrades the lease holder&apos;s lease.
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I think someone should be read a linux man page more carefully.&lt;/p&gt;
</comment>
                            <comment id="65496" author="jay" created="Sat, 31 Aug 2013 16:53:07 +0000"  >&lt;p&gt;Right now, lustre release is only for HSM use so it didn&apos;t implement Linux lease semantics exactly. The framework is there so it can be easily extended to linux semantic by adding notification mechanism in ll_md_blocking_lease_ast() to send signal to lease holder.&lt;/p&gt;

&lt;p&gt;However the major difficult is in the lease request side because there is no callback to Lustre in linux kernel, in other words, linux lease is a pure VFS stuff. This implies that it&apos;s impossible to use Lustre lease via standard lease interfaces in libc.&lt;/p&gt;

&lt;p&gt;If you have resources on your side, you can finish the work by composing a kernel patch to add lease callbacks to file system and finish notification interfaces in ll_md_blocking_lease_ast().&lt;/p&gt;</comment>
                            <comment id="65746" author="adilger" created="Wed, 4 Sep 2013 16:19:43 +0000"  >&lt;p&gt;Per discussion between Oleg and Shadow, this is not actually a bug.&lt;/p&gt;</comment>
                    </comments>
                    <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|hzvzsn:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>10041</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>