On Mon, Feb 11, 2019 at 12:12 AM Matteo Merli <mme...@apache.org> wrote:

> Agree the split will be a good idea.
>
> Anyway I think the "bigger" problem is currently with the Java unit
> tests job. This job takes ~90min and has currently the higher chances
> of failure. Most of time (and all flakyness) is in the broker tests
> module which is essentially used as a mid-way between unit and
> integration tests.
> I'm trying to come up with some reasonable plan to gradually improve
> the situation there, without losing sanity...


Agreed and +1 on improving java8 test job


>
> Regarding integration, I think that most of time is being spent in
> starting the containers for each new test class.
> Since the integration tests are already in a (very) much better state,
> compared to our unit tests, I think that perhaps we could have a
> single cluster, statically initialized that can be shared across many
> tests, each using its own namespaces/topics.


Current integration is already doing the approach as you described. For
each test suite, it initializes the a cluster before running all tests, and
reuses the cluster for all tests during the whole suite. For each test, we
use a separate namespace. I am not sure what will be the difference in your
proposal.

My proposal is more about breaking down the integration test into multiple
smaller jobs. So when a failure occurs, it doesn’t have to rerun the whole
test. We have used this breakdown approach in bookkeeper’s CI, which has
been running very reliably.


>
> This way we can still have multiple test classes (which makes
> understanding the code and the results easier) and only pay the
> startup price once.
>
> Finally, this will be easier to start with only tests that don't
> involve killing broker containers, so probably the Jenkins jobs could
> be split based on that.
>
>
> On Sat, Feb 9, 2019 at 10:47 AM Eren Avsarogullari
> <erenavsarogull...@gmail.com> wrote:
> >
> > +1
> >
> > Also, i have suggested 'quarantined-list' feature for Apache Heron to
> > manage flaky integration-tests as follow. As the long-term, it can also
> be
> > useful for Pulsar if similar feature is already not used.
> > https://github.com/apache/incubator-heron/issues/2865
> >
> > On Sat, 9 Feb 2019 at 04:54, Sanjeev Kulkarni <sanjee...@gmail.com>
> wrote:
> >
> > > +1
> > >
> > > On Fri, Feb 8, 2019 at 8:52 PM Sijie Guo <guosi...@gmail.com> wrote:
> > >
> > > > `Hi all,
> > > >
> > > > Integration job has been a pain point for merging pull requests. The
> > > total
> > > > run time of the integration job typically is around an hour. If an
> > > > integration test is failing, retrigger the job requires another hour
> to
> > > > run. rerunning the job will take up the docker resources on jenkins
> > > nodes.
> > > >
> > > > I am thinking of breaking down the current integration job into
> multiple
> > > > smaller jobs. This can achieve by specifying different test suite
> files
> > > > using system property. I have an outstanding pull request to
> introduce
> > > an `
> > > > integrationTestSuiteFile` system property.
> > > > https://github.com/apache/pulsar/pull/3558/
> > > >
> > > > The initial set of test suites I can think of are:
> > > >
> > > > - cli test suite: all cli related tests
> > > > - function thread test suite: all tests related functions in thread
> mode
> > > > - function process test suite: all tests related functions in process
> > > mode
> > > > - sql test suite: pulsar sql related tests
> > > > - storage test suite: tiered storage related tests.
> > > >
> > > > Any thoughts? If this is a good direction to go, I can break down the
> > > > integration job once PR#3558 is merged.
> > > >
> > > > - Sijie
> > > >
> > >
>

Reply via email to