[ 
https://issues.apache.org/jira/browse/THRIFT-3060?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15042583#comment-15042583
 ] 

ASF GitHub Bot commented on THRIFT-3060:
----------------------------------------

Github user nsuke commented on a diff in the pull request:

    https://github.com/apache/thrift/pull/395#discussion_r46752076
  
    --- Diff: lib/nodejs/lib/thrift/connection.js ---
    @@ -182,10 +170,18 @@ Connection.prototype.initialize_retry_vars = function 
() {
       this.retry_timer = null;
       this.retry_totaltime = 0;
       this.retry_delay = 150;
    -  this.retry_backoff = 1.7;
    +  this.retry_backoff = 1.5;
       this.attempts = 0;
     };
     
    +Connection.prototype.flushQueue = function () {
    +  var current_queue = this.offline_queue.slice();
    --- End diff --
    
    I don't think we need a copy here since we're throwing away the old one 
right away.


> Node.js client retry logic doesn't flush offline queue on reconnect
> -------------------------------------------------------------------
>
>                 Key: THRIFT-3060
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3060
>             Project: Thrift
>          Issue Type: Bug
>          Components: Node.js - Library
>    Affects Versions: 0.9.2
>            Reporter: Chris Thompson
>            Priority: Minor
>         Attachments: thrift-3060-fix_retry_logic.patch
>
>
> The Node.js client includes retry logic in case the connection terminates 
> unexpectedly.  On reconnect, the `offline_queue` variable never gets reset, 
> so any requests still in the queue will get processed on every reconnect.
> In addition, the variables the keep track of the retry state are not 
> initialized prior to a successful connection, meaning that if the initial 
> connection doesn't succeed, that the retry timer is set to `NaN` and doesn't 
> work as expected.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to