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?
On 30 July 2013 09:42, Gunnar Morling <gunnar(a)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(a)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(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/hibernate-dev