[
https://issues.apache.org/jira/browse/THRIFT-2194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13848053#comment-13848053
]
Justin Gallardo commented on THRIFT-2194:
-----------------------------------------
I've been running this fix in production for a few months now, and I haven't
seen this crasher again. It also seemed to fix a couple of the other random
thrift crashers I was experiencing.
> Node: Not actually prepending residual data in TFramedTransport.receiver
> ------------------------------------------------------------------------
>
> Key: THRIFT-2194
> URL: https://issues.apache.org/jira/browse/THRIFT-2194
> Project: Thrift
> Issue Type: Bug
> Components: Node.js - Library
> Affects Versions: 0.9
> Reporter: Justin Gallardo
> Attachments: THRIFT-2194.patch
>
>
> I am seeing an issue where we are creating a Buffer of larger than 1GB so v8
> crashes with a fatal exception:
> FATAL ERROR: v8::Object::SetIndexedPropertiesToExternalArrayData() length
> exceeds max acceptable value.
> I believe this is due to the fact that we don't actually copy the residual
> data into the data buffer before reading it, so when we go to create the new
> frame buffer, we are using the result of binary.readI32(data, 0). Because the
> residual data isn't there, we create an overly large int and cause the crash.
> I'm seeing this bug in node-thrift 0.9.0, but the bug seems like it would
> still exist in the latest version. I'm also using node 0.6.17.
> This looks like it could be related to
> https://issues.apache.org/jira/browse/THRIFT-1754, but I haven't looked into
> that too much.
--
This message was sent by Atlassian JIRA
(v6.1.4#6159)