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]

Reply via email to