Sitelet https://github.com/phpredis/phpredis/issues/1811
Skip to content

PHP Redis - Cluster Connection timeout. #1811

Description

@saurabhornawala

HI,

I am using phpredis to connect a redis cluster by passing all server IPs to it(3 masters + 3 slaves). My script uses HMSET to put data into the cluster. Every once in a while, I have noticed that the script does not end (for multiple days). While tracing the issue, I could see that phpredis is receiving a "MOVED" response from the server(checked via strace) and in php logs, phpredis issues the following WARNINGS,

PHP Warning: RedisCluster::hmset(): connect() failed: connection refused (this warning are very frequent)
PHP Warning: RedisCluster::hmset(): connect() failed: connection timed out

While these warnings are being issued, I am able to connect to all nodes of the cluster outside the script. This leads me to believe that this may be something to do with phpredis itself and not the redis cluster.

Below is the strace output.

18718 recvfrom(4, "-MOVED 9720 192.168.1.6:6379\r\n", 8192, MSG_DONTWAIT, NULL, NULL) = 31
18718 poll([{fd=4, events=POLLIN|POLLPRI|POLLERR|POLLHUP}], 1, 0) = 0 (Timeout)
18718 sendto(4, "*10\r\n$5\r\nHMSET\r\n$11\r\ns:"..., 148, MSG_DONTWAIT, NULL, 0) = 148
18718 poll([{fd=4, events=POLLIN|POLLPRI|POLLERR|POLLHUP}], 1, 0) = 0 (Timeout)
18718 poll([{fd=4, events=POLLIN|POLLERR|POLLHUP}], 1, 60000) = 1 ([{fd=4, revents=POLLIN}])
18718 recvfrom(4, "-MOVED 9720 192.168.1.6:6379\r\n", 8192, MSG_DONTWAIT, NULL, NULL) = 31
18718 poll([{fd=4, events=POLLIN|POLLPRI|POLLERR|POLLHUP}], 1, 0) = 0 (Timeout)
18718 sendto(4, "*10\r\n$5\r\nHMSET\r\n$11\r\ns:"..., 148, MSG_DONTWAIT, NULL, 0) = 148
18718 poll([{fd=4, events=POLLIN|POLLPRI|POLLERR|POLLHUP}], 1, 0) = 0 (Timeout)
18718 poll([{fd=4, events=POLLIN|POLLERR|POLLHUP}], 1, 60000) = 1 ([{fd=4, revents=POLLIN}])
18718 recvfrom(4, "-MOVED 9720 192.168.1.6:6379\r\n", 8192, MSG_DONTWAIT, NULL, NULL) = 31
18718 poll([{fd=4, events=POLLIN|POLLPRI|POLLERR|POLLHUP}], 1, 0) = 0 (Timeout)
18718 sendto(4, "*10\r\n$5\r\nHMSET\r\n$11\r\ns:"..., 148, MSG_DONTWAIT, NULL, 0) = 148
18718 poll([{fd=4, events=POLLIN|POLLPRI|POLLERR|POLLHUP}], 1, 0) = 0 (Timeout)
18718 poll([{fd=4, events=POLLIN|POLLERR|POLLHUP}], 1, 60000) = 1 ([{fd=4, revents=POLLIN}])
18718 recvfrom(4, "-MOVED 9720 192.168.1.6:6379\r\n", 8192, MSG_DONTWAIT, NULL, NULL) = 31
18718 poll([{fd=4, events=POLLIN|POLLPRI|POLLERR|POLLHUP}], 1, 0) = 0 (Timeout)
18718 sendto(4, "*10\r\n$5\r\nHMSET\r\n$11\r\ns:"..., 148, MSG_DONTWAIT, NULL, 0) = 148
18718 poll([{fd=4, events=POLLIN|POLLPRI|POLLERR|POLLHUP}], 1, 0) = 0 (Timeout)

Redis: 4.0
PHP: 7.2.28
phpredis: 3.1.6

Any help with this regard is appreciated. Thanks.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions