Bug 1200514 - Persistent Store containing a Map written by JDG <=6.3 can not read with JDG 6.4.0
Summary: Persistent Store containing a Map written by JDG <=6.3 can not read with JDG ...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: JBoss Data Grid 6
Classification: JBoss
Component: Infinispan
Version: 6.4.0
Hardware: Unspecified
OS: Unspecified
urgent
unspecified
Target Milestone: ER2
: 6.4.1
Assignee: Tristan Tarrant
QA Contact: Martin Gencur
URL:
Whiteboard:
Depends On:
Blocks: 1200525
TreeView+ depends on / blocked
 
Reported: 2015-03-10 17:43 UTC by wfink
Modified: 2019-05-20 11:35 UTC (History)
5 users (show)

Fixed In Version:
Clone Of:
: 1200525 (view as bug list)
Environment:
Last Closed: 2015-04-02 12:14:05 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker ISPN-5072 0 Major Resolved MapExternalizer no longer needs to extend InstanceReusingAdvancedExternalizer 2017-08-01 22:30:50 UTC

Description wfink 2015-03-10 17:43:57 UTC
Description of problem:
A SingleFilestore which was created by a JDG version pre 6.4 will have issues if Externalizing is use and it is read after upgrade to 6.4.

The following stacktrace will be shown:

14:41:42,766 ERROR [org.infinispan.persistence.file.SingleFileStore] (ServerService Thread Pool -- 39) ISPN000252: Error executing parallel store task: org.infinispan.persistence.spi.PersistenceException: java.lang.IllegalStateException: Unexpected byte encountered0
	at org.infinispan.marshall.core.MarshalledEntryImpl.unmarshall(MarshalledEntryImpl.java:116) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.infinispan.marshall.core.MarshalledEntryImpl.getValue(MarshalledEntryImpl.java:61) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.infinispan.persistence.manager.PersistenceManagerImpl$1.processEntry(PersistenceManagerImpl.java:224) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.infinispan.persistence.file.SingleFileStore$1.call(SingleFileStore.java:519) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.infinispan.persistence.file.SingleFileStore$1.call(SingleFileStore.java:513) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_75]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_75]
	at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_75]
	at org.infinispan.util.concurrent.WithinThreadExecutor.execute(WithinThreadExecutor.java:22) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at java.util.concurrent.ExecutorCompletionService.submit(ExecutorCompletionService.java:181) [rt.jar:1.7.0_75]
	at org.infinispan.executors.ExecutorAllCompletionService.submit(ExecutorAllCompletionService.java:31) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.infinispan.persistence.file.SingleFileStore.process(SingleFileStore.java:513) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.infinispan.persistence.manager.PersistenceManagerImpl.preload(PersistenceManagerImpl.java:216) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_75]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_75]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_75]
	at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_75]
	at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:168) [infinispan-commons-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:869) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.infinispan.factories.AbstractComponentRegistry.invokeStartMethods(AbstractComponentRegistry.java:638) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:627) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:530) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:216) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.infinispan.CacheImpl.start(CacheImpl.java:756) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:581) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:536) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:414) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at com.services.cache.CacheProvider.<init>(CacheProvider.java:42) [test.jar:]
	at com.services.cache.CacheProvider.getInstance(CacheProvider.java:116) [test.jar:]
	at com.services.listener.ContextListener.contextInitialized(ContextListener.java:50) [classes:]
	at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3339) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:3777) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
	at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:161) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
	at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:59) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
	at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:94) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_75]
	at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_75]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_75]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_75]
	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_75]
	at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by: java.lang.IllegalStateException: Unexpected byte encountered0
	at org.infinispan.commons.marshall.InstanceReusingAdvancedExternalizer.readObject(InstanceReusingAdvancedExternalizer.java:116) [infinispan-commons-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.infinispan.marshall.core.ExternalizerTable$ExternalizerAdapter.readObject(ExternalizerTable.java:427) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.infinispan.marshall.core.ExternalizerTable.readObject(ExternalizerTable.java:223) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.infinispan.marshall.core.JBossMarshaller$ExternalizerTableProxy.readObject(JBossMarshaller.java:149) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:355)
	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:224)
	at org.jboss.marshalling.river.RiverUnmarshaller.readFields(RiverUnmarshaller.java:1746)
	at org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1659)
	at org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1607)
	at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1286)
	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:276)
	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:224)
	at org.jboss.marshalling.river.RiverUnmarshaller.readFields(RiverUnmarshaller.java:1746)
	at org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1659)
	at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1286)
	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:276)
	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
	at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41)
	at org.infinispan.commons.marshall.jboss.AbstractJBossMarshaller.objectFromObjectStream(AbstractJBossMarshaller.java:135) [infinispan-commons-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.infinispan.marshall.core.VersionAwareMarshaller.objectFromByteBuffer(VersionAwareMarshaller.java:101) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.infinispan.commons.marshall.AbstractDelegatingMarshaller.objectFromByteBuffer(AbstractDelegatingMarshaller.java:80) [infinispan-commons-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	at org.infinispan.marshall.core.MarshalledEntryImpl.unmarshall(MarshalledEntryImpl.java:114) [infinispan-core-6.2.0.Final-redhat-4.jar:6.2.0.Final-redhat-4]
	... 40 more
Caused by: an exception which occurred:
	in field storedSnapshot
	in object of type org.hibernate.collection.internal.PersistentSet
	in field characteristicList
	in object of type com.services.bean.ProductBean

Comment 3 William Burns 2015-03-10 18:19:24 UTC
PR: https://github.com/infinispan/jdg/pull/550

Comment 4 William Burns 2015-03-18 18:15:03 UTC
Additional PR: https://github.com/infinispan/jdg/pull/577

Note that this fix only works for loaders that use the Marshaller method objectFromByteBuffer.  If they use objectFromObjectStream method it will only use the JDG 6.3 / 6.4.1 / 6.5 serialization method.


Note You need to log in before you can comment on or make changes to this bug.