File tree Expand file tree Collapse file tree 2 files changed +18
-5
lines changed Expand file tree Collapse file tree 2 files changed +18
-5
lines changed Original file line number Diff line number Diff line change @@ -736,8 +736,7 @@ def ensure_connected(retryable: true)
736736 connection = nil
737737 preferred_error = nil
738738 begin
739- connection = raw_connection
740- connection . retry_attempt = config . retriable? ( tries ) ? tries : nil
739+ connection = raw_connection ( config . retriable? ( tries ) ? tries : nil )
741740 if block_given?
742741 yield connection
743742 else
@@ -776,17 +775,18 @@ def ensure_connected(retryable: true)
776775 end
777776 end
778777
779- def raw_connection
778+ def raw_connection ( retry_attempt = nil )
780779 if @raw_connection . nil? || !@raw_connection . revalidate
781- connect
780+ connect ( retry_attempt )
782781 end
783782 @raw_connection
784783 end
785784
786- def connect
785+ def connect ( retry_attempt = nil )
787786 @pid = PIDCache . pid
788787
789788 if @raw_connection
789+ @raw_connection . retry_attempt = retry_attempt
790790 @middlewares . connect ( config ) do
791791 @raw_connection . reconnect
792792 end
@@ -799,6 +799,7 @@ def connect
799799 write_timeout : write_timeout ,
800800 )
801801 end
802+ @raw_connection . retry_attempt = retry_attempt
802803 end
803804
804805 prelude = config . connection_prelude . dup
Original file line number Diff line number Diff line change @@ -76,6 +76,10 @@ def write(command)
7676 @io . write ( buffer )
7777 rescue SystemCallError , IOError , OpenSSL ::SSL ::SSLError => error
7878 raise connection_error ( error . message )
79+ rescue Error => error
80+ error . _set_config ( config )
81+ error . _set_retry_attempt ( @retry_attempt )
82+ raise error
7983 end
8084 end
8185
@@ -88,6 +92,10 @@ def write_multi(commands)
8892 @io . write ( buffer )
8993 rescue SystemCallError , IOError , OpenSSL ::SSL ::SSLError => error
9094 raise connection_error ( error . message )
95+ rescue Error => error
96+ error . _set_config ( config )
97+ error . _set_retry_attempt ( @retry_attempt )
98+ raise error
9199 end
92100 end
93101
@@ -101,6 +109,10 @@ def read(timeout = nil)
101109 raise RedisClient ::ProtocolError . with_config ( error . message , config )
102110 rescue SystemCallError , IOError , OpenSSL ::SSL ::SSLError => error
103111 raise connection_error ( error . message )
112+ rescue Error => error
113+ error . _set_config ( config )
114+ error . _set_retry_attempt ( @retry_attempt )
115+ raise error
104116 end
105117
106118 def measure_round_trip_delay
You can’t perform that action at this time.
0 commit comments