I experienced this issue with Ignite Core 2.17.0. The following error log was written:

Failed to send event notification to node: f9529bce-8137-4afb-b33e-5f3dc30eb6ab


The stacktrace points to the serializer registered in our binary configuration:

class org.apache.ignite.IgniteCheckedException: Failed to serialize object [typeName=org.apache.ignite.util.deque.FastSizeDeque]   at org.apache.ignite.internal.util.IgniteUtils.marshal(IgniteUtils.java:10864)   at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.sendWithRetries(GridContinuousProcessor.java:1951)   at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.sendWithRetries(GridContinuousProcessor.java:1932)   at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.sendWithRetries(GridContinuousProcessor.java:1914)   at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.sendNotification(GridContinuousProcessor.java:1319)   at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.addNotification(GridContinuousProcessor.java:1256)   at org.apache.ignite.internal.GridEventConsumeHandler$2$1.run(GridEventConsumeHandler.java:250)   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: class org.apache.ignite.binary.BinaryObjectException: Failed to serialize object [typeName=org.apache.ignite.util.deque.FastSizeDeque]   at org.apache.ignite.internal.binary.BinaryClassDescriptor.write(BinaryClassDescriptor.java:916)   at org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal0(BinaryWriterExImpl.java:237)   at org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal(BinaryWriterExImpl.java:170)   at org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal(BinaryWriterExImpl.java:157)   at org.apache.ignite.internal.binary.GridBinaryMarshaller.marshal(GridBinaryMarshaller.java:254)   at org.apache.ignite.internal.binary.BinaryMarshaller.marshal0(BinaryMarshaller.java:84)   at org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.marshal(AbstractNodeNameAwareMarshaller.java:56)   at org.apache.ignite.internal.util.IgniteUtils.marshal(IgniteUtils.java:10858) ... 9 more Caused by: java.lang.ClassCastException: class org.apache.ignite.util.deque.FastSizeDeque cannot be cast to class java.io.Serializable (org.apache.ignite.util.deque.FastSizeDeque is in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @1af7f54a; java.io.Serializable is in module java.base of loader 'bootstrap')
  at com.example.MySerializer.writeBinary(MySerializer.java:16)
  at org.apache.ignite.internal.binary.BinaryClassDescriptor.write(BinaryClassDescriptor.java:826) ... 16 more

The error had no functional impact on us. Still, it raises the question why a non-serializable object is supposed to be handled by BinarySerializer. We would not have expected an Ignite utility type (FastSizeDeque) to be passed in. The stacktrace implies that the BinaryClassDescriptorhad a BinaryWriteMode.BINARYin that case. But even without a serializer it looks like the write process would not have been successful because FastSizeDequeis not Binarylizable.

Could you please fix or clarify the issue?

Reply via email to