Hi all,

I'm doing some tests on using Apache DM for HAMA-732 [1][2] where 4 local
processes running locally in parallel should use a separate instance of a
CacheService.
When using Kryo I get this ConcurrentModificationException:

ERROR bsp.BSPTask: Error running bsp setup and bsp function.
com.esotericsoftware.kryo.KryoException:
java.util.ConcurrentModificationException
Serialization trace:
classes (sun.misc.Launcher$AppClassLoader)
classLoader (org.apache.hama.HamaConfiguration)
conf (org.apache.hama.graph.AggregationRunner)
aggregationRunner (org.apache.hama.graph.GraphJobRunner)
runner (org.apache.hama.graph.example.PageRank$PageRankVertex)
 at
com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.write(FieldSerializer.java:585)
at
com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:213)
 at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:501)
at
com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.write(FieldSerializer.java:564)
 at
com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:213)
at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:501)
 at
com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.write(FieldSerializer.java:564)
at
com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:213)
 at com.esotericsoftware.kryo.Kryo.writeObjectOrNull(Kryo.java:549)
at
com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.write(FieldSerializer.java:570)
 at
com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:213)
at com.esotericsoftware.kryo.Kryo.writeObjectOrNull(Kryo.java:549)
 at
com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.write(FieldSerializer.java:570)
at
com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:213)
 at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:486)
at
org.apache.directmemory.serialization.kryo.KryoSerializer.serialize(KryoSerializer.java:68)
 at
org.apache.directmemory.cache.CacheServiceImpl.put(CacheServiceImpl.java:117)
at
org.apache.directmemory.cache.CacheServiceImpl.put(CacheServiceImpl.java:109)
 at
org.apache.hama.graph.OffHeapVerticesInfo.addVertex(OffHeapVerticesInfo.java:79)
at
org.apache.hama.graph.GraphJobRunner.loadVertices(GraphJobRunner.java:412)
 at org.apache.hama.graph.GraphJobRunner.setup(GraphJobRunner.java:102)
at org.apache.hama.bsp.BSPTask.runBSP(BSPTask.java:176)
 at org.apache.hama.bsp.BSPTask.run(BSPTask.java:146)
at org.apache.hama.bsp.GroomServer$BSPPeerChild.main(GroomServer.java:1260)
Caused by: java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
 at
com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:74)
at
com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:18)
 at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:501)
at
com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.write(FieldSerializer.java:564)
 ... 23 more


What do you think would be the recommended way of using DM in such a setup?
May instead be a problem with Kryo?

Thanks a lot in advance,
Tommaso


[1] : https://issues.apache.org/jira/browse/HAMA-732
[2] :
https://github.com/tteofili/hama/blob/HAMA-732/graph/src/main/java/org/apache/hama/graph/OffHeapVerticesInfo.java

Reply via email to