test_replicate_old_master
Author: dragonclaw-dragonflydbCreated Aug 12, 2026Updated Sep 16, 2026
Labelsfailing-testiouring
Automated regression triage opened this issue.
- Test:
dragonfly/replication_config_test.py::test_replicate_old_master[df_factory0--localhost-7000] - Backend: iouring
- Commit: f4019d7fec0ddcd1e6484dd6eeade7d52b146af6
- Run: https://github.com/dragonflydb/dragonfly/actions/runs/31641685740
- Marker: run/31641685740/attempt/1
Reason: requests.exceptions.RetryError: HTTPSConnectionPool(host='github.com', port=443): Max retries exceeded with url: /dragonflydb/dragonfly/releases/download/v1.19.2/dragonfly-x86_64.tar.gz (Caused by ResponseError('too many 503 error responses'))
____________ test_replicate_old_master[df_factory0--localhost-7000] ____________
urllib3.exceptions.ResponseError: too many 503 error responses
The above exception was the direct cause of the following exception:
self = <requests.adapters.HTTPAdapter object at 0x7fdbe0bd0b30>
request = <PreparedRequest [GET]>, stream = True, timeout = None, verify = True
cert = None, proxies = OrderedDict()
def send(
self,
request: PreparedRequest,
stream: bool = False,
timeout: _t.TimeoutType = None,
verify: _t.VerifyType = True,
cert: _t.CertType = None,
proxies: dict[str, str] | None = None,
) -> Response:
"""Sends PreparedRequest object. Returns Response object.
:param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
:param stream: (optional) Whether to stream the request content.
:param timeout: (optional) How long to wait for the server to send
data before giving up, as a float, or a :ref:`(connect timeout,
read timeout) <timeouts>` tuple.
:type timeout: float or tuple or urllib3 Timeout object
:param verify: (optional) Either a boolean, in which case it controls whether
we verify the server's TLS certificate, or a string, in which case it
must be a path to a CA bundle to use
:param cert: (optional) Any user-provided SSL certificate to be trusted.
:param proxies: (optional) The proxies dictionary to apply to the request.
:rtype: requests.Response
"""
assert _is_prepared(request)
try:
conn = self.get_connection_with_tls_context(
request, verify, proxies=proxies, cert=cert
)
except LocationValueError as e:
raise InvalidURL(e, request=request)
self.cert_verify(conn, request.url, verify, cert)
url = self.request_url(request, proxies)
self.add_headers(
request,
stream=stream,
timeout=timeout,
verify=verify,
cert=cert,
proxies=proxies,
)
chunked = not (request.body is None or "Content-Length" in request.headers)
if isinstance(timeout, tuple):
try:
connect, read = timeout
resolved_timeout = TimeoutSauce(connect=connect, read=read)
except ValueError:
raise ValueError(
f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, "
f"or a single float to set both timeouts to the same value."
)
elif isinstance(timeout, TimeoutSauce):
resolved_timeout = timeout
else:
resolved_timeout = TimeoutSauce(connect=timeout, read=timeout)
try:
> resp = conn.urlopen(
method=request.method,
url=url,
body=request.body, # type: ignore[arg-type] # urllib3 stubs don't accept Iterable[bytes | str]
headers=request.headers, # type: ignore[arg-type] # urllib3#3072
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=resolved_timeout,
chunked=chunked,
)
cert = None
chunked = False
conn = <urllib3.connectionpool.HTTPSConnectionPool object at 0x7fdbe8249880>
proxies = OrderedDict()
request = <PreparedRequest [GET]>
resolved_timeout = Timeout(connect=None, read=None, total=None)
self = <requests.adapters.HTTPAdapter object at 0x7fdbe0bd0b30>
stream = True
timeout = None
url = '/dragonflydb/dragonfly/releases/download/v1.19.2/dragonfly-x86_64.tar.gz'
verify = True
/usr/local/lib/python3.12/dist-packages/requests/adapters.py:696:
_ _ _ _ _ _ _ _ _ _ Source: dragonflydb/dragonfly