[
https://issues.apache.org/jira/browse/IGNITE-20385?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17773992#comment-17773992
]
Yury Gerzhedovich commented on IGNITE-20385:
--------------------------------------------
[~xtern]LGTM
> Incorrect code INTERNAL_ERROR on node left
> -------------------------------------------
>
> Key: IGNITE-20385
> URL: https://issues.apache.org/jira/browse/IGNITE-20385
> Project: Ignite
> Issue Type: Improvement
> Components: sql
> Reporter: Yury Gerzhedovich
> Assignee: Pavel Pereslegin
> Priority: Major
> Labels: ignite-3
> Time Spent: 1h
> Remaining Estimate: 0h
>
> During execute SQL query we could got Exception with INTERNAL_ERR in case
> remote node left. Node left sholdn't be interpret as INTERNAL ERROR, due to
> it's normal situation and user can be informed about it.
> Let's map the situation to SqlException with code NODE_LEFT_ERR.
> Also need to check wich similar situation we could cover here.
> As start point need to find all places where used
> ExceptionUtils.withCauseAndCode method
> {code:java}
> org.apache.ignite.lang.IgniteException: IGN-CMN-65535
> TraceId:6a9a41f8-a6f4-44f1-87b0-4516c514d1df Unable to send fragment
> [targetNode=idt_n_1, fragmentId=1, cause=Node left the cluster. Node: idt_n_1]
> at
> org.apache.ignite.lang.IgniteExceptionMapperUtil.mapToPublicException(IgniteExceptionMapperUtil.java:106)
> at
> org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.wrapIfNecessary(AsyncSqlCursorImpl.java:100)
> at
> org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.lambda$requestNextAsync$0(AsyncSqlCursorImpl.java:76)
> at
> java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
> at
> java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:907)
> at
> java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
> at
> java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088)
> at
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl$DistributedQueryManager.lambda$execute$15(ExecutionServiceImpl.java:747)
> at
> java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
> at
> java.base/java.util.concurrent.CompletableFuture.uniHandleStage(CompletableFuture.java:946)
> at
> java.base/java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:2266)
> at
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl$DistributedQueryManager.lambda$execute$17(ExecutionServiceImpl.java:726)
> at
> java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
> at
> java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
> at
> java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
> at
> org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:81)
> 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)
> Suppressed: java.lang.RuntimeException: This is a trimmed root
> ...
> Caused by: org.apache.ignite.lang.IgniteInternalException: IGN-CMN-65535
> TraceId:6a9a41f8-a6f4-44f1-87b0-4516c514d1df Unable to send fragment
> [targetNode=idt_n_1, fragmentId=1, cause=Node left the cluster. Node: idt_n_1]
> at
> org.apache.ignite.internal.util.ExceptionUtils.lambda$withCauseAndCode$3(ExceptionUtils.java:440)
> at
> org.apache.ignite.internal.util.ExceptionUtils.withCauseInternal(ExceptionUtils.java:467)
> at
> org.apache.ignite.internal.util.ExceptionUtils.withCauseAndCode(ExceptionUtils.java:440)
> at
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl$DistributedQueryManager.lambda$execute$12(ExecutionServiceImpl.java:714)
> at
> java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
> at
> java.base/java.util.concurrent.CompletableFuture.uniHandleStage(CompletableFuture.java:946)
> at
> java.base/java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:2266)
> at
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl$DistributedQueryManager.lambda$execute$17(ExecutionServiceImpl.java:698)
> ... 7 more
> Caused by: org.apache.ignite.internal.sql.engine.NodeLeftException: IGN-CMN-5
> TraceId:bf122f9c-e697-4dfa-b59f-0692595fa94c Node left the cluster. Node:
> idt_n_1
> at
> org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.send(MessageServiceImpl.java:92)
> at
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl$DistributedQueryManager.sendFragment(ExecutionServiceImpl.java:505)
> at
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl$DistributedQueryManager.lambda$execute$17(ExecutionServiceImpl.java:695)
> ... 7 more
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)