On Wed, Oct 18, 2017 at 09:35:49AM +0100, Daniel P. Berrange wrote:
> On Wed, Oct 18, 2017 at 04:28:36PM +0800, Fam Zheng wrote:
> > On Wed, 10/18 01:08, no-re...@patchew.org wrote:
> > > Your branch is up-to-date with 'origin/test'.
> > > Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 
> > > 'dtc'
> > > Cloning into 
> > > '/var/tmp/patchew-tester-tmp-jhpnlaz0/src/docker-src.2017-10-18-04.03.32.32287/qemu.tar.vroot/dtc'...
> > > fatal: unable to connect to git.qemu-project.org:
> > > git.qemu-project.org[0: 172.99.69.163]: errno=Connection timed out
> > > 
> > > fatal: clone of 'git://git.qemu-project.org/dtc.git' into submodule path 
> > > '/var/tmp/patchew-tester-tmp-jhpnlaz0/src/docker-src.2017-10-18-04.03.32.32287/qemu.tar.vroot/dtc'
> > >  failed
> > > Failed to clone 'dtc'. Retry scheduled
> > > Cloning into 
> > > '/var/tmp/patchew-tester-tmp-jhpnlaz0/src/docker-src.2017-10-18-04.03.32.32287/qemu.tar.vroot/dtc'...
> > > fatal: unable to connect to git.qemu-project.org:
> > > git.qemu-project.org[0: 172.99.69.163]: errno=Connection timed out
> > > 
> > > fatal: clone of 'git://git.qemu-project.org/dtc.git' into submodule path 
> > > '/var/tmp/patchew-tester-tmp-jhpnlaz0/src/docker-src.2017-10-18-04.03.32.32287/qemu.tar.vroot/dtc'
> > >  failed
> > > Failed to clone 'dtc' a second time, aborting
> > > failed to init submodule dtc
> > 
> > So now patchew is less robust on network hiccups: a number of the same "git
> > submodule update --init" calls have succeeded above, so this is incidental. 
> > Any
> > idea how to improve that? Maybe if there is a checkout from $QEMU_SRC, 
> > clone/cp
> > from there instead of fetch from submodule remote?
> 
> If patchew has unreliable connectivity to git.qemu.org then the best thing
> is probably have a background job that mirrors the git.qemu.org repos on
> the patchew server. Then have the test job modify .gitmodules to point to
> your local mirror. That way, network access is used during the background
> job only, and actual builds just get a local clone from the cache.

I thought of a simpler way to address this.

Currently patchew runs 4 docker jobs, and each one triggers creation of
the $(DOCKER_SRC_COPY) rule. This runs archive-source.sh 4 times, because
$(DOCKER_SRC_COPY) contains the current timestamp and so is different
each time we run it.

If you override DOCKER_SRC_COPY with the current git change hash, then
you would end up using the same archive for all 4 jobs, and so only do
the checkouts once
 
  make docker-foo   DOCKER_SRC_COPY=docker-src.`git rev-parse HEAD`

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

Reply via email to