slimina / xmemcached

Automatically exported from code.google.com/p/xmemcached
Apache License 2.0
0 stars 0 forks source link

获取缓存报IO错误 #288

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
请帮忙分析下:
奇怪的问题,同样的缓存,有时候get报IO错误,set没有问题;
场景:每次进列表页都更新缓存(HashMap对象,map的value是一��
�已实现了序列化接口的对象),同一个key会多个列表使用,�
��情页获取缓存;
版本:xmemcached-1.4.2.jar

[2014-04-22 
14:16:46][ERROR][net.rubyeye.xmemcached.transcoders.BaseSerializingTranscoder:11
0] Caught IOException decoding 13996 bytes of data
java.io.StreamCorruptedException: invalid type code: 00
        at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1498) ~[na:1.6.0_35]
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731) ~[na:1.6.0_35]
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) ~[na:1.6.0_35]
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350) ~[na:1.6.0_35]
        at java.util.HashMap.readObject(HashMap.java:1030) ~[na:1.6.0_35]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_35]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_35]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_35]
        at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_35]
        at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:969) ~[na:1.6.0_35]
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848) ~[na:1.6.0_35]
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752) ~[na:1.6.0_35]
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) ~[na:1.6.0_35]
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350) ~[na:1.6.0_35]
        at net.rubyeye.xmemcached.transcoders.BaseSerializingTranscoder.deserialize(BaseSerializingTranscoder.java:106) ~[xmemcached-1.4.2.jar:na]
        at net.rubyeye.xmemcached.transcoders.SerializingTranscoder.decode0(SerializingTranscoder.java:92) [xmemcached-1.4.2.jar:na]
        at net.rubyeye.xmemcached.transcoders.SerializingTranscoder.decode(SerializingTranscoder.java:86) [xmemcached-1.4.2.jar:na]
        at net.rubyeye.xmemcached.XMemcachedClient.fetch0(XMemcachedClient.java:657) [xmemcached-1.4.2.jar:na]
        at net.rubyeye.xmemcached.XMemcachedClient.get0(XMemcachedClient.java:1058) [xmemcached-1.4.2.jar:na]
        at net.rubyeye.xmemcached.XMemcachedClient.get(XMemcachedClient.java:1016) [xmemcached-1.4.2.jar:na]
        at net.rubyeye.xmemcached.XMemcachedClient.get(XMemcachedClient.java:1027) [xmemcached-1.4.2.jar:na]
        at net.rubyeye.xmemcached.XMemcachedClient.get(XMemcachedClient.java:1049) [xmemcached-1.4.2.jar:na]

Original issue reported on code.google.com by yylc...@gmail.com on 22 Apr 2014 at 6:29

GoogleCodeExporter commented 9 years ago
数据损坏,是不是数据大小已经超过默认的1M限制了。

Original comment by xzhu...@avos.com on 22 Apr 2014 at 6:31

GoogleCodeExporter commented 9 years ago
decoding 13996 bytes of data 应该是只有13KB左右
我从控制台直连memcache用命令还是可以get到数据,是memcache服�
��出问题了?

Original comment by yylc...@gmail.com on 22 Apr 2014 at 6:50

GoogleCodeExporter commented 9 years ago
那另一种可能就是class不兼容了,是不是集群环境下多个版本
的class同时存在。自己检查下吧。跟xmc本身没关系。

Original comment by xzhu...@avos.com on 22 Apr 2014 at 6:55