+1 (non-binding) on the "dockerisation" of the tests!
I agree though, that the change needs to be voted first by the community,
and of course agreed on by committers / PMC members.
Let's see the reactions on this thread. But if not enough votes come in,
you could try starting a new thread, and leading the subject with [VOTE] or
[SUGGESTION] to draw attention.
And just write down your findings as in your last letter, Michael.
Thank you for your help and work, sounds great!
Regards,
Norbert
On Thu, Nov 29, 2018 at 8:56 AM Enrico Olivelli wrote:
> Great work Michael,
>
> I am totally +1 on using docker for network isolation
>
> I think that Apache CI may allow out-of-the-box execution in Docker
> containers, in fact we have the "CloudBees Docker Custom Build
> Environment Plugin"
> We can use a public image or provide on the repo a Dockerfile.
>
> In my company we are taking another approach, we launch a script which
> sets up the container(s) and that run the tests.
>
> The former approach (built in jenkins) is easy to try, the latter is
> more complex but maybe you already have some script,
> but our automatic QA script is quite complex and needs a lot of third
> party tool
>
> when we will be on Maven we would not need external
> findbugs,forrest,ant.
>
> ${ANT_HOME}/bin/ant \
> -Dpatch.file=foobar \
> -Dscratch.dir=$PATCH_DIR \
> -Dps.cmd=/bin/ps \
> -Dwget.cmd=/usr/bin/wget \
> -Djiracli.cmd=/home/jenkins/tools/jiracli/latest/jira.sh \
> -Dgit.cmd=/usr/bin/git \
> -Dgrep.cmd=/bin/grep \
> -Dpatch.cmd=/usr/bin/patch \
> -Dfindbugs.home=/home/jenkins/tools/findbugs/latest/ \
> -Dforrest.home=/home/jenkins/tools/forrest/latest/ \
> -Djira.passwd=no-shown-here \
> -Djava5.home=/home/jenkins/tools/java5/latest/ \
> -Dcurl.cmd=/usr/bin/curl \
> -Dtest.junit.maxmem=2g \
> qa-test-pullrequest
>
> I am not a committer, but I have write access to Apache CI, so if
> ZooKeeper PMCs agree on trying the docker config on the CI jobs I will
> be happy to try
>
> Enrico
>
> Il giorno gio 29 nov 2018 alle ore 06:27 Michael K. Edwards
> ha scritto:
> >
> > With the use of a Docker container (to prevent port collisions) and a
> > stack of cleanups to test code, I've made some progress towards
> > reliable test runs in our environment.
> > (https://github.com/mkedwards/zookeeper/commits/rollup-3.5, if you're
> > curious.) The list below consists of the "top 40" slowest individual
> > tests. Note that several appear multiple times, because of the
> > inclusion of classes containing slow tests in NioNettySuiteTest and
> > NettyNettySuiteTest.
> >
> > I'm somewhat hesitant to undertake further overhauls of the test
> > suite, because I've already found myself having to make the kinds of
> > changes that tend to be uphill battles, code-review-wise -- especially
> > coming from an outsider.
> >
> https://github.com/mkedwards/zookeeper/commit/e02eb705c6550f51ebb860a474ce711ec68c7a24
> > is an example. If a Zookeeper committer is interested in working with
> > me on this, maybe email me? Otherwise, I'll try to keep this branch
> > rebased regularly, and hammer on the remaining flaky tests to see what
> > I can learn.
> >
> > $ grep ' Ran ' build.log | sort -n -t '[' -r -k 4 | head -40
> > [junit] [39343@1f20a9d731ad] Ran [68.657]
> > org.apache.zookeeper.test.ReconfigTest:testPortChangeToBlockedPortLeader
> > ... OK
> > [junit] [44264@1f20a9d731ad] Ran [68.607]
> >
> org.apache.zookeeper.test.ReconfigTest:testPortChangeToBlockedPortFollower
> > ... OK
> > [junit] [59151@1f20a9d731ad] Ran [67.535]
> > org.apache.zookeeper.test.ReconfigTest:testPortChangeToBlockedPortLeader
> > ... OK
> > [junit] [59151@1f20a9d731ad] Ran [67.397]
> >
> org.apache.zookeeper.test.ReconfigTest:testPortChangeToBlockedPortFollower
> > ... OK
> > [junit] [24817@1f20a9d731ad] Ran [66.555]
> >
> org.apache.zookeeper.server.quorum.ReconfigRecoveryTest:testNextConfigUnreachable
> > ... OK
> > [junit] [39343@1f20a9d731ad] Ran [66.345]
> >
> org.apache.zookeeper.test.ReconfigTest:testPortChangeToBlockedPortFollower
> > ... OK
> > [junit] [44264@1f20a9d731ad] Ran [65.382]
> > org.apache.zookeeper.test.ReconfigTest:testPortChangeToBlockedPortLeader
> > ... OK
> > [junit] [33311@1f20a9d731ad] Ran [64.39]
> >
> org.apache.zookeeper.test.DisconnectedWatcherTest:testManyChildWatchersAutoReset
> > ... OK
> > [junit] [40332@1f20a9d731ad] Ran [60.907]
> > org.apache.zookeeper.test.AsyncHammerTest:testHammer ... OK
> > [junit] [26094@1f20a9d731ad] Ran [58.559]
> >
> org.apache.zookeeper.server.quorum.StandaloneDisabledTest:startSingleServerTest
> > ... OK
> > [junit] [34470@1f20a9d731ad] Ran [52.229]
> >
> org.apache.zookeeper.test.FollowerResyncConcurrencyTest:testResyncByTxnlogThenDiffAfterFollowerCrashes
> > ... OK
> > [junit] [19354@1f20a9d731ad] Ran [49.956]
> >
>