You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by Prasad Bhalerao <pr...@gmail.com> on 2019/09/27 13:49:18 UTC

Re: Getting javax.cache.CacheException after upgrading to Ignite 2.7 (IGNITE-10884 )

Hi,

this issue still exists in ignite 2.7.6 version but the ticket is marked as
Fixed. I am still able to reproduce the issue using following reproducer.

Because this issue I am not able to upgrade to latest version from 2.6.0
version.

GitHub project: https://github.com/prasadbhalerao1983/IgniteTestPrj.git

Please run IgniteTransactionTester class to check the issue.

Thanks,
Prasad

On Thu, Jan 10, 2019 at 7:22 PM Ilya Kasnacheev <il...@gmail.com>
wrote:

> Hello!
>
> I have filed a blocker ticket about it:
> https://issues.apache.org/jira/browse/IGNITE-10884
>
> Regards,
> --
> Ilya Kasnacheev
>
>
> ср, 9 янв. 2019 г. в 17:43, Prasad Bhalerao <prasadbhalerao1983@gmail.com
> >:
>
>>
>> Hi Ilya,
>>
>> I have created a reproducer for this issue and uploaded it to GitHub.
>>
>> GitHub project: https://github.com/prasadbhalerao1983/IgniteTestPrj.git
>>
>> Please run IgniteTransactionTester class to check the issue.
>>
>>
>> Exception:
>>
>> 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)
>>
>> Thanks,
>>
>> Prasad
>>
>>
>>
>> On Wed, Jan 9, 2019 at 6:22 PM Ilya Kasnacheev <il...@gmail.com>
>> wrote:
>>
>>> Hello!
>>>
>>> It was discussed recently:
>>> http://apache-ignite-users.70518.x6.nabble.com/Migrate-from-2-6-to-2-7-td25738.html
>>>
>>> I don't think you will be able to use SQL from transactions in Ignite
>>> 2.7. While this looks like a regression, you will have to work around it
>>> for now.
>>>
>>> Do you have a small reproducer for this issue? I could file a ticket if
>>> you had. You can try to do it yourself, too.
>>>
>>> Regards,
>>> --
>>> Ilya Kasnacheev
>>>
>>>
>>> ср, 9 янв. 2019 г. в 15:33, Prasad Bhalerao <
>>> prasadbhalerao1983@gmail.com>:
>>>
>>>> Hi,
>>>>
>>>> My cache configuration is as follows. I am using TRANSACTIONAL and not
>>>> TRANSACTIONAL_SNAPSHOT.
>>>>
>>>>
>>>>
>>>> private CacheConfiguration ipContainerIPV4CacheCfg() {
>>>>
>>>>   CacheConfiguration ipContainerIpV4CacheCfg = new CacheConfiguration<>(CacheName.IP_CONTAINER_IPV4_CACHE.name());
>>>>   ipContainerIpV4CacheCfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
>>>>   ipContainerIpV4CacheCfg.setWriteThrough(ENABLE_WRITE_THROUGH);
>>>>   ipContainerIpV4CacheCfg.setReadThrough(false);
>>>>   ipContainerIpV4CacheCfg.setRebalanceMode(CacheRebalanceMode.ASYNC);
>>>>   ipContainerIpV4CacheCfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
>>>>   ipContainerIpV4CacheCfg.setBackups(1);
>>>>   Factory<IpContainerIpV4CacheStore> storeFactory = FactoryBuilder.factoryOf(IpContainerIpV4CacheStore.class);
>>>>   ipContainerIpV4CacheCfg.setCacheStoreFactory(storeFactory);
>>>>   ipContainerIpV4CacheCfg.setIndexedTypes(DefaultDataAffinityKey.class, IpContainerIpV4Data.class);
>>>>   ipContainerIpV4CacheCfg.setCacheStoreSessionListenerFactories(cacheStoreSessionListenerFactory());
>>>>   ipContainerIpV4CacheCfg.setSqlIndexMaxInlineSize(84);
>>>>   RendezvousAffinityFunction affinityFunction = new RendezvousAffinityFunction();
>>>>   affinityFunction.setExcludeNeighbors(true);
>>>>   ipContainerIpV4CacheCfg.setAffinity(affinityFunction);
>>>>   ipContainerIpV4CacheCfg.setStatisticsEnabled(true);
>>>>
>>>>   return ipContainerIpV4CacheCfg;
>>>> }
>>>>
>>>>
>>>> Thanks,
>>>> Prasad
>>>>
>>>> On Wed, Jan 9, 2019 at 5:45 PM Павлухин Иван <vo...@gmail.com>
>>>> wrote:
>>>>
>>>>> Hi Prasad,
>>>>>
>>>>> > javax.cache.CacheException: Only pessimistic repeatable read
>>>>> transactions are supported at the moment.
>>>>> Exception mentioned by you should happen only for cache with
>>>>> TRANSACTIONAL_SNAPSHOT atomicity mode configured. Have you configured
>>>>> TRANSACTIONAL_SNAPSHOT atomicity for any cache? As Denis mentioned
>>>>> there are number of bugs related to TRANSACTIONAL_SNAPSHOT, e.g. [1].
>>>>>
>>>>> [1] https://issues.apache.org/jira/browse/IGNITE-10520
>>>>>
>>>>> вс, 6 янв. 2019 г. в 20:03, Denis Magda <dm...@apache.org>:
>>>>> >
>>>>> > Hello,
>>>>> >
>>>>> > Ignite versions prior to 2.7 never supported transactions for SQL
>>>>> queries. You were enlisting SQL in transactions for your own risk. Ignite
>>>>> version 2.7 introduced true transactional support for SQL based on MVCC.
>>>>> Presently it's in beta with GA to be available around Q2-Q3 this year. The
>>>>> community is working on optimizations.
>>>>> >
>>>>> > Please refer to this docs for more details:
>>>>> > https://apacheignite.readme.io/docs/multiversion-concurrency-control
>>>>> > https://apacheignite-sql.readme.io/docs/transactions
>>>>> >
>>>>> https://apacheignite-sql.readme.io/docs/multiversion-concurrency-control
>>>>> >
>>>>> > --
>>>>> > Denis
>>>>> >
>>>>> > On Sat, Jan 5, 2019 at 7:48 PM Prasad Bhalerao <
>>>>> prasadbhalerao1983@gmail.com> wrote:
>>>>> >>
>>>>> >> Can someone please explain if anything has changed in ignite 2.7.
>>>>> >>
>>>>> >> Started getting this exception after upgrading to 2.7.
>>>>> >>
>>>>> >>
>>>>> >> ---------- Forwarded message ---------
>>>>> >> From: Prasad Bhalerao <pr...@gmail.com>
>>>>> >> Date: Fri 4 Jan, 2019, 8:41 PM
>>>>> >> Subject: Re: Getting javax.cache.CacheException after upgrading to
>>>>> Ignite
>>>>> >> 2.7
>>>>> >> To: <us...@ignite.apache.org>
>>>>> >>
>>>>> >>
>>>>> >> Can someone please help me with this?
>>>>> >>
>>>>> >> On Thu 3 Jan, 2019, 7:15 PM Prasad Bhalerao <
>>>>> prasadbhalerao1983@gmail.com
>>>>> >> wrote:
>>>>> >>
>>>>> >> > Hi
>>>>> >> >
>>>>> >> > After upgrading to 2.7 version I am getting following exception.
>>>>> I am
>>>>> >> > executing a SELECT sql inside optimistic transaction with
>>>>> serialization
>>>>> >> > isolation level.
>>>>> >> >
>>>>> >> > 1) Has anything changed from 2.6 to 2.7 version?  This work fine
>>>>> prior to
>>>>> >> > 2.7 version.
>>>>> >> >
>>>>> >> > After changing it to Pessimistic and isolation level to
>>>>> REPEATABLE_READ it
>>>>> >> > works fine.
>>>>> >> >
>>>>> >> >
>>>>> >> >
>>>>> >> >
>>>>> >> >
>>>>> >> >
>>>>> >> > *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
>>>>> >> >
>>>>> com.qualys.agms.grid.dao.AbstractDataGridDAO.getFieldResultsByCriteria(AbstractDataGridDAO.java:85)*
>>>>> >> >
>>>>> >> > Thanks,
>>>>> >> > Prasad
>>>>> >> >
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Best regards,
>>>>> Ivan Pavlukhin
>>>>>
>>>>

Re: Getting javax.cache.CacheException after upgrading to Ignite 2.7 (IGNITE-10884 )

Posted by Ivan Pavlukhin <vo...@gmail.com>.
Hi Prasad,

The ticket is resolved with fix version 2.8, which was not released
yet. Unfortunately we overlooked to include it into 2.7.6 scope. Sorry
for that.

пт, 27 сент. 2019 г. в 16:49, Prasad Bhalerao <pr...@gmail.com>:
>
> Hi,
>
> this issue still exists in ignite 2.7.6 version but the ticket is marked as Fixed. I am still able to reproduce the issue using following reproducer.
>
> Because this issue I am not able to upgrade to latest version from 2.6.0 version.
>
> GitHub project: https://github.com/prasadbhalerao1983/IgniteTestPrj.git
>
> Please run IgniteTransactionTester class to check the issue.
>
> Thanks,
> Prasad
>
> On Thu, Jan 10, 2019 at 7:22 PM Ilya Kasnacheev <il...@gmail.com> wrote:
>>
>> Hello!
>>
>> I have filed a blocker ticket about it: https://issues.apache.org/jira/browse/IGNITE-10884
>>
>> Regards,
>> --
>> Ilya Kasnacheev
>>
>>
>> ср, 9 янв. 2019 г. в 17:43, Prasad Bhalerao <pr...@gmail.com>:
>>>
>>>
>>> Hi Ilya,
>>>
>>> I have created a reproducer for this issue and uploaded it to GitHub.
>>>
>>> GitHub project: https://github.com/prasadbhalerao1983/IgniteTestPrj.git
>>>
>>> Please run IgniteTransactionTester class to check the issue.
>>>
>>>
>>> Exception:
>>>
>>> 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)
>>>
>>> Thanks,
>>>
>>> Prasad
>>>
>>>
>>>
>>> On Wed, Jan 9, 2019 at 6:22 PM Ilya Kasnacheev <il...@gmail.com> wrote:
>>>>
>>>> Hello!
>>>>
>>>> It was discussed recently: http://apache-ignite-users.70518.x6.nabble.com/Migrate-from-2-6-to-2-7-td25738.html
>>>>
>>>> I don't think you will be able to use SQL from transactions in Ignite 2.7. While this looks like a regression, you will have to work around it for now.
>>>>
>>>> Do you have a small reproducer for this issue? I could file a ticket if you had. You can try to do it yourself, too.
>>>>
>>>> Regards,
>>>> --
>>>> Ilya Kasnacheev
>>>>
>>>>
>>>> ср, 9 янв. 2019 г. в 15:33, Prasad Bhalerao <pr...@gmail.com>:
>>>>>
>>>>> Hi,
>>>>>
>>>>> My cache configuration is as follows. I am using TRANSACTIONAL and not  TRANSACTIONAL_SNAPSHOT.
>>>>>
>>>>>
>>>>>
>>>>> private CacheConfiguration ipContainerIPV4CacheCfg() {
>>>>>
>>>>>   CacheConfiguration ipContainerIpV4CacheCfg = new CacheConfiguration<>(CacheName.IP_CONTAINER_IPV4_CACHE.name());
>>>>>   ipContainerIpV4CacheCfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
>>>>>   ipContainerIpV4CacheCfg.setWriteThrough(ENABLE_WRITE_THROUGH);
>>>>>   ipContainerIpV4CacheCfg.setReadThrough(false);
>>>>>   ipContainerIpV4CacheCfg.setRebalanceMode(CacheRebalanceMode.ASYNC);
>>>>>   ipContainerIpV4CacheCfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
>>>>>   ipContainerIpV4CacheCfg.setBackups(1);
>>>>>   Factory<IpContainerIpV4CacheStore> storeFactory = FactoryBuilder.factoryOf(IpContainerIpV4CacheStore.class);
>>>>>   ipContainerIpV4CacheCfg.setCacheStoreFactory(storeFactory);
>>>>>   ipContainerIpV4CacheCfg.setIndexedTypes(DefaultDataAffinityKey.class, IpContainerIpV4Data.class);
>>>>>   ipContainerIpV4CacheCfg.setCacheStoreSessionListenerFactories(cacheStoreSessionListenerFactory());
>>>>>   ipContainerIpV4CacheCfg.setSqlIndexMaxInlineSize(84);
>>>>>   RendezvousAffinityFunction affinityFunction = new RendezvousAffinityFunction();
>>>>>   affinityFunction.setExcludeNeighbors(true);
>>>>>   ipContainerIpV4CacheCfg.setAffinity(affinityFunction);
>>>>>   ipContainerIpV4CacheCfg.setStatisticsEnabled(true);
>>>>>
>>>>>   return ipContainerIpV4CacheCfg;
>>>>> }
>>>>>
>>>>>
>>>>> Thanks,
>>>>> Prasad
>>>>>
>>>>> On Wed, Jan 9, 2019 at 5:45 PM Павлухин Иван <vo...@gmail.com> wrote:
>>>>>>
>>>>>> Hi Prasad,
>>>>>>
>>>>>> > javax.cache.CacheException: Only pessimistic repeatable read transactions are supported at the moment.
>>>>>> Exception mentioned by you should happen only for cache with
>>>>>> TRANSACTIONAL_SNAPSHOT atomicity mode configured. Have you configured
>>>>>> TRANSACTIONAL_SNAPSHOT atomicity for any cache? As Denis mentioned
>>>>>> there are number of bugs related to TRANSACTIONAL_SNAPSHOT, e.g. [1].
>>>>>>
>>>>>> [1] https://issues.apache.org/jira/browse/IGNITE-10520
>>>>>>
>>>>>> вс, 6 янв. 2019 г. в 20:03, Denis Magda <dm...@apache.org>:
>>>>>> >
>>>>>> > Hello,
>>>>>> >
>>>>>> > Ignite versions prior to 2.7 never supported transactions for SQL queries. You were enlisting SQL in transactions for your own risk. Ignite version 2.7 introduced true transactional support for SQL based on MVCC. Presently it's in beta with GA to be available around Q2-Q3 this year. The community is working on optimizations.
>>>>>> >
>>>>>> > Please refer to this docs for more details:
>>>>>> > https://apacheignite.readme.io/docs/multiversion-concurrency-control
>>>>>> > https://apacheignite-sql.readme.io/docs/transactions
>>>>>> > https://apacheignite-sql.readme.io/docs/multiversion-concurrency-control
>>>>>> >
>>>>>> > --
>>>>>> > Denis
>>>>>> >
>>>>>> > On Sat, Jan 5, 2019 at 7:48 PM Prasad Bhalerao <pr...@gmail.com> wrote:
>>>>>> >>
>>>>>> >> Can someone please explain if anything has changed in ignite 2.7.
>>>>>> >>
>>>>>> >> Started getting this exception after upgrading to 2.7.
>>>>>> >>
>>>>>> >>
>>>>>> >> ---------- Forwarded message ---------
>>>>>> >> From: Prasad Bhalerao <pr...@gmail.com>
>>>>>> >> Date: Fri 4 Jan, 2019, 8:41 PM
>>>>>> >> Subject: Re: Getting javax.cache.CacheException after upgrading to Ignite
>>>>>> >> 2.7
>>>>>> >> To: <us...@ignite.apache.org>
>>>>>> >>
>>>>>> >>
>>>>>> >> Can someone please help me with this?
>>>>>> >>
>>>>>> >> On Thu 3 Jan, 2019, 7:15 PM Prasad Bhalerao <prasadbhalerao1983@gmail.com
>>>>>> >> wrote:
>>>>>> >>
>>>>>> >> > Hi
>>>>>> >> >
>>>>>> >> > After upgrading to 2.7 version I am getting following exception. I am
>>>>>> >> > executing a SELECT sql inside optimistic transaction with serialization
>>>>>> >> > isolation level.
>>>>>> >> >
>>>>>> >> > 1) Has anything changed from 2.6 to 2.7 version?  This work fine prior to
>>>>>> >> > 2.7 version.
>>>>>> >> >
>>>>>> >> > After changing it to Pessimistic and isolation level to REPEATABLE_READ it
>>>>>> >> > works fine.
>>>>>> >> >
>>>>>> >> >
>>>>>> >> >
>>>>>> >> >
>>>>>> >> >
>>>>>> >> >
>>>>>> >> > *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
>>>>>> >> > com.qualys.agms.grid.dao.AbstractDataGridDAO.getFieldResultsByCriteria(AbstractDataGridDAO.java:85)*
>>>>>> >> >
>>>>>> >> > Thanks,
>>>>>> >> > Prasad
>>>>>> >> >
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Best regards,
>>>>>> Ivan Pavlukhin



-- 
Best regards,
Ivan Pavlukhin