[infinispan-issues] [JBoss JIRA] (ISPN-4085) Random failures in StateProviderTest due to race condition

Mircea Markus (JIRA) issues at jboss.org
Mon Mar 31 13:24:14 EDT 2014


     [ https://issues.jboss.org/browse/ISPN-4085?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mircea Markus updated ISPN-4085:
--------------------------------

    Assignee: Galder Zamarreño  (was: Gustavo Fernandes)

    
> Random failures in StateProviderTest due to race condition
> ----------------------------------------------------------
>
>                 Key: ISPN-4085
>                 URL: https://issues.jboss.org/browse/ISPN-4085
>             Project: Infinispan
>          Issue Type: Bug
>          Components: Test Suite - Core
>    Affects Versions: 7.0.0.Alpha1
>         Environment: jgroups.bind_addr = 127.0.0.1
> java.runtime.version = 1.7.0_51-b13
> java.runtime.name =Java(TM) SE Runtime Environment
> java.vm.version = 24.51-b03
> java.vm.vendor = Oracle Corporation
> os.name = Mac OS X
> os.version = 10.9.2
> sun.arch.data.model = 64
> sun.cpu.endian = little
> protocol.stack = null
> infinispan.test.jgroups.protocol = tcp
> infinispan.unsafe.allow_jdk8_chm = true
> java.net.preferIPv4Stack = true
> java.net.preferIPv6Stack = null
> log4.configuration = null
> MAVEN_OPTS = null
>            Reporter: Gustavo Fernandes
>            Assignee: Galder Zamarreño
>              Labels: 630
>             Fix For: 7.0.0.Alpha2, 7.0.0.Final
>
>
> In my environment the StateProviderTest .test2() fails sometimes (about 10% of the time) with the following error(s):
> {code}
> Tests run: 4233, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 428.06 sec <<< FAILURE!
> test2(org.infinispan.statetransfer.StateProviderTest)  Time elapsed: 0.042 sec  <<< FAILURE!
> java.lang.AssertionError
> 	at org.junit.Assert.fail(Assert.java:92)
> 	at org.junit.Assert.assertTrue(Assert.java:43)
> 	at org.junit.Assert.assertTrue(Assert.java:54)
> 	at org.infinispan.statetransfer.StateProviderTest.test2(StateProviderTest.java:316)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> {code}
> The reason why is that test2() feeds the StateProvider  a ThreadPoolExecutorService to execute a OutboundTransfer task asynchronously and right after forcing a state transfer 
> asserts that there is a StateTransfer in progress. Sometimes the executor service manages to execute the task and as a result it clear the ‘transfersByDestination’ map, and thus the test cannot assert that the state transfer is happening 
> OTOH, the method test1() never fails because it users a mock executor service which never executes the task, so the state transfer map will always contain the outbound task after initiating the state transfer and thus always visible from outside
> The quick fix is to also use a mock executor test for the test2()

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the infinispan-issues mailing list