Vadim Pakhnushev created IGNITE-26546:
-----------------------------------------
Summary: Custom exceptions are not marshalled
Key: IGNITE-26546
URL: https://issues.apache.org/jira/browse/IGNITE-26546
Project: Ignite
Issue Type: Bug
Components: compute ai3
Reporter: Vadim Pakhnushev
If compute job throws an exception defined in the deployment unit but it's not
loaded in the app class loader of the node, the execution will not complete and
the following exception will be logged:
{noformat}
[WARN
][%icts_n_3344%MessagingService-inbound-Default-0-0][DefaultMessagingService]
Uncaught exception [thread=IgniteThread
[name=%icts_n_3344%MessagingService-inbound-Default-0-0]]
org.apache.ignite.lang.IgniteException: Failed to unmarshal message: No local
class exists for 'org.example.v2.JobException'
at
org.apache.ignite.internal.network.DefaultMessagingService.unmarshalMessage(DefaultMessagingService.java:540)
at
org.apache.ignite.internal.network.DefaultMessagingService.handleInvokeResponse(DefaultMessagingService.java:530)
at
org.apache.ignite.internal.network.DefaultMessagingService.lambda$handleMessageFromNetwork$5(DefaultMessagingService.java:465)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.lang.IllegalStateException: No local class exists for
'org.example.v2.JobException'
at
org.apache.ignite.internal.network.serialization.ClassDescriptor.localClass(ClassDescriptor.java:462)
at
org.apache.ignite.internal.network.serialization.marshal.StructuredObjectMarshaller.preInstantiateStructuredObject(StructuredObjectMarshaller.java:207)
at
org.apache.ignite.internal.network.serialization.marshal.DefaultUserObjectMarshaller.preInstantiate(DefaultUserObjectMarshaller.java:421)
at
org.apache.ignite.internal.network.serialization.marshal.DefaultUserObjectMarshaller.readIdentifiableInTwoStages(DefaultUserObjectMarshaller.java:398)
at
org.apache.ignite.internal.network.serialization.marshal.DefaultUserObjectMarshaller.readObject(DefaultUserObjectMarshaller.java:363)
at
org.apache.ignite.internal.network.serialization.marshal.DefaultUserObjectMarshaller.unmarshalFromInput(DefaultUserObjectMarshaller.java:319)
at
org.apache.ignite.internal.network.serialization.marshal.DefaultUserObjectMarshaller.unmarshalShared(DefaultUserObjectMarshaller.java:295)
at
org.apache.ignite.internal.network.serialization.marshal.DefaultUserObjectMarshaller.unmarshalShared(DefaultUserObjectMarshaller.java:290)
at
org.apache.ignite.internal.network.serialization.marshal.DefaultUserObjectMarshaller.unmarshal(DefaultUserObjectMarshaller.java:279)
at
org.apache.ignite.internal.compute.message.JobResultResponseImpl.unmarshal(JobResultResponseImpl.java:131)
at
org.apache.ignite.internal.network.message.InvokeResponseImpl.unmarshal(InvokeResponseImpl.java:105)
at
org.apache.ignite.internal.network.DefaultMessagingService.unmarshalMessage(DefaultMessagingService.java:538)
... 5 more
{noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)