Subject: | Wrong logic checking for dead socket |
In Memcached.pm around line 752 on checking if the socket is dead you
don't take in account other socket errors, for instance "closed socket",
"bad file descriptor", etc.
Changing
unless ($res > 0) {
into
unless (defined $res and $res > 0) {
fixes it (EWOULDBLOCK is considered in the previous line).
We got a infinite loop on the _load_multi big select loop because of the
socket being closed.