You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-09 00:22:08 +03:00
Add failing test.
The test demonstrates failure for the following scenario. A single-subscription client calls unsubscribe immediately followed by a subscribe. It will fail when it tries to receive the next pmessage/message because the client will be in false pub_sub_mode. Here is why it is false: First, the 2nd subscribe sets pub_sub_mode to true during send_command. Next, the unsubscribe's return_reply sets pub_sub_mode to false. The 2nd subscribe's return_reply does not re-set pub_sub_mode back to true. So the result is a client with false pub_sub_mode that fails upon receipt of the next message or pmessage.
This commit is contained in:
14
tests/re_sub_test.js
Normal file
14
tests/re_sub_test.js
Normal file
@@ -0,0 +1,14 @@
|
||||
var client = require('../index').createClient()
|
||||
, client2 = require('../index').createClient()
|
||||
, assert = require('assert');
|
||||
|
||||
client.once('subscribe', function (channel, count) {
|
||||
client.unsubscribe('x');
|
||||
client.subscribe('x', function () {
|
||||
client.quit();
|
||||
client2.quit();
|
||||
});
|
||||
client2.publish('x', 'hi');
|
||||
});
|
||||
|
||||
client.subscribe('x');
|
Reference in New Issue
Block a user