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)

Reply via email to