Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prevent duplicate intervals being set. #1244

Merged
merged 2 commits into from
Dec 13, 2020
Merged

Prevent duplicate intervals being set. #1244

merged 2 commits into from
Dec 13, 2020

Commits on Nov 26, 2020

  1. Prevent duplicate intervals being set.

    After calling `redis.quit` there are still many open `setInterval` handles that have not been cleared.
    
    These uncleared `setInternal` appear to be because everytime `connect` is called in the `reconnectTimeout` the `this._addedScriptHashesCleanInterval` is overrided but the old one still exists in the background.
    
    https://github.com/luin/ioredis/blob/v4.19.2/lib/cluster/index.ts#L311-L313
    
    When you call `redis.quit` it only clears the current one retained by `this._addedScriptHashesCleanInterval`.
    
    ```
    [WTF Node?] open handles:
    - File descriptors: (note: stdio always exists)
      - fd 1 (tty) (stdio)
      - fd 0 (tty)
      - fd 2 (tty) (stdio)
    - Intervals:
      - (60000 ~ 60 s) (anonymous) @ /srv/app/node_modules/ioredis/built/redis/index.js:258
      - (60000 ~ 60 s) (anonymous) @ /srv/app/node_modules/ioredis/built/redis/index.js:258
      - (60000 ~ 60 s) (anonymous) @ /srv/app/node_modules/ioredis/built/redis/index.js:258
      - (60000 ~ 60 s) (anonymous) @ /srv/app/node_modules/ioredis/built/redis/index.js:258
      - (60000 ~ 60 s) (anonymous) @ /srv/app/node_modules/ioredis/built/redis/index.js:258
      - (60000 ~ 60 s) (anonymous) @ /srv/app/node_modules/ioredis/built/redis/index.js:258
      - (60000 ~ 60 s) (anonymous) @ /srv/app/node_modules/ioredis/built/redis/index.js:258
      - (60000 ~ 60 s) (anonymous) @ /srv/app/node_modules/ioredis/built/redis/index.js:258
      - (60000 ~ 60 s) (anonymous) @ /srv/app/node_modules/ioredis/built/redis/index.js:258
      - (60000 ~ 60 s) (anonymous) @ /srv/app/node_modules/ioredis/built/redis/index.js:258
      - (60000 ~ 60 s) (anonymous) @ /srv/app/node_modules/ioredis/built/redis/index.js:258
      - (60000 ~ 60 s) (anonymous) @ /srv/app/node_modules/ioredis/built/redis/index.js:258
      - (60000 ~ 60 s) (anonymous) @ /srv/app/node_modules/ioredis/built/redis/index.js:258
      - (60000 ~ 60 s) (anonymous) @ /srv/app/node_modules/ioredis/built/redis/index.js:258
      - (60000 ~ 60 s) (anonymous) @ /srv/app/node_modules/ioredis/built/redis/index.js:258
      - (60000 ~ 60 s) (anonymous) @ /srv/app/node_modules/ioredis/built/redis/index.js:258
    ```
    jshbrntt committed Nov 26, 2020
    Configuration menu
    Copy the full SHA
    f997aac View commit details
    Browse the repository at this point in the history
  2. Update index.ts

    Update other site where setInterval is used in the same way.
    jshbrntt committed Nov 26, 2020
    Configuration menu
    Copy the full SHA
    b131550 View commit details
    Browse the repository at this point in the history