You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-06 02:15:48 +03:00
Fixed an unexpected exception bug when reconnecting in pub/sub mode if selected_db is not null
RedisClient might enter pub/sub mode after at least one SELECT command issued. When reconnecting, the SELECT command is issued after restoring pub_sub_command to true, which causes an exception.
This commit is contained in:
5
index.js
5
index.js
@@ -282,7 +282,12 @@ RedisClient.prototype.on_ready = function () {
|
|||||||
|
|
||||||
// magically restore any modal commands from a previous connection
|
// magically restore any modal commands from a previous connection
|
||||||
if (this.selected_db !== null) {
|
if (this.selected_db !== null) {
|
||||||
|
// this trick works if and only if the following send_command
|
||||||
|
// never goes into the offline queue
|
||||||
|
var pub_sub_mode = this.pub_sub_mode;
|
||||||
|
this.pub_sub_mode = false;
|
||||||
this.send_command('select', [this.selected_db]);
|
this.send_command('select', [this.selected_db]);
|
||||||
|
this.pub_sub_mode = pub_sub_mode;
|
||||||
}
|
}
|
||||||
if (this.pub_sub_mode === true) {
|
if (this.pub_sub_mode === true) {
|
||||||
// only emit "ready" when all subscriptions were made again
|
// only emit "ready" when all subscriptions were made again
|
||||||
|
Reference in New Issue
Block a user