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.
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.