Description
This leads to unpredictable results from a user's point of view.
Reproducer:
public class IgniteTxSuspendAndTimeoutTest extends GridCommonAbstractTest { @Test public void testSuspendAndTimeout() throws Exception { Ignite ignite = startGrid(0); IgniteCache cache = ignite.createCache(new CacheConfiguration<>().setName("c").setAtomicityMode(TRANSACTIONAL)); Transaction tx1 = ignite.transactions().txStart(OPTIMISTIC, TransactionIsolation.REPEATABLE_READ, 100, 0); cache.put(1, 1); tx1.suspend(); assertNull(cache.get(1)); // Pass here. doSleep(200); assertNull(cache.get(1)); // Fail here. But we don't expect any explicitly running transaction at this point. } }
Attachments
Issue Links
- is caused by
-
IGNITE-7481 Suspended transaction rollbacs incorrectly
- Resolved
-
IGNITE-6827 Configurable rollback for long running transactions before partition exchange
- Resolved
- links to