[ https://issues.apache.org/jira/browse/IGNITE-22597?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17860734#comment-17860734 ]
Kirill Tkalenko commented on IGNITE-22597: ------------------------------------------ This also needs to be fixed. {noformat} Caused by: org.apache.ignite.internal.storage.StorageException: IGN-STORAGE-1 TraceId:66de6dce-e425-4815-b910-295bc21f1172 Error while executing addWriteCommitted: [rowId=RowId [partitionId=8, uuid=0d5b2f79-3586-4ecc-a248-dcbb74926f78], tableId=10, partitionId=8] at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) at org.apache.ignite.internal.raft.RaftGroupServiceImpl.handleSmErrorResponse(RaftGroupServiceImpl.java:682) ... 27 more {noformat} > Exception trace id is not propagated from RAFT listener > ------------------------------------------------------- > > Key: IGNITE-22597 > URL: https://issues.apache.org/jira/browse/IGNITE-22597 > Project: Ignite > Issue Type: Bug > Reporter: Vladislav Pyatkov > Priority: Major > Labels: ignite-3 > Attachments: error_log.txt > > > h3. Motivation > The trace id is generated at the place where the original exception was > created and should be propogated to other derevatives. Right now, we send > only an exception message and class name to the RAFT listener response. > {code:java} > private void sendSMError(RpcContext ctx, Throwable th, boolean compacted) { > RpcRequests.SMErrorResponse resp = factory.sMErrorResponse() > .error(compacted ? new SMCompactedThrowable(th) : new > SMFullThrowable(th)) > .build(); > ctx.sendResponse(resp); > LOG.info("Error occurred on a user's state machine", th); > } > {code} > Hence, we cannot restore the trace id and create an exception with a new > trace id: > {code:java} > Throwable restoredTh = (Throwable) > Class.forName(compactedThrowable.throwableClassName()) > .getConstructor(String.class) > .newInstance(compactedThrowable.throwableMessage()); > fut.completeExceptionally(restoredTh); > {code} > h3. Definition of done > * Both attached logs should be logged with the same trace id. > * Massage in the RAFT listener should be logged in error (or warning) level. -- This message was sent by Atlassian Jira (v8.20.10#820010)