ignite-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Courtney Robinson <courtney.robin...@hypi.io>
Subject Re: Transaction already completed errors
Date Wed, 15 Apr 2020 14:52:32 GMT
Thanks for letting me know.
It's worth adding this to the docs it doesn't currently include any warning
or notice that TRANSACTIONAL_SNAPSHOT isn't ready for production in
https://apacheignite-sql.readme.io/docs/multiversion-concurrency-control
Is there a set of outstanding tickets I can keep track of? Depending on
time needed, we could potentially contribute to getting this released.

Regards,
Courtney Robinson
Founder and CEO, Hypi
Tel: ++44 208 123 2413 (GMT+0) <https://hypi.io>

<https://hypi.io>
https://hypi.io


On Wed, Apr 15, 2020 at 3:26 PM Evgenii Zhuravlev <e.zhuravlev.wk@gmail.com>
wrote:

> Hi Courtney,
>
> MVCC is not production ready yet, so, I wouldn't recommend using
> TRANSACTIONAL_SNAPSHOT atomicity for now.
>
> Best Regards,
> Evgenii
>
> ср, 15 апр. 2020 г. в 06:02, Courtney Robinson <courtney.robinson@hypi.io
> >:
>
>> We're upgrading to Ignite 2.8 and are starting to use SQL tables. In all
>> previous work we've used the key value APIs directly.
>>
>> After getting everything working, we're regularly seeing "transaction
>> already completed" errors when executing SELECT queries. A stack trace is
>> included at the end.
>> All tables are created with
>> "template=partitioned,backups=2,data_region=hypi,affinity_key=instanceId,atomicity=TRANSACTIONAL_SNAPSHOT"
>>
>> I found https://issues.apache.org/jira/browse/IGNITE-10763 which
>> suggested the problem was fixed in 2.8 and "is caused by leaked tx stored
>> in ThreadLocal".
>>
>> Has anyone else encountered this issue and is there a fix?
>> Just to be clear, we're definitely not performing any insert/update/merge
>> operations, only selects when this error occurs.
>>
>> From that issue I linked to, assuming the problem is still a leaked
>> ThreadLocal is there any workaround for this?
>> We have a managed thread pool (you can see Pool.java in the trace), I've
>> tried not to use it but still get the error because I guess it's now just
>> defaulting to Spring Boot's request thread pool.
>>
>>
>> 2020-04-13 19:56:31.548 INFO 9 --- [io-10000-exec-2] io.hypi.arc.os.gql.
>>> HypiGraphQLException : GraphQL error, path: null, source: null, msg:
>>> null javax.cache.CacheException: Transaction is already completed. at
>>> org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(
>>> IgniteCacheProxyImpl.java:820) at org.apache.ignite.internal.processors.
>>> cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:753) at org.
>>> apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.query
>>> (GatewayProtectedCacheProxy.java:424) at io.hypi.arc.os.ignite.
>>> IgniteRepo.findInstanceCtx(IgniteRepo.java:134) at io.hypi.arc.os.
>>> handlers.BaseHandler.evaluateQuery(BaseHandler.java:38) at io.hypi.arc.
>>> os.handlers.HttpHandler.lambda$runQuery$0(HttpHandler.java:145) at io.
>>> hypi.arc.base.Pool.apply(Pool.java:109) at io.hypi.arc.base.Pool.
>>> lambda$async$3(Pool.java:93) at com.google.common.util.concurrent.
>>> TrustedListenableFutureTask$TrustedFutureInterruptibleTask.
>>> runInterruptibly(TrustedListenableFutureTask.java:125) at com.google.
>>> common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69)
>>> at com.google.common.util.concurrent.TrustedListenableFutureTask.run(
>>> TrustedListenableFutureTask.java:78) at java.base/java.util.concurrent.
>>> Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.
>>> util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.
>>> util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(
>>> ScheduledThreadPoolExecutor.java:304) at java.base/java.util.concurrent.
>>> ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.
>>> java:628) at java.base/java.lang.Thread.run(Thread.java:834) Caused by:
>>> org.apache.ignite.transactions.TransactionAlreadyCompletedException:
>>> Transaction is already completed. at org.apache.ignite.internal.util.
>>> IgniteUtils$18.apply(IgniteUtils.java:991) at org.apache.ignite.internal
>>> .util.IgniteUtils$18.apply(IgniteUtils.java:989) at org.apache.ignite.
>>> internal.util.IgniteUtils.convertException(IgniteUtils.java:1062) at org
>>> .apache.ignite.internal.processors.query.h2.IgniteH2Indexing.
>>> executeSelect(IgniteH2Indexing.java:1292) at org.apache.ignite.internal.
>>> processors.query.h2.IgniteH2Indexing.querySqlFields(IgniteH2Indexing.
>>> java:1117) at org.apache.ignite.internal.processors.query.
>>> GridQueryProcessor$3.applyx(GridQueryProcessor.java:2406) at org.apache.
>>> ignite.internal.processors.query.GridQueryProcessor$3.applyx(
>>> GridQueryProcessor.java:2402) at org.apache.ignite.internal.util.lang.
>>> IgniteOutClosureX.apply(IgniteOutClosureX.java:36) at org.apache.ignite.
>>> internal.processors.query.GridQueryProcessor.executeQuery(
>>> GridQueryProcessor.java:2919) at org.apache.ignite.internal.processors.
>>> query.GridQueryProcessor.lambda$querySqlFields$1(GridQueryProcessor.java
>>> :2422) at org.apache.ignite.internal.processors.query.GridQueryProcessor
>>> .executeQuerySafe(GridQueryProcessor.java:2460) at org.apache.ignite.
>>> internal.processors.query.GridQueryProcessor.querySqlFields(
>>> GridQueryProcessor.java:2396) at org.apache.ignite.internal.processors.
>>> query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2323)
>>> at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.
>>> query(IgniteCacheProxyImpl.java:805) ... 16 common frames omitted Caused
>>> by: org.apache.ignite.internal.transactions.
>>> IgniteTxAlreadyCompletedCheckedException: Transaction is already
>>> completed. at org.apache.ignite.internal.processors.cache.mvcc.MvccUtils
>>> .checkActive(MvccUtils.java:684) at org.apache.ignite.internal.
>>> processors.query.h2.IgniteH2Indexing.executeSelect(IgniteH2Indexing.java
>>> :1255) ... 26 common frames omitted
>>>
>> Regards,
>> Courtney Robinson
>> Founder and CEO, Hypi
>> Tel: ++44 208 123 2413 (GMT+0) <https://hypi.io>
>>
>> <https://hypi.io>
>> https://hypi.io
>>
>

Mime
View raw message