tmgodinho commented on code in PR #7854:
URL: https://github.com/apache/ignite-3/pull/7854#discussion_r3011886864
##########
modules/client/src/main/java/org/apache/ignite/internal/client/TcpClientChannel.java:
##########
@@ -647,12 +647,39 @@ private static Throwable readError(ClientMessageUnpacker
unpacker) {
var errClassName = unpacker.unpackString();
var errMsg = unpacker.tryUnpackNil() ? null : unpacker.unpackString();
- boolean retriable = false;
+ @Nullable String causeStr = unpacker.tryUnpackNil() ? null :
unpacker.unpackString();
+
+ String msg;
+ if (causeStr == null) {
+ msg = errMsg;
+ } else if (errMsg == null) {
+ msg = causeStr;
+ } else {
+ // Remove some duplication between errorMsg and cause.
Review Comment:
The duplication if between the causeStr and the error classname constructor.
For some reason, I didn't remember it correctly and thought it was caused by
the errorMsg itself. I just use the errorMsg to find the useful part of the
cause. The other clients could also recreate the message.
It would likely be faster for me to have recreated that part of the message
instead of grepping by errMsg. This was some test solution that ended up in the
PR.
I ofund this example for the compute exceptions. I don't remember if I found
more or not.
Reproducible by this test:
https://github.com/apache/ignite-3/blob/b9b4b54a847159c7401bffef59c72277049af722/modules/client/src/integrationTest/java/org/apache/ignite/internal/client/ItThinClientComputeTest.java#L148-L160
IF NOT TRIMMED.
```
org.apache.ignite.compute.ComputeException: IGN-COMPUTE-14
org.apache.ignite.compute.ComputeException: IGN-COMPUTE-14 Job execution
cancelled TraceId:9339cf29
at
org.apache.ignite.internal.compute.ComputeUtils.mapToComputeException(ComputeUtils.java:346)
at
org.apache.ignite.internal.compute.ComputeUtils.lambda$convertToComputeFuture$1(ComputeUtils.java:335)
at
java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:934)
at
java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:911)
at
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
at
java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2194)
at
org.apache.ignite.internal.compute.queue.QueueExecutionImpl.lambda$run$1(QueueExecutionImpl.java:215)
at
java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)
at
java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)
at
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
at
java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2194)
at
org.apache.ignite.internal.compute.queue.QueueEntry.run(QueueEntry.java:90)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.util.concurrent.CancellationException
at
org.apache.ignite.internal.client.ItThinClientComputeTest$InfiniteJob.executeAsync(ItThinClientComputeTest.java:992)
at
org.apache.ignite.internal.compute.executor.ComputeExecutorImpl.lambda$unmarshalExecMarshal$3(ComputeExecutorImpl.java:238)
at
org.apache.ignite.internal.compute.executor.ComputeExecutorImpl.lambda$addObservableTimestamp$1(ComputeExecutorImpl.java:170)
at
org.apache.ignite.internal.compute.queue.QueueExecutionImpl.lambda$run$0(QueueExecutionImpl.java:190)
at
org.apache.ignite.internal.compute.queue.QueueEntry.run(QueueEntry.java:81)
... 3 more
TraceId:9339cf29
```
IF TRIMMED
```
org.apache.ignite.compute.ComputeException: IGN-COMPUTE-14 Job execution
cancelled TraceId:9339cf29
at
org.apache.ignite.internal.compute.ComputeUtils.mapToComputeException(ComputeUtils.java:346)
at
org.apache.ignite.internal.compute.ComputeUtils.lambda$convertToComputeFuture$1(ComputeUtils.java:335)
at
java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:934)
at
java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:911)
at
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
at
java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2194)
at
org.apache.ignite.internal.compute.queue.QueueExecutionImpl.lambda$run$1(QueueExecutionImpl.java:215)
at
java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)
at
java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)
at
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
at
java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2194)
at
org.apache.ignite.internal.compute.queue.QueueEntry.run(QueueEntry.java:90)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.util.concurrent.CancellationException
at
org.apache.ignite.internal.client.ItThinClientComputeTest$InfiniteJob.executeAsync(ItThinClientComputeTest.java:992)
at
org.apache.ignite.internal.compute.executor.ComputeExecutorImpl.lambda$unmarshalExecMarshal$3(ComputeExecutorImpl.java:238)
at
org.apache.ignite.internal.compute.executor.ComputeExecutorImpl.lambda$addObservableTimestamp$1(ComputeExecutorImpl.java:170)
at
org.apache.ignite.internal.compute.queue.QueueExecutionImpl.lambda$run$0(QueueExecutionImpl.java:190)
at
org.apache.ignite.internal.compute.queue.QueueEntry.run(QueueEntry.java:81)
... 3 more
TraceId:9339cf29
```
Variables
CAUSE STR FROM SERVER:
```
org.apache.ignite.compute.ComputeException: IGN-COMPUTE-14 Job execution
cancelled TraceId:9339cf29
at
org.apache.ignite.internal.compute.ComputeUtils.mapToComputeException(ComputeUtils.java:346)
at
org.apache.ignite.internal.compute.ComputeUtils.lambda$convertToComputeFuture$1(ComputeUtils.java:335)
at
java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:934)
at
java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:911)
at
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
at
java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2194)
at
org.apache.ignite.internal.compute.queue.QueueExecutionImpl.lambda$run$1(QueueExecutionImpl.java:215)
at
java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)
at
java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841)
at
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
at
java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2194)
at
org.apache.ignite.internal.compute.queue.QueueEntry.run(QueueEntry.java:90)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.util.concurrent.CancellationException
at
org.apache.ignite.internal.client.ItThinClientComputeTest$InfiniteJob.executeAsync(ItThinClientComputeTest.java:992)
at
org.apache.ignite.internal.compute.executor.ComputeExecutorImpl.lambda$unmarshalExecMarshal$3(ComputeExecutorImpl.java:238)
at
org.apache.ignite.internal.compute.executor.ComputeExecutorImpl.lambda$addObservableTimestamp$1(ComputeExecutorImpl.java:170)
at
org.apache.ignite.internal.compute.queue.QueueExecutionImpl.lambda$run$0(QueueExecutionImpl.java:190)
at
org.apache.ignite.internal.compute.queue.QueueEntry.run(QueueEntry.java:81)
... 3 more
```
ERR CLASSNAME: `org.apache.ignite.compute.ComputeException`
errMsg: `Job execution cancelled`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]