[ 
https://issues.apache.org/jira/browse/IGNITE-4380?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16720168#comment-16720168
 ] 

Amelchev Nikita commented on IGNITE-4380:
-----------------------------------------

[~agoncharuk] Hi.
The failure scenario is that cached value can be read on starting remote tx in 
case of entry hasn't value and read through configured (when dht prepare 
message processed). It's fixed by setting the write flag to txEntry. It'll lead 
to including its to dht prepare message. When txHandler will process message it 
will not read the cached value on starting remote tx.  

For a local cache, the prepare step does not wait for the key's prepare futures 
to complete. Multiple threads can process a single value and write it. It's 
solved by waiting for prepare future during the prepare step.

> Cache invoke calls can be lost
> ------------------------------
>
>                 Key: IGNITE-4380
>                 URL: https://issues.apache.org/jira/browse/IGNITE-4380
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache
>    Affects Versions: 2.0
>            Reporter: Semen Boikov
>            Assignee: Amelchev Nikita
>            Priority: Critical
>              Labels: MakeTeamcityGreenAgain
>             Fix For: 2.8
>
>
> * Recently added test 
> GridCacheAbstractFullApiSelfTest.testInvokeAllMultithreaded fails on TC in 
> various configurations with transactional cache.
> Example of failure 
> GridCacheReplicatedOffHeapTieredMultiNodeFullApiSelfTest.testInvokeAllMultithreaded:
> {noformat}
> junit.framework.AssertionFailedError: expected:<20000> but was:<10868>
>     at junit.framework.Assert.fail(Assert.java:57)
>     at junit.framework.Assert.failNotEquals(Assert.java:329)
>     at junit.framework.Assert.assertEquals(Assert.java:78)
>     at junit.framework.Assert.assertEquals(Assert.java:234)
>     at junit.framework.Assert.assertEquals(Assert.java:241)
>     at junit.framework.TestCase.assertEquals(TestCase.java:409)
>     at 
> org.apache.ignite.internal.processors.cache.GridCacheAbstractFullApiSelfTest.testInvokeAllMultithreaded(GridCacheAbstractFullApiSelfTest.java:342)
>     at sun.reflect.GeneratedMethodAccessor96.invoke(Unknown Source)
>     at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke(Method.java:606)
>     at junit.framework.TestCase.runTest(TestCase.java:176)
>     at 
> org.apache.ignite.testframework.junits.GridAbstractTest.runTestInternal(GridAbstractTest.java:1803)
>     at 
> org.apache.ignite.testframework.junits.GridAbstractTest.access$000(GridAbstractTest.java:118)
>     at 
> org.apache.ignite.testframework.junits.GridAbstractTest$4.run(GridAbstractTest.java:1718)
>     at java.lang.Thread.run(Thread.java:745)
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to