ignite-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From yucigou <yuci....@gmail.com>
Subject BinaryObjectException: Binary type has different field types
Date Fri, 14 Oct 2016 11:49:24 GMT
Hi,

We are using Ignite Web Session Clustering and we've got five web servers
running in the cluster.

In the new version of our web application, we changed a field type in the
session class (see as below) from String to Enum. And then we deployed the
new version one server after another.

Consequently, all the servers keep complaining with the following error
logs, and session data is no longer updated and web session clustering stops
working.

2016-10-14 12:11:36,076 ERROR root/error 495 - Failed to update web session:
null
class org.apache.ignite.binary.BinaryObjectException: Binary type has
different field types [typeName=xxx.web.utilities.SearchSession,
fieldName=sortBy, fieldTypeName1=String, fieldTypeName2=Enum]
        at
org.apache.ignite.internal.binary.BinaryUtils.mergeMetadata(BinaryUtils.java:939)
        at
org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl.addMeta(CacheObjectBinaryProcessorImpl.java:555)
        at
org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl$2.addMeta(CacheObjectBinaryProcessorImpl.java:200)
        at
org.apache.ignite.internal.binary.BinaryContext.registerUserClassDescriptor(BinaryContext.java:774)
        at
org.apache.ignite.internal.binary.BinaryContext.registerClassDescriptor(BinaryContext.java:726)
        at
org.apache.ignite.internal.binary.BinaryContext.descriptorForClass(BinaryContext.java:598)
        at
org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal(BinaryWriterExImpl.java:145)
        at
org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal(BinaryWriterExImpl.java:132)
        at
org.apache.ignite.internal.binary.GridBinaryMarshaller.marshal(GridBinaryMarshaller.java:239)
        at
org.apache.ignite.internal.binary.BinaryMarshaller.marshal(BinaryMarshaller.java:92)
        at
org.apache.ignite.cache.websession.WebSessionV2.marshal(WebSessionV2.java:362)
        at
org.apache.ignite.cache.websession.WebSessionV2.binaryUpdatesMap(WebSessionV2.java:325)
        at
org.apache.ignite.cache.websession.WebSessionFilter.updateAttributesV2(WebSessionFilter.java:824)
        at
org.apache.ignite.cache.websession.WebSessionFilter.doFilterV2(WebSessionFilter.java:574)
        at
org.apache.ignite.cache.websession.WebSessionFilter.doFilterDispatch(WebSessionFilter.java:406)
        at
org.apache.ignite.cache.websession.WebSessionFilter.doFilter(WebSessionFilter.java:382)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
        at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
        at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
        at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
        at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
        at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:277)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)

For your information, we have the following Ignite configuration:

<property name="peerClassLoadingEnabled" value="true"/>
<property name="binaryConfiguration">
    <bean class="org.apache.ignite.configuration.BinaryConfiguration">
        <property name="compactFooter" value="false"/>
    </bean>
</property>

Not sure if this is a general issue with Ignite. My goal is to deploy new
app versions with such filed type changes without bringing down all servers
in the cluster so as to avoid service down time. Any suggestions please?

Many thanks.
Yuci




--
View this message in context: http://apache-ignite-users.70518.x6.nabble.com/BinaryObjectException-Binary-type-has-different-field-types-tp8287.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Mime
View raw message