<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:46:14 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-11706] create a lustre tunable to enable/disable experimental features</title>
                <link>https://jira.whamcloud.com/browse/LU-11706</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;The proposal is to make a sysfs/procfs accessible flag for &quot;experimental features&quot; whatever is considered not stable enough for use in production at current state of development . &lt;/p&gt;</description>
                <environment></environment>
        <key id="54125">LU-11706</key>
            <summary>create a lustre tunable to enable/disable experimental features</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.whamcloud.com/images/icons/priorities/major.svg">Major</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="2">Won&apos;t Fix</resolution>
                                        <assignee username="zam">Alexander Zarochentsev</assignee>
                                    <reporter username="zam">Alexander Zarochentsev</reporter>
                        <labels>
                            <label>patch</label>
                    </labels>
                <created>Tue, 27 Nov 2018 15:10:10 +0000</created>
                <updated>Fri, 9 Apr 2021 20:00:26 +0000</updated>
                            <resolved>Fri, 9 Apr 2021 20:00:26 +0000</resolved>
                                    <version>Upstream</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>7</watches>
                                                                            <comments>
                            <comment id="237537" author="adilger" created="Tue, 27 Nov 2018 16:43:23 +0000"  >&lt;p&gt;It probably makes more sense to have a per-feature tunable. Otherwise, it wouldn&apos;t be possible to enable some of the experimental features without enabling all of them. &lt;/p&gt;

&lt;p&gt;I think in some cases, it may be desirable to disable features even long after they are not experimental, for administrative reasons or to maintain compatibility with older clients. &lt;br/&gt;
When you speak of features, do you mean being able to turn on/off &lt;tt&gt;OBD_CONNECT_&amp;#42;&lt;/tt&gt; flags, or something else?  Some features (e.g. DNE1/2) have /proc tunables to enable and disable their usage, but not all of them.&lt;/p&gt;

&lt;p&gt;Do you have a specific feature in mind?&lt;/p&gt;</comment>
                            <comment id="237539" author="pjones" created="Tue, 27 Nov 2018 16:49:49 +0000"  >&lt;p&gt;I am wondering if this suggestion is driven from features landed under our former process? Nowadays we maintain topic branches to keep larger features isolated from production releases until they are deemed ready.&#160;&lt;/p&gt;</comment>
                            <comment id="237541" author="gerrit" created="Tue, 27 Nov 2018 17:29:04 +0000"  >&lt;p&gt;Alexander Zarochentsev (c17826@cray.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/33729&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/33729&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11706&quot; title=&quot;create a lustre tunable to enable/disable experimental features&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11706&quot;&gt;&lt;del&gt;LU-11706&lt;/del&gt;&lt;/a&gt; libcfs: enable_experimental_features&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 1cc1f15bd044ab1d97b4ece2141c36ebbc5d60d1&lt;/p&gt;</comment>
                            <comment id="237728" author="zam" created="Fri, 30 Nov 2018 08:53:40 +0000"  >&lt;p&gt;Peter,&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;I am wondering if this suggestion is driven from features landed under our former process? &lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;probably yes, it is like tech preview features in 2.7. There was no mechanism to restrict users from using  striped dirs, for example.  If your current process does not include &quot;preview&quot; features into releases, this &quot;enable_experimental_features&quot; flag is not needed, at least in this &quot;global&quot; form.&lt;/p&gt;

&lt;p&gt;Andreas,&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;When you speak of features, do you mean being able to turn on/off OBD_CONNECT_* flags, or something else?&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I guess it depends on what feature needs to disabled/enabled. I submitted to gerrit only a generic part of the patch, b/c whamcloud may have a different view which features are  experimental. It did include disabling for cross-target renames due to &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11549&quot; title=&quot;Unattached inodes after 3 min racer run.&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11549&quot;&gt;&lt;del&gt;LU-11549&lt;/del&gt;&lt;/a&gt; and &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11446&quot; title=&quot;ldiskfs inodes nlink mismatch with DNE&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11446&quot;&gt;LU-11446&lt;/a&gt; .&lt;/p&gt;</comment>
                            <comment id="237772" author="adilger" created="Fri, 30 Nov 2018 21:52:37 +0000"  >&lt;blockquote&gt;
&lt;p&gt;There was no mechanism to restrict users from using striped dirs, for example.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;But there &lt;b&gt;is&lt;/b&gt; a mechanism to restrict users from using striped dirs, and it was disabled by default, so only root could use it.  It has been available since 2.4.0 (patch &lt;a href=&quot;http://review.whamcloud.com/5442&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/5442&lt;/a&gt;).  That is:&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;lctl get_param mdt.*.enable*
mdt.myth-MDT0000.enable_remote_dir=0
mdt.myth-MDT0000.enable_remote_dir_gid=0
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;This allows enabling/disabling remote/striped directories, and if it is enabled only allow specific groups (e.g. &lt;tt&gt;root&lt;/tt&gt; or &lt;tt&gt;admin&lt;/tt&gt; or &lt;tt&gt;wheel&lt;/tt&gt;) to use it.  In 2.12 there is a separate &lt;tt&gt;mdt.&amp;#42;.enable_striped_dir&lt;/tt&gt; tunable (patch &lt;a href=&quot;https://review.whamcloud.com/24498&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/24498&lt;/a&gt;), though it is changed to allow remote and striped directories for regular users by default.&lt;/p&gt;

&lt;p&gt;I&apos;m not against adding tunables to enable/disable specific features, but I think having a generic &quot;experimental&quot; tunable doesn&apos;t make sense - it doesn&apos;t provide users/admins any idea what it is protecting, and it is too coarse-grained to be useful to ever enable it.  If you want to add a tunable to disable cross-MDT rename (at least to return &lt;tt&gt;-EXDEV&lt;/tt&gt; in that case, so that userspace will copy the file itself) then I&apos;d be OK with that.  Of course, fixing the actual bugs would be better, and there is definitely a fairly clear proposal in &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11446&quot; title=&quot;ldiskfs inodes nlink mismatch with DNE&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11446&quot;&gt;LU-11446&lt;/a&gt; on how that could be done.&lt;/p&gt;</comment>
                            <comment id="298433" author="adilger" created="Fri, 9 Apr 2021 20:00:26 +0000"  >&lt;p&gt;I think it is better to have clear tunables for each feature separately. As you wrote, what is an &quot;experimental feature&quot; depends on the release and may change over time, so it is better to have a tunable for each one separately. This is also useful even after a release, since features that may appear stable during testing or under some workloads may expose problems under other workloads even long afterward. Having a configuration tunable available to turn a feature off at runtime is always nice to have to allow a system to keep running in that case. &lt;/p&gt;

&lt;p&gt;The only thing that I could think of that might be worthwhile to have a &quot;generic&quot; interface for would be to turn off &quot;OBD_CONNECT&quot; feature flags at mount time or runtime. That would allow easier testing of feature interop, and give a built-in way to disable many features covered by those flags. It wouldn&apos;t be enough to cover all features, but might be useful. &lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="53452">LU-11446</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="53673">LU-11549</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|i006zb:</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>