RuedigerMoeller / fast-serialization

FST: fast java serialization drop in-replacement
Apache License 2.0
1.58k stars 248 forks source link

JVM Crash by org.nustaq.serialization.FSTObjectInput.readObjectWithHeader #316

Open binw19 opened 3 years ago

binw19 commented 3 years ago

we recently experience multiple times JVM crash by this:

Env: redisson-3.11.5 with fast-serialization


Stack: [0x00007f95d87df000,0x00007f95d88e0000], sp=0x00007f95d88dd990, free space=1018k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [libjvm.so+0x714dd4] C [libjava.so+0xea3e] Java_java_lang_Class_forName0+0x9e J 1173 java.lang.Class.forName0(Ljava/lang/String;ZLjava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Class; (0 bytes) @ 0x00007f95e9438af4 [0x00007f95e9438a00+0xf4] J 19425 C2 sun.reflect.GeneratedMethodAccessor41.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (61 bytes) @ 0x00007f95eb0d3178 [0x00007f95eb0d3100+0x78] J 8151 C2 java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (62 bytes) @ 0x00007f95e984f310 [0x00007f95e984f280+0x90] J 12398 C2 org.nustaq.serialization.FSTObjectInput.readObjectWithHeader(Lorg/nustaq/serialization/FSTClazzInfo$FSTFieldInfo;)Ljava/lang/Object; (189 bytes) @ 0x00007f95eb1095f4 [0x00007f95eb108c80+0x974] J 12756 C2 org.nustaq.serialization.FSTObjectInput.readObjectFields(Lorg/nustaq/serialization/FSTClazzInfo$FSTFieldInfo;Lorg/nustaq/serialization/FSTClazzInfo;[Lorg/nustaq/serialization/FSTClazzInfo$FSTFieldInfo;Ljava/lang/Object;II)V (538 bytes) @ 0x00007f95eb1df120 [0x00007f95eb1defc0+0x160] J 12398 C2 org.nustaq.serialization.FSTObjectInput.readObjectWithHeader(Lorg/nustaq/serialization/FSTClazzInfo$FSTFieldInfo;)Ljava/lang/Object; (189 bytes) @ 0x00007f95eb1093e0 [0x00007f95eb108c80+0x760] J 12756 C2 org.nustaq.serialization.FSTObjectInput.readObjectFields(Lorg/nustaq/serialization/FSTClazzInfo$FSTFieldInfo;Lorg/nustaq/serialization/FSTClazzInfo;[Lorg/nustaq/serialization/FSTClazzInfo$FSTFieldInfo;Ljava/lang/Object;II)V (538 bytes) @ 0x00007f95eb1df120 [0x00007f95eb1defc0+0x160] J 12398 C2 org.nustaq.serialization.FSTObjectInput.readObjectWithHeader(Lorg/nustaq/serialization/FSTClazzInfo$FSTFieldInfo;)Ljava/lang/Object; (189 bytes) @ 0x00007f95eb1093e0 [0x00007f95eb108c80+0x760] J 16735 C2 org.nustaq.serialization.serializers.FSTArrayListSerializer.instantiate(Ljava/lang/Class;Lorg/nustaq/serialization/FSTObjectInput;Lorg/nustaq/serialization/FSTClazzInfo;Lorg/nustaq/serialization/FSTClazzInfo$FSTFieldInfo;I)Ljava/lang/Object; (71 bytes) @ 0x00007f95eb876638 [0x00007f95eb876320+0x318] J 12398 C2 org.nustaq.serialization.FSTObjectInput.readObjectWithHeader(Lorg/nustaq/serialization/FSTClazzInfo$FSTFieldInfo;)Ljava/lang/Object; (189 bytes) @ 0x00007f95eb109150 [0x00007f95eb108c80+0x4d0] J 12756 C2 org.nustaq.serialization.FSTObjectInput.readObjectFields(Lorg/nustaq/serialization/FSTClazzInfo$FSTFieldInfo;Lorg/nustaq/serialization/FSTClazzInfo;[Lorg/nustaq/serialization/FSTClazzInfo$FSTFieldInfo;Ljava/lang/Object;II)V (538 bytes) @ 0x00007f95eb1df120 [0x00007f95eb1defc0+0x160] J 12398 C2 org.nustaq.serialization.FSTObjectInput.readObjectWithHeader(Lorg/nustaq/serialization/FSTClazzInfo$FSTFieldInfo;)Ljava/lang/Object; (189 bytes) @ 0x00007f95eb1093e0 [0x00007f95eb108c80+0x760] J 17833 C2 org.nustaq.serialization.serializers.FSTMapSerializer.instantiate(Ljava/lang/Class;Lorg/nustaq/serialization/FSTObjectInput;Lorg/nustaq/serialization/FSTClazzInfo;Lorg/nustaq/serialization/FSTClazzInfo$FSTFieldInfo;I)Ljava/lang/Object; (118 bytes) @ 0x00007f95ea053450 [0x00007f95ea053140+0x310] J 12398 C2 org.nustaq.serialization.FSTObjectInput.readObjectWithHeader(Lorg/nustaq/serialization/FSTClazzInfo$FSTFieldInfo;)Ljava/lang/Object; (189 bytes) @ 0x00007f95eb109150 [0x00007f95eb108c80+0x4d0] J 12756 C2 org.nustaq.serialization.FSTObjectInput.readObjectFields(Lorg/nustaq/serialization/FSTClazzInfo$FSTFieldInfo;Lorg/nustaq/serialization/FSTClazzInfo;[Lorg/nustaq/serialization/FSTClazzInfo$FSTFieldInfo;Ljava/lang/Object;II)V (538 bytes) @ 0x00007f95eb1df120 [0x00007f95eb1defc0+0x160] J 12398 C2 org.nustaq.serialization.FSTObjectInput.readObjectWithHeader(Lorg/nustaq/serialization/FSTClazzInfo$FSTFieldInfo;)Ljava/lang/Object; (189 bytes) @ 0x00007f95eb1093e0 [0x00007f95eb108c80+0x760] J 25796 C2 org.redisson.codec.FstCodec$1.decode(Lio/netty/buffer/ByteBuf;Lorg/redisson/client/handler/State;)Ljava/lang/Object; (98 bytes) @ 0x00007f95ea92b30c [0x00007f95ea92af00+0x40c] J 22816 C2 org.redisson.client.handler.CommandDecoder.decode(Lio/netty/buffer/ByteBuf;Lorg/redisson/client/protocol/CommandData;Ljava/util/List;Lio/netty/channel/Channel;ZLjava/util/List;)V (750 bytes) @ 0x00007f95ece32cc0 [0x00007f95ece324e0+0x7e0] J 25415 C2 io.netty.handler.codec.ReplayingDecoder.callDecode(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List;)V (297 bytes) @ 0x00007f95ed49e380 [0x00007f95ed49d760+0xc20] J 20356 C2 io.netty.handler.codec.ByteToMessageDecoder.channelRead(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V (311 bytes) @ 0x00007f95ec7f47b0 [0x00007f95ec7f43e0+0x3d0] J 20240 C2 io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V (9 bytes) @ 0x00007f95ec794740 [0x00007f95ec794560+0x1e0] J 22809 C2 io.netty.channel.nio.NioEventLoop.processSelectedKeys()V (26 bytes) @ 0x00007f95ece3f634 [0x00007f95ece3ec20+0xa14] J 26297% C2 io.netty.channel.nio.NioEventLoop.run()V (236 bytes) @ 0x00007f95ed632fd8 [0x00007f95ed632c40+0x398] j io.netty.util.concurrent.SingleThreadEventExecutor$6.run()V+44 j io.netty.util.internal.ThreadExecutorMap$2.run()V+11 j io.netty.util.concurrent.FastThreadLocalRunnable.run()V+4 j java.lang.Thread.run()V+11 v ~StubRoutines::call_stub V [libjvm.so+0x69e095] V [libjvm.so+0x69b80f] V [libjvm.so+0x69bdf4] V [libjvm.so+0x747890] V [libjvm.so+0xada790] V [libjvm.so+0xadaae2] V [libjvm.so+0x97d790] C [libpthread.so.0+0x9609] start_thread+0xd9

yydzxz commented 4 weeks ago

oh no, me too

GuiminZHOU commented 3 weeks ago

me too, same redisson version @binw19 have u find out the problem and a solution? thx in advance

binw19 commented 3 weeks ago

me too, same redisson version @binw19 have u find out the problem and a solution? thx in advance

the newer version has changed the codec implementation and we upgraded the library and used the new default codec and it solves the problem