Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-5025

Incomplete promise rejection

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 0.12.0
    • None
    • Node.js - Library
    • Important

    Description

      I have a problem while performing client requests created with HttpConnection.

      In case of some errors like 'ECONNREFUSED', 'Connection timed out' and some other errors http_connection emits an error, but nothing handles it, therefore promise does not reject and in fact just hangs, so we have memory leaks.

      Looks like promise can only be rejected only with a call of clientCallback
      https://github.com/apache/thrift/blob/41f47aff7ccc1a093eb5e48250377c1178babeec/lib/nodejs/lib/thrift/http_connection.js#L140

      As far as I did not find any example of such cases (multiplexer+http connection+node), it is possible that I use it in the wrong way, but from the source code perspective it looks like a design flaw, could you please take a look into this issue?

      Here is a simplified source code I use:

      const multiplexer = new Multiplexer();
      const connection = new HttpConnection({
            path: '/rpc',
            transport: TBufferedTransport,
            protocol: TBinaryProtocol,
            nodeOptions: {
                  host: '127.0.0.1',
                  port: 8989,
            },
      });
      
      const client = multiplexer.createClient(
            'UserClient',
            UserClient,
            connection
      );
      
      try {
            const user = await client.registerUser({
                  // Some props related to user
            } as any);
      
            // this only will be executed if registerUser performs without any errors.
            // perform some actions with response
      catch (error) { // this never happens in case of connection issues and some internal errors of http connection
            // log error 
      }
      

       

      Attachments

        Activity

          People

            Unassigned Unassigned
            stas.sribnyi Stas Sribnyi
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: