[hibernate-dev] ci.hibernate resource locks configuration

Gunnar Morling gunnar at hibernate.org
Tue Jul 30 05:03:39 EDT 2013


2013/7/30 Sanne Grinovero <sanne at hibernate.org>

> Nice idea. I think that would be even better, but requires some code
> adaptations in the project, and some use cases are complex: JGroups is
> requiring multiple ports for different types of inbound/outbound
> connections (and UDP connectionless), that could get tricky to get
> right.
> I'm not ruling out the idea, but if it's not very reliable it gets
> extremely tricky to debug.
>
> We could start using that for the AS use case as a next step? AFAIK
> the AS also needs many ports, and the Arquillian connector needs to
> use the right ones as well.. ideally this could be a feature of
> Arquillian?
>

I can have a look into the AS use case and see how it works out.


>
> On 30 July 2013 09:42, Gunnar Morling <gunnar at hibernate.org> wrote:
> > Could we alternatively avoid the conflict by using different ports for
> > different jobs (if that's the contended resource), e.g. by leveraging the
> > Jenkins port allocator plug-in [1]?
> >
> > This plug-in selects unique port numbers and makes them available to a
> job
> > run as environment variable from where it e.g. could be fed to
> Arquillian.
> >
> > --Gunnar
> >
> > [1] https://wiki.jenkins-ci.org/display/JENKINS/Port+Allocator+Plugin
> >
> >
> > 2013/7/30 Sanne Grinovero <sanne at hibernate.org>
> >>
> >> Hi all,
> >> I am enabling the "resources lock exclusion" plugin: this allows to
> >> specify - using a string - a resource that a specific build requires
> >> for exclusive access, preventing parallel execution of multiple builds
> >> using the same resource.
> >>
> >> I'm enabling two resources specifically:
> >>  - JGROUPS
> >>  - JBOSSAS
> >> (literally)
> >>
> >> Please keep that in mind when
> >>  a) creating new jobs
> >>  b) adding new tests using any such resource in a project which doesn't
> >> have any
> >>
> >> For example, Hibernate Search includes some tests which create a
> >> JGroups communication channel - either explicitly or by using
> >> Infinispan - and if another build was run at the same time they would
> >> fail as JGroups would automatically connect to the other running test,
> >> setting up an unpredictable state.
> >> So by enabling "JGROUPS" as a required exclusive resource, if any
> >> other project needing the same could declare the same resource usage
> >> we can prevent them to be run in parallel.
> >>
> >> JBOSSAS is defined by projects using Arquillian; I enabled it only on
> >> OGM and Search: any more needing it?
> >>
> >> The good aspect is that by doing so I can re-enable parallel execution
> >> and Jenkins should figure out which builds it is allowed to run
> >> instead, without wasting CI time.
> >>
> >> Side effects: expects several fail reports in the coming hours, as I
> >> *thought* I got it right but actually made a mistake, triggering many
> >> parallel builds :-)
> >>
> >> Sanne
> >> _______________________________________________
> >> hibernate-dev mailing list
> >> hibernate-dev at lists.jboss.org
> >> https://lists.jboss.org/mailman/listinfo/hibernate-dev
> >
> >
>


More information about the hibernate-dev mailing list