<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:44:35 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-11520] separate tests and bugfixes</title>
                <link>https://jira.whamcloud.com/browse/LU-11520</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;I already made this proposal several times that landing bugfixes in series of 2 patches of a test and a fix on top on the test is a good idea because:&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;it explicitly shows you the test actually reproduces a problem, not because we trust a developer;&lt;/li&gt;
	&lt;li&gt;you can revert only a fix at some later point and confirm the test still able to reproduce some problem;&lt;br/&gt;
&#160;&lt;br/&gt;
however there were several objections:&lt;/li&gt;
	&lt;li&gt;it will not work with git bisect;&lt;/li&gt;
	&lt;li&gt;malloo does not (and not supposed to) set +1 if test failure occurs;&lt;br/&gt;
&#160;&lt;br/&gt;
The proposal which seems to resolve these objections is to add a tag/label &#8220;mustfail&#8221; to the commit message of the test patch&#160;and the malloo is supposed to consider this particular failure as a success (as well as the successful test as a failure) and to set +1&#160;(-1). at the same time the fix sitting on top already does not have this tag/label and therefore the test already must pass.&lt;br/&gt;
&#160;&lt;br/&gt;
the proposal was discussed with Andreas o the last LAD and we agreed that it would work, thus filing the ticket for it.&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="53602">LU-11520</key>
            <summary>separate tests and bugfixes</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="egryaznova">Elena Gryaznova</assignee>
                                    <reporter username="vitaly_fertman">Vitaly Fertman</reporter>
                        <labels>
                    </labels>
                <created>Mon, 15 Oct 2018 15:08:41 +0000</created>
                <updated>Thu, 25 Apr 2019 22:09:00 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>10</watches>
                                                                            <comments>
                            <comment id="235237" author="adilger" created="Tue, 23 Oct 2018 00:22:04 +0000"  >&lt;p&gt;I think this is fairly reasonable, and would work for a majority of cases, except where the test causes a node to crash or otherwise hang and not complete the test. &lt;/p&gt;

&lt;p&gt;Could you submit a patch pair as an example to show how this will work?  I don&apos;t think there should be anything needed except e.g. &lt;tt&gt;Test-Parameters: envdefinitions=CONF_SANITY_MUSTFAIL=32c&lt;/tt&gt; or similar, and machinery in test-framework to make this happen. It would need to be specific to each test script, to avoid the eventual future case where there are two different tests with the same number that have the &lt;tt&gt;mustfail&lt;/tt&gt; functionality. &lt;/p&gt;</comment>
                            <comment id="235411" author="diff" created="Wed, 24 Oct 2018 13:29:17 +0000"  >&lt;p&gt;Probably, something like &lt;tt&gt;envdefinitions=MUSTFAIL=conf-sanity/32c&lt;/tt&gt; would be more handy. This construction can be unwrapped into internal variable like &lt;tt&gt;c MUSTFAIL_conf_sanity_32c&lt;/tt&gt; to be checked before test run.&lt;/p&gt;</comment>
                            <comment id="236415" author="vitaly_fertman" created="Tue, 6 Nov 2018 12:03:09 +0000"  >&lt;blockquote&gt;
&lt;p&gt;I think this is fairly reasonable, and would work for a majority of cases, except where the test causes a node to crash or otherwise hang and not complete the test.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;why? the test system while stopping the system, gathering the test results, is supposed to check if it is marked as failing and report the success.&lt;/p&gt;</comment>
                            <comment id="236490" author="adilger" created="Tue, 6 Nov 2018 20:48:17 +0000"  >&lt;blockquote&gt;
&lt;p&gt;except where the test causes a node to crash or otherwise hang and not complete the test.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;The problem is that if the client or server node crashes then the rest of that test script will be aborted.  Also, the pass/fail decision is made at the test script level , there is no mechanism (AFAIK) for the external autotest environment to understand whether this specific test failure should actually be considered a pass.&lt;/p&gt;

&lt;p&gt;In the meantime, I think we can make progress with this and handle the majority of patches which do not induce a crash on a client or server node, and further improvements can be implemented at a later time to handle the whole-node failure case.&lt;/p&gt;</comment>
                            <comment id="236494" author="vitaly_fertman" created="Tue, 6 Nov 2018 22:04:41 +0000"  >&lt;p&gt;the full solution seems to introduce this logic at the external level to cover those cases as well, and the t-f solution will be useless or at least redundant.&lt;/p&gt;

&lt;p&gt;could we estimate the amount of work needed to introduce it at the autotest environment level now, it is probably worth to follow this way immediately.&lt;/p&gt;</comment>
                            <comment id="236507" author="pjones" created="Wed, 7 Nov 2018 01:46:04 +0000"  >&lt;p&gt;..and by &quot;immediately&quot; you mean &quot;at the start of the 2.13 release cycle&quot;, right? &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="236533" author="vitaly_fertman" created="Wed, 7 Nov 2018 09:42:45 +0000"  >&lt;p&gt;I meant just a technical approach, not planning. so no milestones &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="236548" author="pjones" created="Wed, 7 Nov 2018 13:38:55 +0000"  >&lt;p&gt;He ok - thanks for confirming &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="238555" author="adilger" created="Thu, 13 Dec 2018 19:44:49 +0000"  >&lt;p&gt;As discussed on this week&apos;s LWG call, it makes sense to implement the simple change to parse the &lt;tt&gt;MUSTFAIL&lt;/tt&gt; parameter in &lt;tt&gt;build_test_filter()&lt;/tt&gt; first (either as a simple list of test numbers similar to &lt;tt&gt;ONLY&lt;/tt&gt;, &lt;tt&gt;EXCEPT&lt;/tt&gt;, and &lt;tt&gt;ALWAYS_EXCEPT&lt;/tt&gt;, or including the test name as &lt;a href=&quot;https://jira.whamcloud.com/secure/ViewProfile.jspa?name=diff&quot; class=&quot;user-hover&quot; rel=&quot;diff&quot;&gt;diff&lt;/a&gt; suggests like &lt;tt&gt;conf-sanity/32a&lt;/tt&gt;) to set &lt;tt&gt;MUSTFAIL_&amp;lt;test_number&amp;gt;&lt;/tt&gt; for that script, and then checking the result in &lt;tt&gt;run_one_logged()&lt;/tt&gt; or maybe &lt;tt&gt;pass()&lt;/tt&gt; to consider a failure of this subtest as &lt;tt&gt;PASS&lt;/tt&gt;.  &lt;/p&gt;

&lt;p&gt;Because we run tests in multiple different configurations (e.g. ldiskfs vs. ZFS, DNE vs. none, Ubuntu vs. RHEL) and the test failures may not be applicable to all configurations, I don&apos;t think we can &lt;b&gt;require&lt;/b&gt; that the test fails with &lt;tt&gt;MUSTFAIL&lt;/tt&gt; set in order for it to be considered a pass.  I guess one option would be to add a similar &lt;tt&gt;SHOULDFAIL&lt;/tt&gt; parameter that allows a conditional failure, while &lt;tt&gt;MUSTFAIL&lt;/tt&gt; should fail in all test configurations?&lt;/p&gt;

&lt;p&gt;Implementing this as part of the autotest framework will take more time, and since many failures are not crash/timeout failures we can still get benefits from having this support in &lt;tt&gt;test-framework.sh&lt;/tt&gt;.&lt;/p&gt;</comment>
                            <comment id="240798" author="egryaznova" created="Mon, 28 Jan 2019 13:52:53 +0000"  >&lt;p&gt;MUSTFAIL can be implemented via parameter in build_test_filter(), yes (this also needs the parameter like EXPECTED_FAILURE_IS, which contains for example the particular string in stdout or in nodes logs). But this implementation does cover the cases like crashes or timeouts because t-f does not handle such cases atall and such cases can be tracked only on automation side (not t-f).&lt;/p&gt;

&lt;p&gt;So, I do not think that it is reasonable to split such feature into 2 parts: t-f implementation and automation implementation.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="53964">LU-11642</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|i0047r:</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>