Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions README.pod
Original file line number Diff line number Diff line change
Expand Up @@ -1619,6 +1619,10 @@ Ivan Kruglov

Steffen Mueller <[email protected]>

=item *

David Millar <[email protected]>

=back

=head1 AUTHORS
Expand Down
4 changes: 4 additions & 0 deletions lib/Redis.pm
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ use constant EWOULDBLOCK => eval {Errno::EWOULDBLOCK} || -1E9;
use constant EAGAIN => eval {Errno::EAGAIN} || -1E9;
use constant EINTR => eval {Errno::EINTR} || -1E9;
use constant ECONNRESET => eval {Errno::ECONNRESET} || -1E9;
use constant EPIPE => eval {Errno::EPIPE} || -1E9;

# According to IO::Socket::SSL documentation, 16k is the maximum
# size of an SSL frame and because sysread returns data from only
Expand Down Expand Up @@ -1038,6 +1039,9 @@ sub __try_read_sock {
## or because an intermediate proxy shut down our connection using its internal timeout counter
return 0 if ($err && $err == ECONNRESET);

## Broken pipe, we will need to reconnect
$self->__throw_reconnect('Broken pipe') if $err == EPIPE;

## result is undef but err is 0? should never happen
return if $err == 0;

Expand Down