org.apache.tinkerpop.shaded.kryo.KryoException: Buffer underflow

16 views
Skip to first unread message

Dave Bender

unread,
Feb 12, 2023, 7:24:26 PM2/12/23
to Gremlin-users
I'm using Gremlin Console to open a .gryo file but am getting this puzzling exception:

org.apache.tinkerpop.shaded.kryo.KryoException: Buffer underflow

Can anyone help me understand how to get past it?  Or understand what to look for to prevent it? 


Dave



The full stacktrace is: 

java.lang.RuntimeException: org.apache.tinkerpop.shaded.kryo.KryoException: Buffer underflow.
        at org.apache.tinkerpop.gremlin.structure.io.gryo.GryoReader$VertexInputIterator.next(GryoReader.java:333)
        at org.apache.tinkerpop.gremlin.structure.io.gryo.GryoReader$VertexInputIterator.next(GryoReader.java:307)
        at org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils.iterate(IteratorUtils.java:71)
        at org.apache.tinkerpop.gremlin.structure.io.gryo.GryoReader.readGraph(GryoReader.java:94)
        at org.apache.tinkerpop.gremlin.structure.io.gryo.GryoIo.readGraph(GryoIo.java:94)
        at org.apache.tinkerpop.gremlin.structure.io.Io$readGraph.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:115)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:127)
        at groovysh_evaluate.run(groovysh_evaluate:4)
        at groovysh_evaluate$run.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
        at groovysh_evaluate$run.call(Unknown Source)
        at org.codehaus.groovy.tools.shell.Interpreter.evaluate(Interpreter.groovy:82)
        at org.codehaus.groovy.tools.shell.Evaluator$evaluate.call(Unknown Source)
        at org.codehaus.groovy.tools.shell.Groovysh.execute(Groovysh.groovy:201)
        at org.apache.tinkerpop.gremlin.console.GremlinGroovysh.super$3$execute(GremlinGroovysh.groovy)
        at jdk.internal.reflect.GeneratedMethodAccessor30.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:101)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1217)
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:144)
        at org.apache.tinkerpop.gremlin.console.GremlinGroovysh.execute(GremlinGroovysh.groovy:83)
        at org.apache.tinkerpop.gremlin.console.GremlinGroovysh$execute.call(Unknown Source)
        at org.apache.tinkerpop.gremlin.console.Console$_executeInShell_closure21.doCall(Console.groovy:493)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:101)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:263)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041)
        at groovy.lang.Closure.call(Closure.java:405)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.eachWithIndex(DefaultGroovyMethods.java:2246)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.eachWithIndex(DefaultGroovyMethods.java:2226)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.eachWithIndex(DefaultGroovyMethods.java:2276)
        at org.codehaus.groovy.runtime.dgm$199.invoke(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:244)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:115)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:127)
        at org.apache.tinkerpop.gremlin.console.Console.executeInShell(Console.groovy:470)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:43)
        at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:190)
        at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:58)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:156)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:168)
        at org.apache.tinkerpop.gremlin.console.Console.<init>(Console.groovy:172)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
        at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:80)
        at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:237)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:265)
        at org.apache.tinkerpop.gremlin.console.Console.main(Console.groovy:576)
Caused by: org.apache.tinkerpop.shaded.kryo.KryoException: Buffer underflow.
        at org.apache.tinkerpop.shaded.kryo.io.Input.require(Input.java:199)
        at org.apache.tinkerpop.shaded.kryo.io.Input.readAscii_slow(Input.java:616)
        at org.apache.tinkerpop.shaded.kryo.io.Input.readAscii(Input.java:594)
        at org.apache.tinkerpop.shaded.kryo.io.Input.readString(Input.java:472)
        at org.apache.tinkerpop.shaded.kryo.serializers.DefaultSerializers$StringSerializer.read(DefaultSerializers.java:195)
        at org.apache.tinkerpop.shaded.kryo.serializers.DefaultSerializers$StringSerializer.read(DefaultSerializers.java:184)
        at org.apache.tinkerpop.shaded.kryo.Kryo.readClassAndObject(Kryo.java:790)
        at org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.shaded.ShadedKryoAdapter.readClassAndObject(ShadedKryoAdapter.java:39)
        at org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.shaded.ShadedKryoAdapter.readClassAndObject(ShadedKryoAdapter.java:24)
        at org.apache.tinkerpop.gremlin.structure.util.star.StarGraphSerializer.read(StarGraphSerializer.java:99)
        at org.apache.tinkerpop.gremlin.structure.util.star.StarGraphSerializer.read(StarGraphSerializer.java:45)
        at org.apache.tinkerpop.gremlin.structure.io.gryo.kryoshim.shaded.ShadedSerializerAdapter.read(ShadedSerializerAdapter.java:52)
        at org.apache.tinkerpop.shaded.kryo.Kryo.readObject(Kryo.java:686)
        at org.apache.tinkerpop.gremlin.structure.io.gryo.GryoReader.readVertexInternal(GryoReader.java:250)
        at org.apache.tinkerpop.gremlin.structure.io.gryo.GryoReader.access$200(GryoReader.java:64)
        at org.apache.tinkerpop.gremlin.structure.io.gryo.GryoReader$VertexInputIterator.next(GryoReader.java:331)
        ... 66 more

Stephen Mallette

unread,
Feb 13, 2023, 7:13:42 AM2/13/23
to gremli...@googlegroups.com
not exactly sure but that usually means kryo has encountered an unexpected type or like unexpected bytes for a particular type it thinks it needs to deserialize. are there custom types in that file that you know of? something outside of those registered here:


Or maybe your Gryo file was created in one version of TinkerPop and you are trying to open in another? it's rare for there to be compatibility issues there but i suppose it's possible.


--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/21f21022-28ff-44ac-9c02-917376d6f420n%40googlegroups.com.

Dave Bender

unread,
Feb 26, 2023, 11:54:12 AM2/26/23
to Gremlin-users
Thanks for those suggestions.  After looking into it with those things in mind, I theorized that the file had become corrupted in some way.  I ran the program that generated it, and the new .gryo file loads fine.

It was useful knowing that the error was uncommon. 

Thanks

Dave
Reply all
Reply to author
Forward
0 new messages