Hi,
We are running into an issue with serialization security in Ignite 2.5.0 with
whitelisting enabled. We start the cache inside an application in embedded
mode. The cache is partitioned with read through/write behind enabled. I am
getting the below exception while working with the cache. Note that this does
not happen always.
2020-08-04 14:05:38.482 [sys-#41] ERROR
ignite.internal.processors.continuous.GridContinuousProcessor - Failed to
process message (ignoring): GridContinuousMessage [type=MSG_EVT_NOTIFICATION,
routineId=e6f15316-b9c4-4316-878f-188401f64acf, data=null, futId=null]
org.apache.ignite.IgniteCheckedException: Deserialization of class
org.apache.ignite.util.deque.FastSizeDeque is disallowed.
at
org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:9968)
[dmipDPC.jar:?]
at
org.apache.ignite.internal.processors.continuous.GridContinuousProcessor$7.onMessage(GridContinuousProcessor.java:266)
[dmipDPC.jar:?]
at
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1556)
[dmipDPC.jar:?]
at
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1184)
[dmipDPC.jar:?]
at
org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:125)
[dmipDPC.jar:?]
at
org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1091)
[dmipDPC.jar:?]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[?:1.8.0_231]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[?:1.8.0_231]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_231]
Caused by: java.lang.RuntimeException: Deserialization of class
org.apache.ignite.util.deque.FastSizeDeque is disallowed.
at
org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8606)
~[dmipDPC.jar:?]
at
org.apache.ignite.internal.MarshallerContextImpl.getClass(MarshallerContextImpl.java:349)
~[dmipDPC.jar:?]
at
org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:688)
~[dmipDPC.jar:?]
at
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1755)
~[dmipDPC.jar:?]
at
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1714)
~[dmipDPC.jar:?]
at
org.apache.ignite.internal.binary.GridBinaryMarshaller.deserialize(GridBinaryMarshaller.java:310)
~[dmipDPC.jar:?]
at
org.apache.ignite.internal.binary.BinaryMarshaller.unmarshal0(BinaryMarshaller.java:99)
~[dmipDPC.jar:?]
at
org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:82)
~[dmipDPC.jar:?]
at
org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:9962)
[dmipDPC.jar:?]
... 8 more
I looked at org.apache.ignite.internal.IgniteKernal#classWhiteList and it loads
the META-INF/classnames.txt and META-INF/classnames-jdk.txt files before
loading the user configured whitelist classes file. I don't see the mention of
org.apache.ignite.util.deque.FastSizeDeque class in the META-INF/classnames.txt
file. Is this a bug within Ignite?
Thanks,
Pradeep V.B.
This email and any files transmitted with it are confidential, proprietary and
intended solely for the individual or entity to whom they are addressed. If you
have received this email in error please delete it immediately.