<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Wed, Aug 22, 2018 at 5:54 PM Shyam Ranganathan &lt;<a href="mailto:srangana@redhat.com">srangana@redhat.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 08/18/2018 12:45 AM, Pranith Kumar Karampuri wrote:<br>
&gt; <br>
&gt; <br>
&gt; On Tue, Aug 14, 2018 at 5:29 PM Shyam Ranganathan &lt;<a href="mailto:srangana@redhat.com" target="_blank">srangana@redhat.com</a><br>
&gt; &lt;mailto:<a href="mailto:srangana@redhat.com" target="_blank">srangana@redhat.com</a>&gt;&gt; wrote:<br>
&gt; <br>
&gt;     On 08/09/2018 01:24 AM, Pranith Kumar Karampuri wrote:<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt; On Thu, Aug 9, 2018 at 1:25 AM Shyam Ranganathan<br>
&gt;     &lt;<a href="mailto:srangana@redhat.com" target="_blank">srangana@redhat.com</a> &lt;mailto:<a href="mailto:srangana@redhat.com" target="_blank">srangana@redhat.com</a>&gt;<br>
&gt;     &gt; &lt;mailto:<a href="mailto:srangana@redhat.com" target="_blank">srangana@redhat.com</a> &lt;mailto:<a href="mailto:srangana@redhat.com" target="_blank">srangana@redhat.com</a>&gt;&gt;&gt; wrote:<br>
&gt;     &gt;<br>
&gt;     &gt;     Maintainers,<br>
&gt;     &gt;<br>
&gt;     &gt;     The following thread talks about a merge during a merge<br>
&gt;     lockdown, with<br>
&gt;     &gt;     differing view points (this mail is not to discuss the view<br>
&gt;     points).<br>
&gt;     &gt;<br>
&gt;     &gt;     The root of the problem is that we leave the current process<br>
&gt;     to good<br>
&gt;     &gt;     faith. If we have a simple rule that we will not merge<br>
&gt;     anything during a<br>
&gt;     &gt;     lock down period, this confusion and any future repetitions of<br>
&gt;     the same<br>
&gt;     &gt;     would not occur.<br>
&gt;     &gt;<br>
&gt;     &gt;     I propose that we follow the simpler rule, and would like to hear<br>
&gt;     &gt;     thoughts around this.<br>
&gt;     &gt;<br>
&gt;     &gt;     This also means that in the future, we may not need to remove<br>
&gt;     commit<br>
&gt;     &gt;     access for other maintainers, as we do *not* follow a good<br>
&gt;     faith policy,<br>
&gt;     &gt;     and instead depend on being able to revert and announce on the<br>
&gt;     threads<br>
&gt;     &gt;     why we do so.<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt; I think it is a good opportunity to establish guidelines and<br>
&gt;     process so<br>
&gt;     &gt; that we don&#39;t end up in this state in future where one needs to lock<br>
&gt;     &gt; down the branch to make it stable. From that p.o.v. discussion on this<br>
&gt;     &gt; thread about establishing a process for lock down probably doesn&#39;t add<br>
&gt;     &gt; much value. My personal opinion for this instance at least is that<br>
&gt;     it is<br>
&gt;     &gt; good that it was locked down. I tend to forget things and not<br>
&gt;     having the<br>
&gt;     &gt; access to commit helped follow the process automatically :-).<br>
&gt; <br>
&gt;     The intention is that master and release branches are always maintained<br>
&gt;     in good working order. This involves, tests and related checks passing<br>
&gt;     *always*.<br>
&gt; <br>
&gt;     When this situation is breached, correcting it immediately is better<br>
&gt;     than letting it build up, as that would entail longer times and more<br>
&gt;     people to fix things up.<br>
&gt; <br>
&gt;     In an ideal world, if nightly runs fail, the next thing done would be to<br>
&gt;     examine patches that were added between the 2 runs, and see if they are<br>
&gt;     the cause for failure, and back them out.<br>
&gt; <br>
&gt;     Hence calling to backout patches is something that would happen more<br>
&gt;     regularly in the future if things are breaking.<br>
&gt; <br>
&gt; <br>
&gt; I&#39;m with you till here.<br>
&gt;  <br>
&gt; <br>
&gt; <br>
&gt;     Lock down may happen if 2 consecutive nightly builds fail, so as to<br>
&gt;     rectify the situation ASAP, and then move onto other work.<br>
&gt; <br>
&gt;     In short, what I wanted to say is that preventing lock downs in the<br>
&gt;     future, is not a state we aspire for. <br>
&gt; <br>
&gt; <br>
&gt; What are the problems you foresee in aspiring for preventing lock downs<br>
&gt; for everyone?<br>
<br>
Any project will have test failures, when things are put together and<br>
exercised in different environments.<br>
<br>
For us, these environments, at present, are nightly regression on<br>
centOS7, Brick-mux enabled regression, lcov, clang and in the future we<br>
hope to increase this to ASAN, performance baselines, memory leak<br>
checks, etc.<br>
<br>
The whole intent of adding such tests and checks to the test pipeline,<br>
is to ensure that regressions to the good state, are caught early and<br>
regularly.<br>
<br>
When these tests and checks actually show up errors/issues, is when we<br>
need to pay attention to the same and focus first on getting us back on<br>
track.<br>
<br>
At the above juncture, is when we need the lockdown or commit blackout<br>
(or whatever we want to call it). The intent is to ensure that we do not<br>
add more patches and further destabilize the branch, but stabilize it<br>
first and then get other changes in later.<br>
<br>
There is a certain probability with which the above event will happen,<br>
and that can be reduced, if we are more stringent in our development<br>
practices, and ensuring code health is maintained (both by more checks<br>
in smoke and more tests per patch or even otherwise, and also by keener<br>
reviews and other such means).<br>
<br>
We also need to be proactive to, monitoring and fixing, failures in the<br>
tests, so that we can address them quickly, rather than someone calling<br>
out a lockdown.<br>
<br>
Now, is your question that we should avoid the above state altogether?<br>
Or, how to retain commit access for all, but still have such states as<br>
above, where only patches that help stabilization are merged?<br>
<br>
For the former, I do not have an answer, we can reduce the event<br>
probability as stated above, but it will never disappear (which means<br>
all those tests are pretty much of no value and needs to improve).<br></blockquote><div><br></div><div>Depends on how frequently it will happen. Let us agree on some tolerance level and get the maintainer/developer to address that particular test before any other patches in that component can be allowed to be merged. So per component lock-down instead of whole project lock-down. <br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
For the latter, it circles back to what I stated in earlier responses,<br>
on good faith versus process, and we would like to stick to a process<br>
and keep the commit list short, rather than use good faith to avoid any<br>
inadvertent &quot;I missed the mail&quot; cases.<br>
<br>
&gt;  <br>
&gt; <br>
&gt;     Lock downs may/will happen, it is<br>
&gt;     done to get the branches stable quicker, than spend long times trying to<br>
&gt;     find what caused the instability in the first place.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt;  <br>
&gt; <br>
&gt; <br>
&gt;     &gt;  <br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt;     Please note, if there are extraneous situations (say reported<br>
&gt;     security<br>
&gt;     &gt;     vulnerabilities that need fixes ASAP) we may need to loosen up the<br>
&gt;     &gt;     stringency, as that would take precedence over the lock down.<br>
&gt;     These<br>
&gt;     &gt;     exceptions though, can be called out and hence treated as such.<br>
&gt;     &gt;<br>
&gt;     &gt;     Thoughts?<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt; This is again my personal opinion. We don&#39;t need to merge patches<br>
&gt;     in any<br>
&gt;     &gt; branch unless we need to make an immediate release with that<br>
&gt;     patch. For<br>
&gt;     &gt; example if there is a security issue reported we *must* make a release<br>
&gt;     &gt; with the fix immediately so it makes sense to merge it and do the<br>
&gt;     release.<br>
&gt; <br>
&gt;     Agree, keeps the rule simple during lock down and not open to<br>
&gt;     interpretations.<br>
&gt; <br>
&gt;     &gt;  <br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt;     Shyam<br>
&gt;     &gt;<br>
&gt;     &gt;     PS: Added Yaniv to the CC as he reported the deviance<br>
&gt;     &gt;<br>
&gt;     &gt;     -------- Forwarded Message --------<br>
&gt;     &gt;     Subject:        Re: [Gluster-devel] Release 5: Master branch<br>
&gt;     health<br>
&gt;     &gt;     report<br>
&gt;     &gt;     (Week of 30th July)<br>
&gt;     &gt;     Date:   Tue, 7 Aug 2018 23:22:09 +0300<br>
&gt;     &gt;     From:   Yaniv Kaul &lt;<a href="mailto:ykaul@redhat.com" target="_blank">ykaul@redhat.com</a> &lt;mailto:<a href="mailto:ykaul@redhat.com" target="_blank">ykaul@redhat.com</a>&gt;<br>
&gt;     &lt;mailto:<a href="mailto:ykaul@redhat.com" target="_blank">ykaul@redhat.com</a> &lt;mailto:<a href="mailto:ykaul@redhat.com" target="_blank">ykaul@redhat.com</a>&gt;&gt;&gt;<br>
&gt;     &gt;     To:     Shyam Ranganathan &lt;<a href="mailto:srangana@redhat.com" target="_blank">srangana@redhat.com</a><br>
&gt;     &lt;mailto:<a href="mailto:srangana@redhat.com" target="_blank">srangana@redhat.com</a>&gt;<br>
&gt;     &gt;     &lt;mailto:<a href="mailto:srangana@redhat.com" target="_blank">srangana@redhat.com</a> &lt;mailto:<a href="mailto:srangana@redhat.com" target="_blank">srangana@redhat.com</a>&gt;&gt;&gt;<br>
&gt;     &gt;     CC:     GlusterFS Maintainers &lt;<a href="mailto:maintainers@gluster.org" target="_blank">maintainers@gluster.org</a><br>
&gt;     &lt;mailto:<a href="mailto:maintainers@gluster.org" target="_blank">maintainers@gluster.org</a>&gt;<br>
&gt;     &gt;     &lt;mailto:<a href="mailto:maintainers@gluster.org" target="_blank">maintainers@gluster.org</a><br>
&gt;     &lt;mailto:<a href="mailto:maintainers@gluster.org" target="_blank">maintainers@gluster.org</a>&gt;&gt;&gt;, Gluster Devel<br>
&gt;     &gt;     &lt;<a href="mailto:gluster-devel@gluster.org" target="_blank">gluster-devel@gluster.org</a> &lt;mailto:<a href="mailto:gluster-devel@gluster.org" target="_blank">gluster-devel@gluster.org</a>&gt;<br>
&gt;     &lt;mailto:<a href="mailto:gluster-devel@gluster.org" target="_blank">gluster-devel@gluster.org</a> &lt;mailto:<a href="mailto:gluster-devel@gluster.org" target="_blank">gluster-devel@gluster.org</a>&gt;&gt;&gt;,<br>
&gt;     &gt;     Nigel Babu &lt;<a href="mailto:nigelb@redhat.com" target="_blank">nigelb@redhat.com</a> &lt;mailto:<a href="mailto:nigelb@redhat.com" target="_blank">nigelb@redhat.com</a>&gt;<br>
&gt;     &lt;mailto:<a href="mailto:nigelb@redhat.com" target="_blank">nigelb@redhat.com</a> &lt;mailto:<a href="mailto:nigelb@redhat.com" target="_blank">nigelb@redhat.com</a>&gt;&gt;&gt;<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt;     On Tue, Aug 7, 2018, 10:46 PM Shyam Ranganathan<br>
&gt;     &lt;<a href="mailto:srangana@redhat.com" target="_blank">srangana@redhat.com</a> &lt;mailto:<a href="mailto:srangana@redhat.com" target="_blank">srangana@redhat.com</a>&gt;<br>
&gt;     &gt;     &lt;mailto:<a href="mailto:srangana@redhat.com" target="_blank">srangana@redhat.com</a> &lt;mailto:<a href="mailto:srangana@redhat.com" target="_blank">srangana@redhat.com</a>&gt;&gt;<br>
&gt;     &gt;     &lt;mailto:<a href="mailto:srangana@redhat.com" target="_blank">srangana@redhat.com</a> &lt;mailto:<a href="mailto:srangana@redhat.com" target="_blank">srangana@redhat.com</a>&gt;<br>
&gt;     &lt;mailto:<a href="mailto:srangana@redhat.com" target="_blank">srangana@redhat.com</a> &lt;mailto:<a href="mailto:srangana@redhat.com" target="_blank">srangana@redhat.com</a>&gt;&gt;&gt;&gt; wrote:<br>
&gt;     &gt;<br>
&gt;     &gt;         On 08/07/2018 02:58 PM, Yaniv Kaul wrote:<br>
&gt;     &gt;         &gt;     The intention is to stabilize master and not add<br>
&gt;     more patches<br>
&gt;     &gt;         that my<br>
&gt;     &gt;         &gt;     destabilize it.<br>
&gt;     &gt;         &gt;<br>
&gt;     &gt;         &gt;<br>
&gt;     &gt;         &gt; <a href="https://review.gluster.org/#/c/20603/" rel="noreferrer" target="_blank">https://review.gluster.org/#/c/20603/</a> has been merged.<br>
&gt;     &gt;         &gt; As far as I can see, it has nothing to do with<br>
&gt;     stabilization and<br>
&gt;     &gt;         should<br>
&gt;     &gt;         &gt; be reverted.<br>
&gt;     &gt;<br>
&gt;     &gt;         Posted this on the gerrit review as well:<br>
&gt;     &gt;<br>
&gt;     &gt;         &lt;snip&gt;<br>
&gt;     &gt;         4.1 does not have nightly tests, those run on master only.<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt;     That should change of course. We cannot strive for stability<br>
&gt;     otherwise,<br>
&gt;     &gt;     AFAIK. <br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt;         Stability of master does not (will not), in the near term<br>
&gt;     guarantee<br>
&gt;     &gt;         stability of release branches, unless patches that impact code<br>
&gt;     &gt;     already<br>
&gt;     &gt;         on release branches, get fixes on master and are back ported.<br>
&gt;     &gt;<br>
&gt;     &gt;         Release branches get fixes back ported (as is normal),<br>
&gt;     this fix<br>
&gt;     &gt;     and its<br>
&gt;     &gt;         merge should not impact current master stability in any<br>
&gt;     way, and<br>
&gt;     &gt;     neither<br>
&gt;     &gt;         stability of 4.1 branch.<br>
&gt;     &gt;         &lt;/snip&gt;<br>
&gt;     &gt;<br>
&gt;     &gt;         The current hold is on master, not on release branches. I<br>
&gt;     agree that<br>
&gt;     &gt;         merging further code changes on release branches (for example<br>
&gt;     &gt;     geo-rep<br>
&gt;     &gt;         issues that are backported (see [1]), as there are tests<br>
&gt;     that fail<br>
&gt;     &gt;         regularly on master), may further destabilize the release<br>
&gt;     &gt;     branch. This<br>
&gt;     &gt;         patch is not one of those.<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt;     Two issues I have with the merge:<br>
&gt;     &gt;     1. It just makes comparing master branch to release branch<br>
&gt;     harder. For<br>
&gt;     &gt;     example, to understand if there&#39;s a test that fails on master but<br>
&gt;     &gt;     succeeds on release branch, or vice versa. <br>
&gt;     &gt;     2. It means we are not focused on stabilizing master branch.<br>
&gt;     &gt;     Y.<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt;         Merging patches on release branches are allowed by release<br>
&gt;     &gt;     owners only,<br>
&gt;     &gt;         and usual practice is keeping the backlog low (merging weekly)<br>
&gt;     &gt;     in these<br>
&gt;     &gt;         cases as per the dashboard [1].<br>
&gt;     &gt;<br>
&gt;     &gt;         Allowing for the above 2 reasons this patch was found,<br>
&gt;     &gt;         - Not on master<br>
&gt;     &gt;         - Not stabilizing or destabilizing the release branch<br>
&gt;     &gt;         and hence was merged.<br>
&gt;     &gt;<br>
&gt;     &gt;         If maintainers disagree I can revert the same.<br>
&gt;     &gt;<br>
&gt;     &gt;         Shyam<br>
&gt;     &gt;<br>
&gt;     &gt;         [1] Release 4.1 dashboard:<br>
&gt;     &gt;<br>
&gt;     &gt;   <br>
&gt;      <a href="https://review.gluster.org/#/projects/glusterfs,dashboards/dashboard:4-1-dashboard" rel="noreferrer" target="_blank">https://review.gluster.org/#/projects/glusterfs,dashboards/dashboard:4-1-dashboard</a><br>
&gt;     &gt;<br>
&gt;     &gt;     _______________________________________________<br>
&gt;     &gt;     maintainers mailing list<br>
&gt;     &gt;     <a href="mailto:maintainers@gluster.org" target="_blank">maintainers@gluster.org</a> &lt;mailto:<a href="mailto:maintainers@gluster.org" target="_blank">maintainers@gluster.org</a>&gt;<br>
&gt;     &lt;mailto:<a href="mailto:maintainers@gluster.org" target="_blank">maintainers@gluster.org</a> &lt;mailto:<a href="mailto:maintainers@gluster.org" target="_blank">maintainers@gluster.org</a>&gt;&gt;<br>
&gt;     &gt;     <a href="https://lists.gluster.org/mailman/listinfo/maintainers" rel="noreferrer" target="_blank">https://lists.gluster.org/mailman/listinfo/maintainers</a><br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt; --<br>
&gt;     &gt; Pranith<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; -- <br>
&gt; Pranith<br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Pranith<br></div></div></div>