[ 
https://issues.apache.org/jira/browse/IGNITE-27609?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18053029#comment-18053029
 ] 

Andrey Khitrin commented on IGNITE-27609:
-----------------------------------------

I've found the following stacktrace in one of existing tests. A non-ignite part 
is omitted:
{code:java}
Caused by: org.apache.ignite.sql.SqlException
  at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710) 
~[?:?]
  at 
org.apache.ignite.internal.util.ExceptionUtils$1.copy(ExceptionUtils.java:952) 
~[ignite-core-3.2.0-SNAPSHOT.jar:?]
  at 
org.apache.ignite.internal.util.ExceptionUtils$ExceptionFactory.createCopy(ExceptionUtils.java:886)
 ~[ignite-core-3.2.0-SNAPSHOT.jar:?]
  at 
org.apache.ignite.internal.util.ExceptionUtils.copyExceptionWithCause(ExceptionUtils.java:688)
 ~[ignite-core-3.2.0-SNAPSHOT.jar:?]
  at 
org.apache.ignite.internal.util.ViewUtils.copyExceptionWithCauseIfPossible(ViewUtils.java:91)
 ~[ignite-core-3.2.0-SNAPSHOT.jar:?]
  at 
org.apache.ignite.internal.util.ViewUtils.ensurePublicException(ViewUtils.java:71)
 ~[ignite-core-3.2.0-SNAPSHOT.jar:?]
  at 
org.apache.ignite.internal.client.TcpClientChannel.lambda$completeAsync$5(TcpClientChannel.java:475)
 ~[ignite-client-3.2.0-SNAPSHOT.jar:?]
  at 
java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426)
 ~[?:?]
  at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) ~[?:?]
  at 
java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
 ~[?:?]
  at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656) ~[?:?]
  at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594) ~[?:?]
  at 
java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183) 
~[?:?]
Caused by: org.apache.ignite.sql.SqlException
  at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:710) 
~[?:?]
  at 
org.apache.ignite.internal.util.ExceptionUtils$1.copy(ExceptionUtils.java:952) 
~[ignite-core-3.2.0-SNAPSHOT.jar:?]
  at 
org.apache.ignite.internal.util.ExceptionUtils$ExceptionFactory.createCopy(ExceptionUtils.java:886)
 ~[ignite-core-3.2.0-SNAPSHOT.jar:?]
  at 
org.apache.ignite.internal.util.ExceptionUtils.copyExceptionWithCause(ExceptionUtils.java:688)
 ~[ignite-core-3.2.0-SNAPSHOT.jar:?]
  at 
org.apache.ignite.internal.client.TcpClientChannel.readError(TcpClientChannel.java:671)
 ~[ignite-client-3.2.0-SNAPSHOT.jar:?]
  at 
org.apache.ignite.internal.client.TcpClientChannel.processNextMessage(TcpClientChannel.java:544)
 ~[ignite-client-3.2.0-SNAPSHOT.jar:?]
  at 
org.apache.ignite.internal.client.TcpClientChannel.onMessage(TcpClientChannel.java:317)
 ~[ignite-client-3.2.0-SNAPSHOT.jar:?]
  at 
org.apache.ignite.internal.client.io.netty.NettyClientConnection.onMessage(NettyClientConnection.java:118)
 ~[ignite-client-3.2.0-SNAPSHOT.jar:?]
  at 
org.apache.ignite.internal.client.io.netty.NettyClientMessageHandler.channelRead(NettyClientMessageHandler.java:34)
 ~[ignite-client-3.2.0-SNAPSHOT.jar:?]
  at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:356)
 ~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:361)
 ~[netty-codec-base-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:325)
 ~[netty-codec-base-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:356)
 ~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.handler.flush.FlushConsolidationHandler.channelRead(FlushConsolidationHandler.java:152)
 ~[netty-handler-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:354)
 ~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1429)
 ~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918)
 ~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:172)
 ~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.handle(AbstractNioChannel.java:445)
 ~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.nio.NioIoHandler$DefaultNioRegistration.handle(NioIoHandler.java:388)
 ~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.nio.NioIoHandler.processSelectedKey(NioIoHandler.java:596) 
~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.nio.NioIoHandler.processSelectedKeysOptimized(NioIoHandler.java:571)
 ~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.nio.NioIoHandler.processSelectedKeys(NioIoHandler.java:512) 
~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at io.netty.channel.nio.NioIoHandler.run(NioIoHandler.java:484) 
~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.SingleThreadIoEventLoop.runIo(SingleThreadIoEventLoop.java:225)
 ~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:196) 
~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1195)
 ~[netty-common-4.2.9.Final.jar:4.2.9.Final]
  at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) 
~[netty-common-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 ~[netty-common-4.2.9.Final.jar:4.2.9.Final]
  ... 1 more
Caused by: org.apache.ignite.lang.IgniteException: 
org.apache.ignite.sql.SqlException: IGN-CMN-65535 TraceId:70795d2b
  at 
org.apache.ignite.internal.lang.SqlExceptionMapperUtil.mapToPublicSqlException(SqlExceptionMapperUtil.java:77)
  at 
org.apache.ignite.internal.sql.engine.exec.fsm.ProgramExecutionState.notifyError(ProgramExecutionState.java:46)
  at 
org.apache.ignite.internal.sql.engine.exec.fsm.Program.finalizeActiveProgram(Program.java:150)
  at 
org.apache.ignite.internal.sql.engine.exec.fsm.Program.lambda$run$2(Program.java:108)
  at 
java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
  at 
java.base/java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:883)
  at 
java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2253)
  at org.apache.ignite.internal.sql.engine.exec.fsm.Program.run(Program.java:99)
  at 
org.apache.ignite.internal.sql.engine.exec.fsm.Query.runProgram(Query.java:140)
  at 
org.apache.ignite.internal.sql.engine.exec.fsm.QueryExecutor.executeQuery(QueryExecutor.java:205)
  at 
org.apache.ignite.internal.sql.engine.SqlQueryProcessor.queryAsync(SqlQueryProcessor.java:499)
  at 
org.apache.ignite.client.handler.requests.sql.ClientSqlExecuteRequest.executeAsync(ClientSqlExecuteRequest.java:176)
  at 
org.apache.ignite.client.handler.requests.sql.ClientSqlExecuteRequest.lambda$process$4(ClientSqlExecuteRequest.java:132)
  at 
java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072)
  at 
java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
  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.lang.IgniteException: IGN-CMN-65535 
TraceId:70795d2b
  at 
org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.lambda$mapToPublicException$2(IgniteExceptionMapperUtil.java:88)
  at 
org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapCheckingResultIsPublic(IgniteExceptionMapperUtil.java:141)
  at 
org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapToPublicException(IgniteExceptionMapperUtil.java:137)
  at 
org.apache.ignite.internal.lang.IgniteExceptionMapperUtil.mapToPublicException(IgniteExceptionMapperUtil.java:88)
  at 
org.apache.ignite.internal.lang.SqlExceptionMapperUtil.mapToPublicSqlException(SqlExceptionMapperUtil.java:67)
  ... 17 more
Caused by: java.util.NoSuchElementException
  at java.base/java.util.ArrayDeque.removeFirst(ArrayDeque.java:363)
  at java.base/java.util.ArrayDeque.pop(ArrayDeque.java:594)
  at org.apache.calcite.rel.RelShuttleImpl.visitChild(RelShuttleImpl.java:67)
  at org.apache.calcite.rel.RelShuttleImpl.visitChildren(RelShuttleImpl.java:73)
  at org.apache.calcite.rel.RelShuttleImpl.visit(RelShuttleImpl.java:151)
  at 
org.apache.ignite.internal.sql.engine.prepare.PlannerHelper$WindowNodeIsNotPresentedValidator.visit(PlannerHelper.java:681)
  at 
org.apache.calcite.rel.RelHomogeneousShuttle.visit(RelHomogeneousShuttle.java:103)
  at 
org.apache.calcite.rel.logical.LogicalTableModify.accept(LogicalTableModify.java:98)
  at 
org.apache.ignite.internal.sql.engine.prepare.PlannerHelper.tryDecorrelate(PlannerHelper.java:267)
  at 
org.apache.ignite.internal.sql.engine.prepare.PlannerHelper.optimize(PlannerHelper.java:168)
  at 
org.apache.ignite.internal.sql.engine.prepare.PrepareServiceImpl.doOptimize(PrepareServiceImpl.java:1027)
  at 
org.apache.ignite.internal.sql.engine.prepare.PrepareServiceImpl.buildDmlPlan(PrepareServiceImpl.java:842)
  at 
org.apache.ignite.internal.sql.engine.prepare.PrepareServiceImpl.lambda$prepareDml$27(PrepareServiceImpl.java:832)
  at 
java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
  ... 3 more
  at 
org.apache.ignite.internal.client.TcpClientChannel.readError(TcpClientChannel.java:629)
 ~[ignite-client-3.2.0-SNAPSHOT.jar:?]
  at 
org.apache.ignite.internal.client.TcpClientChannel.processNextMessage(TcpClientChannel.java:544)
 ~[ignite-client-3.2.0-SNAPSHOT.jar:?]
  at 
org.apache.ignite.internal.client.TcpClientChannel.onMessage(TcpClientChannel.java:317)
 ~[ignite-client-3.2.0-SNAPSHOT.jar:?]
  at 
org.apache.ignite.internal.client.io.netty.NettyClientConnection.onMessage(NettyClientConnection.java:118)
 ~[ignite-client-3.2.0-SNAPSHOT.jar:?]
  at 
org.apache.ignite.internal.client.io.netty.NettyClientMessageHandler.channelRead(NettyClientMessageHandler.java:34)
 ~[ignite-client-3.2.0-SNAPSHOT.jar:?]
  at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:356)
 ~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:361)
 ~[netty-codec-base-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:325)
 ~[netty-codec-base-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:356)
 ~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.handler.flush.FlushConsolidationHandler.channelRead(FlushConsolidationHandler.java:152)
 ~[netty-handler-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:354)
 ~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1429)
 ~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918)
 ~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:172)
 ~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.handle(AbstractNioChannel.java:445)
 ~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.nio.NioIoHandler$DefaultNioRegistration.handle(NioIoHandler.java:388)
 ~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.nio.NioIoHandler.processSelectedKey(NioIoHandler.java:596) 
~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.nio.NioIoHandler.processSelectedKeysOptimized(NioIoHandler.java:571)
 ~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.nio.NioIoHandler.processSelectedKeys(NioIoHandler.java:512) 
~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at io.netty.channel.nio.NioIoHandler.run(NioIoHandler.java:484) 
~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.SingleThreadIoEventLoop.runIo(SingleThreadIoEventLoop.java:225)
 ~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:196) 
~[netty-transport-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1195)
 ~[netty-common-4.2.9.Final.jar:4.2.9.Final]
  at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) 
~[netty-common-4.2.9.Final.jar:4.2.9.Final]
  at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 ~[netty-common-4.2.9.Final.jar:4.2.9.Final]
  ... 1 more
{code}
Therefore, I could consider that this issue has occured as a result of 
IGNITE-22092:
 * A root exception occurs in PlannerHelper class that was introduced here;
 * Commit date is Jan 14.

> [SQL] Transactional consistency issues over JDBC
> ------------------------------------------------
>
>                 Key: IGNITE-27609
>                 URL: https://issues.apache.org/jira/browse/IGNITE-27609
>             Project: Ignite
>          Issue Type: Bug
>          Components: sql ai3
>    Affects Versions: 3.2
>            Reporter: Andrey Khitrin
>            Priority: Critical
>
> Since 2026-01-15, our automated tests have started to periodically find 
> consistency issues with transactional access over JDBC. I'm currently working 
> on a simple reproducer, but the general approach for reproduction is the 
> following:
>  # Use JDBC (I'm not sure if thin client is affected or not);
>  # Use transactions;
>  # Read/update the same table from several threads;
>  # Check consistency of updated table after some time.
> Currently, there are at least two complex tests that periodically (~10% of 
> time) fail on newer (after Jan 15) AI3 builds. Therefore, I consider that 
> some breaking change may have had place slightly before that (somewhere 
> around Jan 13-14, maybe). More information will be added.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to