You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Paul Taylor (JIRA)" <ji...@apache.org> on 2017/06/07 19:03:18 UTC
[jira] [Created] (THRIFT-4225) Error handling malformed arguments
leaks memory, corrupts transport buffers causing next RPC to fail
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)