nice catch Jason!

On Tue, Dec 1, 2015 at 3:55 PM, Jason Plurad <plur...@gmail.com> wrote:

> Isn't this fixed already? See Stephen's commits on September 11, 2015.
>
>
> https://github.com/apache/incubator-tinkerpop/commits/3.0.2-incubating/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ser/GryoMessageSerializerV1d0.java
>
> On Tue, Dec 1, 2015 at 9:50 AM, Dylan Millikin <dylan.milli...@gmail.com>
> wrote:
>
> > Hi Stéphane,
> >
> > Thanks for the feedback. I haven't had the time to take a deeper look
> but a
> > 5mn googlefu gave me this which might (or might not) be a lead:
> > https://github.com/EsotericSoftware/kryo/issues/336
> > If we set a failing test we can maybe see if those changes are relevant
> or
> > not.
> >
> > Do you want to give those a try locally and report back? Also if you
> don't
> > mind creating a JIRA issue for this that would be great.
> >
> > Cheers,
> >
> > Dylan.
> >
> >
> >
> >
> >
> > On Tue, Dec 1, 2015 at 1:58 PM, <sgobance....@orange.com> wrote:
> >
> > > Hi everybody,
> > >
> > >
> > >
> > > Our company is developing a system based on Gremlin server and we are
> > > facing an issue for which, I think, I have identified the root cause.
> > >
> > > Our problem occurs when requesting a graph that returns beyond a
> certain
> > > amount of data, actually 4096 bytes, through a websocket connection.
> > >
> > > I think that the issue is located in the serialization mechanism, in
> the
> > > method *serializeResponseAsBinary*(…) of the
> > *org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0
> > > class*.
> > >
> > >
> > >
> > > In this method, we create a local *java.io.ByteArrayOutputStream*
> object
> > > which is then passed to the constructor of a new instance of an
> > > *org.apache.tinkerpop.shaded.kryo.io.Output*. Subsequent operations
> > > serialize data in this Output object and at the end the
> > > *serializeResponseAsBinary*(…) method returns a newly allocated
> > > *io.netty.buffer.ByteBuf* object containing the bytes accumulated in
> the
> > > Output instance. This encoded response message is built as this:
> > >
> > >
> > >
> > > ByteBuf encodedMessage = null;
> > >
> > > final OutputStream baos = new ByteArrayOutputStream();
> > >
> > > final Output output = new Output(baos);
> > >
> > > …
> > >
> > > encodedMessage = allocator.buffer((*int*) output.total());
> > >
> > > encodedMessage.writeBytes(*output**.toBytes()*);
> > >
> > > …
> > >
> > > return encodedMessage;
> > >
> > >
> > >
> > > The problem is that the *output.toBytes()* method only returns the
> bytes
> > > contained in an internal recyclable buffer and does not take into
> account
> > > the bytes that may have been previously flushed into the internal
> > > OutputStream (in our case the ByteArrayOutputStream provided to the
> > > constructor). Thus, at the end, the encoded response message contains
> > > partial data that appear as a corrupted stream to the deserialization
> > > process.
> > >
> > >
> > >
> > > What do you think about this problem ? Is there anyone that already
> faced
> > > this issue ? Do you think it would be possible to fix it quickly ?
> > >
> > >
> > >
> > > Regards,
> > >
> > > [image: http://www.orange.com/sirius/logos_mail/orange_logo.gif]
> > > <http://www.orange.com/>
> > >
> > > *Stéphane Gobancé *
> > >
> > > *Prestataire externe*
> > >
> > > GyGraph / PnS
> > >
> > > Tél :   04 97 46 05 65
> > >
> > > *sgobance....@orange.com <sgobance....@orange.com>*
> > >
> > > Altran pour Orange
> > >
> > >
> > >
> > >
> >
> _________________________________________________________________________________________________________________________
> > >
> > > Ce message et ses pieces jointes peuvent contenir des informations
> > confidentielles ou privilegiees et ne doivent donc
> > > pas etre diffuses, exploites ou copies sans autorisation. Si vous avez
> > recu ce message par erreur, veuillez le signaler
> > > a l'expediteur et le detruire ainsi que les pieces jointes. Les
> messages
> > electroniques etant susceptibles d'alteration,
> > > France Telecom - Orange decline toute responsabilite si ce message a
> ete
> > altere, deforme ou falsifie. Merci
> > >
> > > This message and its attachments may contain confidential or privileged
> > information that may be protected by law;
> > > they should not be distributed, used or copied without authorization.
> > > If you have received this email in error, please notify the sender and
> > delete this message and its attachments.
> > > As emails may be altered, France Telecom - Orange shall not be liable
> if
> > this message was modified, changed or falsified.
> > > Thank you.
> > >
> > >
> >
>
>
>
> --
> Have a good one,
> Jason
>

Reply via email to