<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Apr 20, 2016 at 10:47 AM, David Caro <span dir="ltr">&lt;<a href="mailto:dcaro@redhat.com" target="_blank">dcaro@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 04/20 10:44, Eyal Edri wrote:<br>
&gt; OK,<br>
&gt; But if we move to use git server instead of gerrit server (only for post<br>
&gt; merge), we won&#39;t use the Gerrit trigger plugin, so I don&#39;t see how its<br>
&gt; still relevant.<br>
&gt; Instead of using the gerrit trigger to run post merge jobs, we&#39;ll use the<br>
&gt; SCM plugin instead like a normal git.<br>
&gt;<br>
&gt; Will this approach have any issues?<br>
<br>
</span>Well, no feedback on gerrit, no link to the gerrit change that caused it, and<br>
only triggering on merges.<br></blockquote><div><br></div><div>On second thought,</div><div>Can&#39;t we keep using the Gerrit Trigger plugin for events, but use the mirror URL for cloning instead of <a href="http://gerrit.ovirt.org">gerrit.ovirt.org</a>,</div><div>IMO it will work and worth a try.</div><div><br></div><div>Also, about the cloning, What if we won&#39;t create the target GIT REPO of the &#39;private&#39; repos we want to avoid cloning,</div><div>That will fail replication and won&#39;t clone the repo we want to keep.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Though we already do that on some projects due to the high time they take to<br>
run.<br>
<div class="HOEnZb"><div class="h5"><br>
&gt;<br>
&gt; On Wed, Apr 20, 2016 at 10:41 AM, David Caro &lt;<a href="mailto:dcaro@redhat.com">dcaro@redhat.com</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; On 04/20 09:40, David Caro wrote:<br>
&gt; &gt; &gt; On 04/20 10:25, Eyal Edri wrote:<br>
&gt; &gt; &gt; &gt; On Wed, Apr 20, 2016 at 10:20 AM, Barak Korren &lt;<a href="mailto:bkorren@redhat.com">bkorren@redhat.com</a>&gt;<br>
&gt; &gt; wrote:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; On 20 April 2016 at 10:16, Eyal Edri &lt;<a href="mailto:eedri@redhat.com">eedri@redhat.com</a>&gt; wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; On Wed, Apr 20, 2016 at 9:28 AM, Barak Korren &lt;<a href="mailto:bkorren@redhat.com">bkorren@redhat.com</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; &gt; I&#39;d try that approach first, though the mirror is a good idea<br>
&gt; &gt; that<br>
&gt; &gt; &gt; &gt; &gt; will<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; &gt; probably have to be implemented anyhow once we start adding<br>
&gt; &gt; slaves,<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; &gt; having real<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; &gt; info on the network usage/errors will give us insight to<br>
&gt; &gt; actually<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; &gt; determine<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; &gt; what&#39;s the issue, and thus, what&#39;s the best solution.<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; &gt; @infra what do you think?<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; The issue with mirroring is how can you make sure that you mirror<br>
&gt; &gt; fast<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; enough to enable CI. Even if Gerrit can push to the mirror on<br>
&gt; &gt; patch<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; submission, there will still be some time delta between the<br>
&gt; &gt; submission<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; happening (and the patch event showing up in Jenins) and the<br>
&gt; &gt; mirror<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; being synced. This looks like a nasty race condition.<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; What the mirror essentially does is make sure that bits are copied<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; from Amazom to PHX just once. I wonder if we can get the same<br>
&gt; &gt; benefit<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; with a simple HTTP proxy, how proxy-able is the Git HTTP protocol?<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; I think we should prioritize mirroring the GIT (not gerrit) repos<br>
&gt; &gt; to PHX,<br>
&gt; &gt; &gt; &gt; &gt; &gt; this will help:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Speed up all post merge jobs and reduce potential of errors from<br>
&gt; &gt; git<br>
&gt; &gt; &gt; &gt; &gt; clone<br>
&gt; &gt; &gt; &gt; &gt; &gt; (they will be in the same network)<br>
&gt; &gt; &gt; &gt; &gt; &gt; Reduce load (?) from the gerrit server and perhaps reduce errors<br>
&gt; &gt; of the<br>
&gt; &gt; &gt; &gt; &gt; per<br>
&gt; &gt; &gt; &gt; &gt; &gt; patch jobs that will still run from <a href="http://gerrit.ovirt.org" rel="noreferrer" target="_blank">gerrit.ovirt.org</a> (AMAZON)<br>
&gt; &gt; &gt; &gt; &gt; &gt; A longer goal will be either to migrate the gerrit server to PHX<br>
&gt; &gt; or to<br>
&gt; &gt; &gt; &gt; &gt; find<br>
&gt; &gt; &gt; &gt; &gt; &gt; away to properly mirror the gerrit server (but then i fear there<br>
&gt; &gt; might be<br>
&gt; &gt; &gt; &gt; &gt; &gt; race/problem as mentioned)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Please look at my comment about possible race conditions caused by<br>
&gt; &gt; &gt; &gt; &gt; mirroring. Simple mirroring may cause more trouble then its worth. We<br>
&gt; &gt; &gt; &gt; &gt; need to consider proxying instead.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; I don&#39;t see how a race condition can occur with a merge commit,<br>
&gt; &gt; &gt; &gt; Can you elaborate?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; From the gerrit config on jenkins:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Replication cache expiration time in minutes<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; If one of the server supports replication events, these events are<br>
&gt; &gt; cached in memory because they can be received before the build is triggered<br>
&gt; &gt; and this plugin gets called to evaluate if the build can run. Cache allows<br>
&gt; &gt; the plugin to look if the replication events were already received when it<br>
&gt; &gt; gets called to evaluate if the build can run. If the time elapsed between<br>
&gt; &gt; this plugin gets called and the time the build entered the queue is greated<br>
&gt; &gt; than the cache expiration time, the plugin will assume that replication<br>
&gt; &gt; events were received and will let the build run.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Changing this value will only take effect when Jenkins is restarted<br>
&gt; &gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; And from the specific server options:<br>
&gt; &gt;<br>
&gt; &gt; Block builds in the queue until the replication events for the configured<br>
&gt; &gt; Gerrit slave(s) are received.<br>
&gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; --<br>
&gt; &gt; &gt; &gt; Eyal Edri<br>
&gt; &gt; &gt; &gt; Associate Manager<br>
&gt; &gt; &gt; &gt; RHEV DevOps<br>
&gt; &gt; &gt; &gt; EMEA ENG Virtualization R&amp;D<br>
&gt; &gt; &gt; &gt; Red Hat Israel<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; phone: <a href="tel:%2B972-9-7692018" value="+97297692018">+972-9-7692018</a><br>
&gt; &gt; &gt; &gt; irc: eedri (on #tlv #rhev-dev #rhev-integ)<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; --<br>
&gt; &gt; &gt; David Caro<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Red Hat S.L.<br>
&gt; &gt; &gt; Continuous Integration Engineer - EMEA ENG Virtualization R&amp;D<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Tel.: <a href="tel:%2B420%20532%20294%20605" value="+420532294605">+420 532 294 605</a><br>
&gt; &gt; &gt; Email: <a href="mailto:dcaro@redhat.com">dcaro@redhat.com</a><br>
&gt; &gt; &gt; IRC: dcaro|dcaroest@{freenode|oftc|redhat}<br>
&gt; &gt; &gt; Web: <a href="http://www.redhat.com" rel="noreferrer" target="_blank">www.redhat.com</a><br>
&gt; &gt; &gt; RHT Global #: 82-62605<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; --<br>
&gt; &gt; David Caro<br>
&gt; &gt;<br>
&gt; &gt; Red Hat S.L.<br>
&gt; &gt; Continuous Integration Engineer - EMEA ENG Virtualization R&amp;D<br>
&gt; &gt;<br>
&gt; &gt; Tel.: <a href="tel:%2B420%20532%20294%20605" value="+420532294605">+420 532 294 605</a><br>
&gt; &gt; Email: <a href="mailto:dcaro@redhat.com">dcaro@redhat.com</a><br>
&gt; &gt; IRC: dcaro|dcaroest@{freenode|oftc|redhat}<br>
&gt; &gt; Web: <a href="http://www.redhat.com" rel="noreferrer" target="_blank">www.redhat.com</a><br>
&gt; &gt; RHT Global #: 82-62605<br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Eyal Edri<br>
&gt; Associate Manager<br>
&gt; RHEV DevOps<br>
&gt; EMEA ENG Virtualization R&amp;D<br>
&gt; Red Hat Israel<br>
&gt;<br>
&gt; phone: <a href="tel:%2B972-9-7692018" value="+97297692018">+972-9-7692018</a><br>
&gt; irc: eedri (on #tlv #rhev-dev #rhev-integ)<br>
<br>
--<br>
David Caro<br>
<br>
Red Hat S.L.<br>
Continuous Integration Engineer - EMEA ENG Virtualization R&amp;D<br>
<br>
Tel.: <a href="tel:%2B420%20532%20294%20605" value="+420532294605">+420 532 294 605</a><br>
Email: <a href="mailto:dcaro@redhat.com">dcaro@redhat.com</a><br>
IRC: dcaro|dcaroest@{freenode|oftc|redhat}<br>
Web: <a href="http://www.redhat.com" rel="noreferrer" target="_blank">www.redhat.com</a><br>
RHT Global #: 82-62605<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Eyal Edri<br>Associate Manager</div><div>RHEV DevOps<br>EMEA ENG Virtualization R&amp;D<br>Red Hat Israel<br><br>phone: +972-9-7692018<br>irc: eedri (on #tlv #rhev-dev #rhev-integ)</div></div></div></div></div>
</div></div>