FYI, switching the build system to use Github made a whole lot of red turn blue. :-)
On Fri, May 22, 2020 at 9:21 AM Dave Page <dp...@pgadmin.org> wrote: > > > On Thu, May 21, 2020 at 8:27 PM Magnus Hagander <mag...@hagander.net> > wrote: > >> >> On Thu, May 21, 2020 at 1:08 PM Dave Page <dp...@pgadmin.org> wrote: >> >>> We see a non-trivial amount of automated build failures caused by git >>> timeouts and Varnish cache meditation. This is only likely to get worse as >>> we've automated so many different build configurations, and the PostgreSQL >>> sysadmin team don't really want to get into the business of large-scale >>> repository hosting. >>> >>> I suggest we move our primary repo to Github. Any objections? >>> >>> >> Don't you already have a mirror there? Can't you just point the tests at >> that, regardless of where you keep your primary? (It is distributed after >> all) >> > > I had discounted that idea as I thought the sync mechanism was done > through a cron job (thus making it a potential problem when doing releases > if a push doesn't hit the mirror immediately). However it does seem to be > synchronous, having done a test commit and remembered the garbage we get on > the output. How does that work exactly? I can't see any obvious hooks. > > I'll try just shifting the build systems to use Github and see where that > takes us. > > >> That said you are of course free to change the primary for whatever >> reason, but this one doesn't seem like one. >> >> And AFAIK nobody has actually reported any such issues. But it is >> certainly true that a lot of the git serving stuff is terribly slow -- but >> I was under the impression that it was mostly gitweb, since thats what >> people tend to report issues with... >> >> But again, no actual objections to moving. >> > > We get a lot of failures that look like the following. It doesn't seem to > be restricted to any particular servers in our buildfarm (which have a mix > of 1 and 10Gb/s network connections on a 40Gb/s backbone), and the upstream > network connection is stable (per monitoring) and has 500Mb/s bandwidth > which should be more than enough of course. My working theory is that it's > a dozen or more clones hitting gothos at once is just too much. > > Started by upstream project "pgadmin4-rpm-build > <http://pgabf-jenkins.ox.uk.enterprisedb.com:8080/job/pgadmin4-rpm-build/>" > build number 12 > <http://pgabf-jenkins.ox.uk.enterprisedb.com:8080/job/pgadmin4-rpm-build/12> > originally caused by: > Started by upstream project "pgadmin4-all-build > <http://pgabf-jenkins.ox.uk.enterprisedb.com:8080/job/pgadmin4-all-build/>" > build number 61 > <http://pgabf-jenkins.ox.uk.enterprisedb.com:8080/job/pgadmin4-all-build/61> > originally caused by: > Started by user Dave Page > <http://pgabf-jenkins.ox.uk.enterprisedb.com:8080/user/dpage> > Running as SYSTEM > [EnvInject] - Loading node environment variables. > Building remotely on pgabf-centos-7 > <http://pgabf-jenkins.ox.uk.enterprisedb.com:8080/computer/pgabf-centos-7> > (centos-7) in workspace > /home/jenkins/workspace/pgadmin4-rpm-build/label/centos-7 > [WS-CLEANUP] Deleting project workspace... > [WS-CLEANUP] Deferred wipeout is used... > [WS-CLEANUP] Done > No credentials specified > Cloning the remote Git repository > Cloning repository https://git.postgresql.org/git/pgadmin4.git > > git init /home/jenkins/workspace/pgadmin4-rpm-build/label/centos-7 # > timeout=10 > Fetching upstream changes from https://git.postgresql.org/git/pgadmin4.git > > git --version # timeout=10 > > git fetch --tags --progress https://git.postgresql.org/git/pgadmin4.git > +refs/heads/*:refs/remotes/origin/* # timeout=10 > ERROR: Error cloning remote repo 'origin' > hudson.plugins.git.GitException: Command "git fetch --tags --progress > https://git.postgresql.org/git/pgadmin4.git > +refs/heads/*:refs/remotes/origin/*" returned status code 128: > stdout: > stderr: error: RPC failed; result=52, HTTP code = 0 > fatal: The remote end hung up unexpectedly > > at > org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2430) > at > org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:2044) > at > org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$500(CliGitAPIImpl.java:81) > at > org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:569) > at > org.jenkinsci.plugins.gitclient.CliGitAPIImpl$2.execute(CliGitAPIImpl.java:798) > at > org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$GitCommandMasterToSlaveCallable.call(RemoteGitImpl.java:161) > at > org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$GitCommandMasterToSlaveCallable.call(RemoteGitImpl.java:154) > at hudson.remoting.UserRequest.perform(UserRequest.java:211) > at hudson.remoting.UserRequest.perform(UserRequest.java:54) > at hudson.remoting.Request$2.run(Request.java:369) > at > hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > Suppressed: hudson.remoting.Channel$CallSiteStackTrace: Remote call to > pgabf-centos-7 > at > hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1741) > at > hudson.remoting.UserRequest$ExceptionResponse.retrieve(UserRequest.java:356) > at hudson.remoting.Channel.call(Channel.java:955) > at > org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.execute(RemoteGitImpl.java:146) > at sun.reflect.GeneratedMethodAccessor673.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at > org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.invoke(RemoteGitImpl.java:132) > at com.sun.proxy.$Proxy71.execute(Unknown Source) > at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1122) > at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1167) > at hudson.scm.SCM.checkout(SCM.java:505) > at > hudson.model.AbstractProject.checkout(AbstractProject.java:1205) > at > hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574) > at > jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) > at > hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499) > at hudson.model.Run.execute(Run.java:1853) > at hudson.matrix.MatrixRun.run(MatrixRun.java:153) > at > hudson.model.ResourceController.execute(ResourceController.java:97) > at hudson.model.Executor.run(Executor.java:427) > ERROR: Error cloning remote repo 'origin' > [Boolean condition] checking [true] against [^(1|y|yes|t|true|on|run)$] > (origin token: ${PUBLISH_FOR_QA}) > Run condition [Boolean condition] enabling perform for step [[Send build > artifacts over SSH]] > SSH: Current build result is [FAILURE], not going to run. > Finished: FAILURE > > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company