ignite-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Evgenii Zhuravlev <e.zhuravlev...@gmail.com>
Subject Re: Transaction already completed errors
Date Wed, 15 Apr 2020 14:26:12 GMT
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