Skip to content
New issue

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

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

Already on GitHub? # to your account

delayUntilReady error handling bug #1460

Closed
epsilonmb opened this issue Nov 13, 2021 · 2 comments
Closed

delayUntilReady error handling bug #1460

epsilonmb opened this issue Nov 13, 2021 · 2 comments

Comments

@epsilonmb
Copy link

when cluster connection is not ready, async call to pipeline.exec throws "callback is not a function" from below code.

built/pipeline.js line 221
this.redis.delayUntilReady((err) => {
if (err) {
callback(err); -> thrown from here, when using promise, callback is undefined
return;
}
this.exec(callback);
});

built/autoPipelining.js built/transaction.js both rejects when delayUntilReady fails

@luin luin added the bug label Mar 19, 2022
@luin luin closed this as completed in af60bb0 Mar 19, 2022
github-actions bot pushed a commit that referenced this issue Mar 19, 2022
# [5.0.0-beta.3](v5.0.0-beta.2...v5.0.0-beta.3) (2022-03-19)

### Bug Fixes

* pipeline fails when cluster is not ready ([af60bb0](af60bb0)), closes [#1460](#1460)
@github-actions
Copy link

🎉 This issue has been resolved in version 5.0.0-beta.3 🎉

The release is available on:

Your semantic-release bot 📦🚀

github-actions bot pushed a commit that referenced this issue Mar 26, 2022
# [5.0.0](v4.28.5...v5.0.0) (2022-03-26)

### Bug Fixes

* add @ioredis/interface-generator to dev deps ([aa3b3e9](aa3b3e9))
* add missing declaration for callBuffer ([08c9072](08c9072))
* add the missing typing for Redis#call() ([747dd30](747dd30))
* better support for CJS importing ([687d3eb](687d3eb))
* disable slotsRefreshInterval by default ([370fa62](370fa62))
* Fix the NOSCRIPT behavior when using pipelines ([bc1b168](bc1b168))
* improve typing for auto pipelining ([4e8c567](4e8c567))
* improve typing for pipeline ([d18f3fe](d18f3fe))
* keyPrefix should work with Buffer ([6942cec](6942cec)), closes [#1486](#1486)
* make fields private when possible ([d5c2f20](d5c2f20))
* parameter declaration of Redis#duplicate ([a29d9c4](a29d9c4))
* pipeline fails when cluster is not ready ([af60bb0](af60bb0)), closes [#1460](#1460)
* remove dropBufferSupport option ([04e68ac](04e68ac))
* remove unused Command#isCustomCommand ([46ade6b](46ade6b))
* rename interfaces by dropping prefix I ([d1d9dba](d1d9dba))
* Reset loaded script hashes to force a reload of scripts after reconnect of redis ([60c2af9](60c2af9))
* support passing keyPrefix via redisOptions ([6b0dc1e](6b0dc1e))

### Features

* add [@SInCE](https://github.com/since) to method comments ([13eff8e](13eff8e))
* add declarations for methods ([1e10c95](1e10c95))
* add tests for cluster ([1eba58b](1eba58b))
* always parse username passed via URI ([c6f41f6](c6f41f6))
* drop support of Node.js 10 ([f9a5071](f9a5071))
* drop support of third-party Promise libraries ([2001ec6](2001ec6))
* expose official declarations ([7a436b1](7a436b1))
* improve typings for cluster ([06782e6](06782e6))
* improve typings for pipeline ([334242b](334242b))
* improve typings for smismember ([487c3a0](487c3a0))
* improve typings for transformers ([94c1e24](94c1e24))
* improve typings for xread ([96cc335](96cc335))
* Pipeline-based script loading ([8df6ee2](8df6ee2))
* prepare v5 stable release ([#1538](#1538)) ([fe32ce7](fe32ce7))
* Refactor code with modern settings ([a8ffa80](a8ffa80))
* skip ready check on NOPERM error ([b530a0b](b530a0b)), closes [#1293](#1293)
* support commands added in Redis v7 ([53ca412](53ca412))
* support defining custom commands via constructor options ([f293b97](f293b97))
* support Redis Functions introduced in Redis 7.0 ([32eb381](32eb381))

### BREAKING CHANGES

* `slotsRefreshInterval` is disabled by default,
previously, the default value was 5000.
* `allowUsernameInURI` is removed and ioredis will always
use the username passed via URI.
Previously, the `username` part in `new Redis("redis://username:authpassword@127.0.0.1:6380/4")`
was ignored unless `allowUsernameInURI` is specified: `new Redis("redis://username:authpassword@127.0.0.1:6380/4?allowUsernameInURI=true")`.
Now, if you don't want to send username to Redis, just leave the username part empty:
`new Redis("redis://:authpassword@127.0.0.1:6380/4")`
* `Redis#serverInfo` is removed. This field is never documented so
you very likely have never used it.
* Support for third-party Promise libraries is dropped. Related methods (`exports.Promise = require('bluebird')`) are kept but they don't take any effects. The native Promise will always be used.
* We now require Node.js v10.12.0 or newer.
* We now only work with Redis v3.0.0 or newer.
* `Redis` can't be called as a function anymore as it's now a class.
Please change `Redis()` to `new Redis()`. Note that `Redis()` was already deprecated
in the previous version.
@github-actions
Copy link

🎉 This issue has been resolved in version 5.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

janus-dev87 added a commit to janus-dev87/ioredis-work that referenced this issue Mar 1, 2024
# [5.0.0-beta.3](redis/ioredis@v5.0.0-beta.2...v5.0.0-beta.3) (2022-03-19)

### Bug Fixes

* pipeline fails when cluster is not ready ([af60bb0](redis/ioredis@af60bb0)), closes [#1460](redis/ioredis#1460)
janus-dev87 added a commit to janus-dev87/ioredis-work that referenced this issue Mar 1, 2024
# [5.0.0](redis/ioredis@v4.28.5...v5.0.0) (2022-03-26)

### Bug Fixes

* add @ioredis/interface-generator to dev deps ([aa3b3e9](redis/ioredis@aa3b3e9))
* add missing declaration for callBuffer ([08c9072](redis/ioredis@08c9072))
* add the missing typing for Redis#call() ([747dd30](redis/ioredis@747dd30))
* better support for CJS importing ([687d3eb](redis/ioredis@687d3eb))
* disable slotsRefreshInterval by default ([370fa62](redis/ioredis@370fa62))
* Fix the NOSCRIPT behavior when using pipelines ([bc1b168](redis/ioredis@bc1b168))
* improve typing for auto pipelining ([4e8c567](redis/ioredis@4e8c567))
* improve typing for pipeline ([d18f3fe](redis/ioredis@d18f3fe))
* keyPrefix should work with Buffer ([6942cec](redis/ioredis@6942cec)), closes [#1486](redis/ioredis#1486)
* make fields private when possible ([d5c2f20](redis/ioredis@d5c2f20))
* parameter declaration of Redis#duplicate ([a29d9c4](redis/ioredis@a29d9c4))
* pipeline fails when cluster is not ready ([af60bb0](redis/ioredis@af60bb0)), closes [#1460](redis/ioredis#1460)
* remove dropBufferSupport option ([04e68ac](redis/ioredis@04e68ac))
* remove unused Command#isCustomCommand ([46ade6b](redis/ioredis@46ade6b))
* rename interfaces by dropping prefix I ([d1d9dba](redis/ioredis@d1d9dba))
* Reset loaded script hashes to force a reload of scripts after reconnect of redis ([60c2af9](redis/ioredis@60c2af9))
* support passing keyPrefix via redisOptions ([6b0dc1e](redis/ioredis@6b0dc1e))

### Features

* add [@SInCE](https://github.com/since) to method comments ([13eff8e](redis/ioredis@13eff8e))
* add declarations for methods ([1e10c95](redis/ioredis@1e10c95))
* add tests for cluster ([1eba58b](redis/ioredis@1eba58b))
* always parse username passed via URI ([c6f41f6](redis/ioredis@c6f41f6))
* drop support of Node.js 10 ([f9a5071](redis/ioredis@f9a5071))
* drop support of third-party Promise libraries ([2001ec6](redis/ioredis@2001ec6))
* expose official declarations ([7a436b1](redis/ioredis@7a436b1))
* improve typings for cluster ([06782e6](redis/ioredis@06782e6))
* improve typings for pipeline ([334242b](redis/ioredis@334242b))
* improve typings for smismember ([487c3a0](redis/ioredis@487c3a0))
* improve typings for transformers ([94c1e24](redis/ioredis@94c1e24))
* improve typings for xread ([96cc335](redis/ioredis@96cc335))
* Pipeline-based script loading ([8df6ee2](redis/ioredis@8df6ee2))
* prepare v5 stable release ([#1538](redis/ioredis#1538)) ([fe32ce7](redis/ioredis@fe32ce7))
* Refactor code with modern settings ([a8ffa80](redis/ioredis@a8ffa80))
* skip ready check on NOPERM error ([b530a0b](redis/ioredis@b530a0b)), closes [#1293](redis/ioredis#1293)
* support commands added in Redis v7 ([53ca412](redis/ioredis@53ca412))
* support defining custom commands via constructor options ([f293b97](redis/ioredis@f293b97))
* support Redis Functions introduced in Redis 7.0 ([32eb381](redis/ioredis@32eb381))

### BREAKING CHANGES

* `slotsRefreshInterval` is disabled by default,
previously, the default value was 5000.
* `allowUsernameInURI` is removed and ioredis will always
use the username passed via URI.
Previously, the `username` part in `new Redis("redis://username:authpassword@127.0.0.1:6380/4")`
was ignored unless `allowUsernameInURI` is specified: `new Redis("redis://username:authpassword@127.0.0.1:6380/4?allowUsernameInURI=true")`.
Now, if you don't want to send username to Redis, just leave the username part empty:
`new Redis("redis://:authpassword@127.0.0.1:6380/4")`
* `Redis#serverInfo` is removed. This field is never documented so
you very likely have never used it.
* Support for third-party Promise libraries is dropped. Related methods (`exports.Promise = require('bluebird')`) are kept but they don't take any effects. The native Promise will always be used.
* We now require Node.js v10.12.0 or newer.
* We now only work with Redis v3.0.0 or newer.
* `Redis` can't be called as a function anymore as it's now a class.
Please change `Redis()` to `new Redis()`. Note that `Redis()` was already deprecated
in the previous version.
# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

No branches or pull requests

2 participants