hiredis with libevent: "XREADGROUP block 0 group mqGroup consumerA count 1 NOACK streams mq >" leading to timeout.

Created on 27 Oct 2020  路  3Comments  路  Source: redis/hiredis

I noly set options.connect_timeout, not options.command_timeout. But, it still has timeout.

To get the latest message, using block 0 , not polling.

redisAsyncCommand(c, on_stream, (char *)"->", "XREADGROUP block 0 group mqGroup consumerA count 1 NOACK streams mq >");
bug

All 3 comments

I can confirm this.

What's happening is that we're not connected yet so we attach the connect timeout but since there is only one "timeout" struct in async it then persists after we connect.

I'm not 100% sure what the solution is but it shouldn't be too complex.

Edit: I'll fix the problem for real but you can do something like this as a short-term workaround.

I can confirm this.

What's happening is that we're not connected yet so we attach the connect timeout but since there is only one "timeout" struct in async it then persists after we connect.

I'm not 100% sure what the solution is but it shouldn't be too complex.

Edit: I'll fix the problem for real but you can do something like this as a short-term workaround.

For the workaround, I just comment the code about options.connect_timeout and it work for me.

For the workaround, I just comment the code about options.connect_timeout and it work for me.

That works too. My hack would allow you to still specify a connect timeout.

I'll try to get a proper fix up this weekend.

Was this page helpful?
0 / 5 - 0 ratings