You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Ilya Kasnacheev (JIRA)" <ji...@apache.org> on 2019/01/10 13:02:00 UTC

[jira] [Created] (IGNITE-10884) Failure to perform non-MVCC SQL from transactions

Ilya Kasnacheev created IGNITE-10884:
----------------------------------------

             Summary: Failure to perform non-MVCC SQL from transactions
                 Key: IGNITE-10884
                 URL: https://issues.apache.org/jira/browse/IGNITE-10884
             Project: Ignite
          Issue Type: Bug
          Components: mvcc, sql
    Affects Versions: 2.7
            Reporter: Ilya Kasnacheev


MVCC was added with expectation is that it would not affect existing KV transactional code, neither SQL on non-TRANSACTIONAL_SNAPSHOT caches.

However, this turned not to be the case: if you open an OPTIMISIC SERIALIZABLE transaction and do SQL query to fetch data from table, exception will be thrown with *Only pessimistic repeatable read transactions are supported at the moment*
{code}
Exception in thread "main" javax.cache.CacheException: Only pessimistic repeatable read transactions are supported at the moment.
	at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:697)
	at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:636)
	at org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.query(GatewayProtectedCacheProxy.java:388)
	at IgniteTransactionTester.testTransactionException(IgniteTransactionTester.java:53)
	at IgniteTransactionTester.main(IgniteTransactionTester.java:38)
Caused by: class org.apache.ignite.internal.processors.query.IgniteSQLException: Only pessimistic repeatable read transactions are supported at the moment.
	at org.apache.ignite.internal.processors.cache.mvcc.MvccUtils.tx(MvccUtils.java:690)
	at org.apache.ignite.internal.processors.cache.mvcc.MvccUtils.tx(MvccUtils.java:671)
	at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.runQueryTwoStep(IgniteH2Indexing.java:1793)
	at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.doRunDistributedQuery(IgniteH2Indexing.java:2610)
	at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.doRunPrepared(IgniteH2Indexing.java:2315)
	at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.querySqlFields(IgniteH2Indexing.java:2209)
	at org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:2135)
	at org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:2130)
	at org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36)
	at org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:2707)
	at org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2144)
	at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:685)
	... 4 more
{code}

This is a major regression towards 2.6. Please see linked reproducer (IgniteTransactionTester class).



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