Hi,

On my current project we are confronted with an issue we are struggling to
figure out.
We have a simple topology where we have a client node running an
IgniteRunnable to a server node. Both nodes have peerClassLoading=true and
the default binaryConfiguration with compactFooters=false. The client is
started with clientMode=true
After execution we shut the client down and refactor the field type of one
of the fields in our IgniteRunnable. When we now restart the client we get
the following exception:

Caused by: org.apache.ignite.binary.BinaryObjectException: Binary type has
different field types [typeName=com.trendminer.compute.ClientJob,
fieldName=param2, fieldTypeName1=double, fieldTypeName2=int]

We tried different Deployment modes, ISOLATED, SHARED/CONTINUOUS with
different userVersion. But nothing we change enables us to execute the new
class definition on the server node.

Ignite Version is 2.4.0

Since we are using persistence in our production environment and this
causes class definitions for the binary marshaller to be remembered even
after cluster restart this is blocking for us since this either forces us
to manually clear out the binary data and restart our cluster or it
prevents us from refactoring code we we send into Ignite, which is not
always possible.
So we would like to know what the intended way is to deal with changing
class definitions of tasks sent into Ignite?

Regards,

Gert

Reply via email to