geode-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Roman Ovechkin (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (GEODE-2846) IndexMaintenanceException while PDX ClientTypeRegistration.defineType if using 2 pools by client cache
Date Tue, 02 May 2017 15:46:04 GMT

    [ https://issues.apache.org/jira/browse/GEODE-2846?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15993132#comment-15993132
] 

Roman Ovechkin commented on GEODE-2846:
---------------------------------------

The main question is Why newly defined type is sent to only ONE pool and not to ALL
in here:
ClientTypeRegistration.defineType(PdxType) line: 61	

> IndexMaintenanceException while PDX ClientTypeRegistration.defineType if using 2 pools
by client cache
> ------------------------------------------------------------------------------------------------------
>
>                 Key: GEODE-2846
>                 URL: https://issues.apache.org/jira/browse/GEODE-2846
>             Project: Geode
>          Issue Type: Bug
>          Components: serialization
>            Reporter: Roman Ovechkin
>
> Client has configuration with 2 regions  and  2 Pools - /region1 in pool1, /region2 in
pool2 (two different distributed systems), using PdxAutoSerializer, Want to put Object1 to
/region1 and Object2 to /region2. 
> During put operation at first, AutoSerialiser generates new PDX type for Object1, and
sending this type to ONLY one pool (and wrong one) it sends type to arbitrary first available
pool which in my case is pool2, 
> after that it's trying to put value to /region1 which is in pool 1 and because /region1
has indexes it cause IndexMaintenanceException: unknown pdx type.
> I guess pdx types must be sent to all pools while defining.
> Here is full stack trace where issue happening:
> 	ClientTypeRegistration.defineType(PdxType) line: 61	
> 	TypeRegistry.defineType(PdxType) line: 195	
> 	TypeRegistry.defineLocalType(Object, PdxType) line: 234	
> 	PdxWriterImpl.completeByteStreamGeneration() line: 481	
> 	PdxWriterImpl.getAutoPdxType() line: 510	
> 	AutoSerializableManager.writeData(PdxWriter, Object, AutoSerializableManager$AutoClassInfo)
line: 1891	
> 	AutoSerializableManager.writeData(PdxWriter, Object) line: 1829	
> 	ReflectionBasedAutoSerializer.toData(Object, PdxWriter) line: 316	
> 	InternalDataSerializer.writePdx(DataOutput, GemFireCacheImpl, Object, PdxSerializer)
line: 3106	
> 	InternalDataSerializer.writeUserObject(Object, DataOutput, boolean) line: 1587	
> 	InternalDataSerializer.writeWellKnownObject(Object, DataOutput, boolean) line: 1482

> 	InternalDataSerializer.basicWriteObject(Object, DataOutput, boolean) line: 2188	
> 	DataSerializer.writeObject(Object, DataOutput) line: 2871	
> 	BlobHelper.serializeTo(Object, HeapDataOutputStream) line: 66	
> 	Message.serializeAndAddPart(Object, boolean) line: 395	
> 	Message.addObjPart(Object, boolean) line: 344	
> 	Message.addObjPart(Object) line: 324	
> 	PutOp$PutOpImpl.<init>(Region, Object, Object, byte[], EntryEventImpl, Operation,
boolean, Object, Object, boolean, boolean) line: 304	
> 	PutOp.execute(ExecutablePool, LocalRegion, Object, Object, byte[], EntryEventImpl, Operation,
boolean, Object, Object, boolean) line: 73	
> 	ServerRegionProxy.put(Object, Object, byte[], EntryEventImpl, Operation, boolean, Object,
Object, boolean) line: 175	
> 	LocalRegion.serverPut(EntryEventImpl, boolean, Object) line: 3173	
> 	LocalRegion.cacheWriteBeforePut(EntryEventImpl, Set, CacheWriter, boolean, Object) line:
3300	
> 	ProxyRegionMap.basicPut(EntryEventImpl, long, boolean, boolean, Object, boolean, boolean)
line: 231	
> 	LocalRegion.virtualPut(EntryEventImpl, boolean, boolean, Object, boolean, long, boolean)
line: 5955	
> 	LocalRegionDataView.putEntry(EntryEventImpl, boolean, boolean, Object, boolean, long,
boolean) line: 132	
> 	LocalRegion.basicPut(EntryEventImpl, boolean, boolean, Object, boolean) line: 5350	
> 	LocalRegion.validatedPut(EntryEventImpl, long) line: 1668	
> 	LocalRegion.put(Object, Object, Object) line: 1655	
> 	LocalRegion(AbstractRegion).put(Object, Object) line: 288	
> ...



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message