Paul Taylor created THRIFT-4225:
-----------------------------------
Summary: Error handling malformed arguments leaks memory, corrupts
transport buffers causing next RPC to fail
Key: THRIFT-4225
URL: https://issues.apache.org/jira/browse/THRIFT-4225
Project: Thrift
Issue Type: Bug
Components: Node.js - Compiler, Node.js - Library
Affects Versions: 0.10.0
Reporter: Paul Taylor
This issue is related to
[THRIFT-2997|https://issues.apache.org/jira/browse/THRIFT-2997]. I have a
workaround
[here|https://github.com/graphistry/rxjs-mapd/blob/bf88da285ebc32ee6528f596919c626efccaf7ee/src/client/bind.ts#L85],
but it's only possible because I'm wrapping all thrift client calls anyway.
If the arguments to a thrift client method are malformed, the transport throws
an error while writing the arguments to its buffers. Unfortunately, the buffers
aren't reset (as would happen in flush), and the next RPC call will fail if any
values were already written. Additionally, the callback isn't dereferenced from
the client's _reqs table, leaking memory.
>From what I understand, this problem would need to be addressed in both the
>node lib and compiler.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)