[hibernate-dev] ci.hibernate resource locks configuration

Sanne Grinovero sanne at hibernate.org
Tue Jul 30 04:51:02 EDT 2013


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 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