<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Jun 29, 2016 at 11:15 PM, Barak Korren <span dir="ltr">&lt;<a href="mailto:bkorren@redhat.com" target="_blank">bkorren@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 29 June 2016 at 21:45, Yaniv Kaul &lt;<a href="mailto:ykaul@redhat.com">ykaul@redhat.com</a>&gt; wrote:<br>
&gt; On Mon, Jun 27, 2016 at 9:45 AM, Barak Korren &lt;<a href="mailto:bkorren@redhat.com">bkorren@redhat.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; It means that packages will be fetched EVERY time from outside, which<br>
&gt;&gt; &gt; may be<br>
&gt;&gt; &gt; slow(er).<br>
&gt;&gt; &gt; Y.<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt; We can (and mostly already have) setup simple caches to prevent that.<br>
&gt;<br>
&gt;<br>
&gt; How do you set up cache on a developer&#39;s laptop?<br>
&gt;<br>
</span>We may have been unclear in our intentions, we want to make the<br>
pre-syncing optional not remove it completely. It does make sense on<br>
the laptop (sometimes), but not so much in the CI env.<br>
<span class=""><br>
&gt; The repo directory does not need to be cleaned every time.<br>
<br>
</span>This is an assumption that may break if we end up having any corrupt<br>
or failing packages in the cache. It also make it hard to &quot;go back in<br>
time&quot; if we want to test without some update.<br>
(Cleaning corrupt caches an re-running is easy in a local setting, in<br>
CI you end up dealing with angry devs getting false &#39;-1&#39;s)<br></blockquote><div><br></div><div>True, and we don&#39;t want that. Developers have to trust the CI system.</div><div>This is an important point.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class=""><br>
&gt; It can also be<br>
&gt; resync&#39;ed from a central repo - which still going to be faster than any<br>
&gt; other fetching.<br>
&gt; (hopefully sync&#39;ed into the slave /dev/shm btw).<br>
<br>
</span>It could be faster, but could also be slower if you end up fetching<br>
more then you have to. (if engine setup fails on missing dependency,<br>
you just spent needless time fetching VDSM dpes)<br>
Also fetching by itself may not be the bottleneck in all cases, it is<br>
surely slow when fetching from PHX to TLV, but when fetching from the<br>
Squid proxy&#39;s RAM inside PHX it can actually end up being faster then<br>
copying from the local disk.<br></blockquote><div><br></div><div>I always fetch and store on /dev/shm/repostore</div><div>It&#39;s faster than anything else.</div><div><br></div><div>I did copy its content once to the disk, so when the host reboots, it rsync&#39;s this to /dev/shm/repostore , then tests begin.</div><div>That perhaps is indeed not very needed in CI.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class=""><br>
&gt;&gt; The existing solution looks more like premature optimization gone badly<br>
&gt;&gt; IMO.<br>
&gt;<br>
&gt; Try to run ovirt-system-tests, clean the repo and re-run - it&#39;s 20-30<br>
&gt; minutes at least longer - which is far more than what it takes to run the<br>
&gt; whole test suite.<br>
<br>
</span>I wonder how many of those minutes are spend on fetching things we<br>
actually need, and how much is spent on overhead. I suspect that<br>
without a local cache, the test run will be longer, but not as long as<br>
the pre-fetching+tests takes currently. More importantly, this may<br>
allow the CI to fail faster. I think we should at least test that.<br>
<span class=""><br>
&gt; I completely agree the manual maintenance is an annoyance, wish we had<br>
&gt; something in between.<br>
<br>
</span>Maybe we can take a middle ground, pre-fetch, but also enable external<br>
repos in CI (perhaps with some way to log and find out what was not<br>
pre-fetched).<br></blockquote><div><br></div><div>This is what the code is supposed to do, I suspect. reposync syncs between what you already have and what you fetch, no?</div><div>Y.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5"><br>
--<br>
Barak Korren<br>
<a href="mailto:bkorren@redhat.com">bkorren@redhat.com</a><br>
RHEV-CI Team<br>
</div></div></blockquote></div><br></div></div>