Avatar for the aio-libs user
aio-libs
aiohttp
BlogDocsChangelog

fix: leak of aiodns.DNSResolver when ClientSession is closed

#11150Merged
Comparing
Tasssadar:fix_resolver_leak
(
129fb90
) with
master
(
0544f11
)
CodSpeed Performance Gauge
-10%
Improvements
0
Regressions
1
Untouched
58
New
0
Dropped
0
Ignored
7

Benchmarks

Passed

test_get_request_with_251308_compressed_chunked_payload[isal.isal_zlib-pyloop]
tests/test_benchmarks_client.py::test_get_request_with_251308_compressed_chunked_payload[isal.isal_zlib-pyloop]
CodSpeed Performance Gauge
+1%
65.2 ms
64.3 ms
test_simple_web_file_sendfile_fallback_response[pyloop]
tests/test_benchmarks_web_fileresponse.py::test_simple_web_file_sendfile_fallback_response[pyloop]
CodSpeed Performance Gauge
+1%
85 ms
84.3 ms
test_resolve_root_route_with_many_fixed_routes[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_root_route_with_many_fixed_routes[pyloop]
CodSpeed Performance Gauge
+1%
885.3 µs
878.4 µs
test_resolve_gitapi_root[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_gitapi_root[pyloop]
CodSpeed Performance Gauge
+1%
2 ms
2 ms
test_resolve_static_root_route[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_static_root_route[pyloop]
CodSpeed Performance Gauge
+1%
983.3 µs
976.4 µs
test_create_client_request_with_headers[pyloop]
tests/test_benchmarks_client_request.py::test_create_client_request_with_headers[pyloop]
CodSpeed Performance Gauge
+1%
74.8 µs
74.3 µs
test_resolve_root_route[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_root_route[pyloop]
CodSpeed Performance Gauge
+1%
882.5 µs
878 µs
test_resolve_single_fixed_url_with_many_routes[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_single_fixed_url_with_many_routes[pyloop]
CodSpeed Performance Gauge
0%
888.5 µs
884.4 µs
test_resolve_multiple_level_fixed_url_with_many_routes[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_multiple_level_fixed_url_with_many_routes[pyloop]
CodSpeed Performance Gauge
0%
8.5 ms
8.5 ms
test_resolve_dynamic_resource_url_with_many_dynamic_routes[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_dynamic_resource_url_with_many_dynamic_routes[pyloop]
CodSpeed Performance Gauge
0%
3.6 ms
3.5 ms
test_resolve_gitapi[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_gitapi[pyloop]
CodSpeed Performance Gauge
0%
294.9 ms
293.8 ms
test_send_one_hundred_websocket_text_messages_with_mask[pyloop]
tests/test_benchmarks_http_websocket.py::test_send_one_hundred_websocket_text_messages_with_mask[pyloop]
CodSpeed Performance Gauge
0%
802.6 µs
799.7 µs
test_simple_web_file_response_not_modified[pyloop]
tests/test_benchmarks_web_fileresponse.py::test_simple_web_file_response_not_modified[pyloop]
CodSpeed Performance Gauge
0%
55.5 ms
55.3 ms
test_resolve_gitapi_subapps[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_gitapi_subapps[pyloop]
CodSpeed Performance Gauge
0%
296.3 ms
295.3 ms
test_get_request_with_251308_compressed_chunked_payload[zlib_ng.zlib_ng-pyloop]
tests/test_benchmarks_client.py::test_get_request_with_251308_compressed_chunked_payload[zlib_ng.zlib_ng-pyloop]
CodSpeed Performance Gauge
0%
230.1 ms
229.4 ms
test_send_one_hundred_websocket_text_messages[pyloop]
tests/test_benchmarks_http_websocket.py::test_send_one_hundred_websocket_text_messages[pyloop]
CodSpeed Performance Gauge
0%
562.4 µs
560.8 µs
test_read_one_hundred_websocket_text_messages[pyloop]
tests/test_benchmarks_http_websocket.py::test_read_one_hundred_websocket_text_messages[pyloop]
CodSpeed Performance Gauge
0%
212.2 µs
211.6 µs
test_resolve_prefix_resources_many_prefix_many_plain[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_prefix_resources_many_prefix_many_plain[pyloop]
CodSpeed Performance Gauge
0%
4.6 ms
4.6 ms
test_one_hundred_get_requests_with_512kib_content_length_payload[pyloop]
tests/test_benchmarks_client.py::test_one_hundred_get_requests_with_512kib_content_length_payload[pyloop]
CodSpeed Performance Gauge
0%
165.9 ms
165.7 ms
test_one_thousand_large_round_trip_websocket_text_messages[pyloop]
tests/test_benchmarks_client_ws.py::test_one_thousand_large_round_trip_websocket_text_messages[pyloop]
CodSpeed Performance Gauge
0%
21.5 ms
21.5 ms
test_client_request_update_cookies[pyloop]
tests/test_benchmarks_client_request.py::test_client_request_update_cookies[pyloop]
CodSpeed Performance Gauge
0%
154 µs
153.8 µs
test_resolve_multiple_fixed_url_with_many_routes[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_multiple_fixed_url_with_many_routes[pyloop]
CodSpeed Performance Gauge
0%
2.2 ms
2.2 ms
test_resolve_dynamic_resource_url_with_many_dynamic_routes_with_common_prefix[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_dynamic_resource_url_with_many_dynamic_routes_with_common_prefix[pyloop]
CodSpeed Performance Gauge
0%
247 ms
246.8 ms
test_simple_web_file_response[pyloop]
tests/test_benchmarks_web_fileresponse.py::test_simple_web_file_response[pyloop]
CodSpeed Performance Gauge
0%
78.6 ms
78.5 ms
test_read_large_binary_websocket_messages[pyloop]
tests/test_benchmarks_http_websocket.py::test_read_large_binary_websocket_messages[pyloop]
CodSpeed Performance Gauge
0%
8.9 ms
8.9 ms
test_resolve_dynamic_resource_url_with_many_static_routes[pyloop]
tests/test_benchmarks_web_urldispatcher.py::test_resolve_dynamic_resource_url_with_many_static_routes[pyloop]
CodSpeed Performance Gauge
0%
3.6 ms
3.6 ms
test_client_receive_large_websocket_compressed_messages[zlib-pyloop]
tests/test_benchmarks_client_ws.py::test_client_receive_large_websocket_compressed_messages[zlib-pyloop]
CodSpeed Performance Gauge
0%
50.2 ms
50.3 ms
test_get_request_with_251308_compressed_chunked_payload[zlib-pyloop]
tests/test_benchmarks_client.py::test_get_request_with_251308_compressed_chunked_payload[zlib-pyloop]
CodSpeed Performance Gauge
0%
426.1 ms
426.2 ms
test_client_send_large_websocket_compressed_messages[zlib-pyloop]
tests/test_benchmarks_client_ws.py::test_client_send_large_websocket_compressed_messages[zlib-pyloop]
CodSpeed Performance Gauge
0%
50.3 ms
50.3 ms
test_load_cookies_into_temp_cookiejar
tests/test_benchmarks_cookiejar.py::test_load_cookies_into_temp_cookiejar
CodSpeed Performance Gauge
0%
190.2 µs
190.3 µs
test_serialize_headers
tests/test_benchmarks_http_writer.py::test_serialize_headers
CodSpeed Performance Gauge
0%
854.7 µs
855 µs
test_one_hundred_simple_get_requests_multiple_methods_route[pyloop]
tests/test_benchmarks_client.py::test_one_hundred_simple_get_requests_multiple_methods_route[pyloop]
CodSpeed Performance Gauge
0%
32.7 ms
32.8 ms
test_one_hundred_simple_post_requests[pyloop]
tests/test_benchmarks_client.py::test_one_hundred_simple_post_requests[pyloop]
CodSpeed Performance Gauge
0%
36.8 ms
36.8 ms
test_one_thousand_round_trip_websocket_binary_messages[pyloop-large]
tests/test_benchmarks_client_ws.py::test_one_thousand_round_trip_websocket_binary_messages[pyloop-large]
CodSpeed Performance Gauge
0%
110.1 ms
110.1 ms
test_send_one_hundred_websocket_compressed_messages[zlib_ng.zlib_ng-pyloop]
tests/test_benchmarks_http_websocket.py::test_send_one_hundred_websocket_compressed_messages[zlib_ng.zlib_ng-pyloop]
CodSpeed Performance Gauge
0%
2.1 ms
2.1 ms
test_send_one_hundred_websocket_compressed_messages[isal.isal_zlib-pyloop]
tests/test_benchmarks_http_websocket.py::test_send_one_hundred_websocket_compressed_messages[isal.isal_zlib-pyloop]
CodSpeed Performance Gauge
0%
4.7 ms
4.7 ms
test_one_hundred_get_requests_with_30000_chunked_payload[pyloop]
tests/test_benchmarks_client.py::test_one_hundred_get_requests_with_30000_chunked_payload[pyloop]
CodSpeed Performance Gauge
0%
40.7 ms
40.7 ms
test_ten_web_middlewares[pyloop]
tests/test_benchmarks_web_middleware.py::test_ten_web_middlewares[pyloop]
CodSpeed Performance Gauge
0%
35.7 ms
35.7 ms
test_one_hundred_simple_get_requests[pyloop]
tests/test_benchmarks_client.py::test_one_hundred_simple_get_requests[pyloop]
CodSpeed Performance Gauge
0%
32.9 ms
33 ms
test_send_one_hundred_websocket_compressed_messages[zlib-pyloop]
tests/test_benchmarks_http_websocket.py::test_send_one_hundred_websocket_compressed_messages[zlib-pyloop]
CodSpeed Performance Gauge
0%
3.1 ms
3.1 ms
test_one_thousand_round_trip_websocket_text_messages[pyloop]
tests/test_benchmarks_client_ws.py::test_one_thousand_round_trip_websocket_text_messages[pyloop]
CodSpeed Performance Gauge
0%
16.7 ms
16.7 ms
test_one_hundred_get_requests_with_1024_content_length_payload[pyloop]
tests/test_benchmarks_client.py::test_one_hundred_get_requests_with_1024_content_length_payload[pyloop]
CodSpeed Performance Gauge
0%
35.2 ms
35.2 ms
test_send_one_hundred_large_websocket_text_messages[pyloop]
tests/test_benchmarks_http_websocket.py::test_send_one_hundred_large_websocket_text_messages[pyloop]
CodSpeed Performance Gauge
0%
546.5 µs
547.4 µs
test_one_hundred_json_post_requests[pyloop]
tests/test_benchmarks_client.py::test_one_hundred_json_post_requests[pyloop]
CodSpeed Performance Gauge
0%
38.6 ms
38.6 ms
test_one_hundred_simple_get_requests_alternating_clients[pyloop]
tests/test_benchmarks_client.py::test_one_hundred_simple_get_requests_alternating_clients[pyloop]
CodSpeed Performance Gauge
0%
33.6 ms
33.7 ms
test_one_hundred_get_requests_with_30000_content_length_payload[pyloop]
tests/test_benchmarks_client.py::test_one_hundred_get_requests_with_30000_content_length_payload[pyloop]
CodSpeed Performance Gauge
0%
40.4 ms
40.5 ms
test_one_hundred_get_requests_with_1024_chunked_payload[pyloop]
tests/test_benchmarks_client.py::test_one_hundred_get_requests_with_1024_chunked_payload[pyloop]
CodSpeed Performance Gauge
0%
35.5 ms
35.5 ms
test_simple_web_stream_response
tests/test_benchmarks_web_response.py::test_simple_web_stream_response
CodSpeed Performance Gauge
0%
246.1 µs
246.8 µs
test_create_client_request_with_cookies[pyloop]
tests/test_benchmarks_client_request.py::test_create_client_request_with_cookies[pyloop]
CodSpeed Performance Gauge
0%
120.1 µs
120.4 µs
test_send_client_request_one_hundred[pyloop]
tests/test_benchmarks_client_request.py::test_send_client_request_one_hundred[pyloop]
CodSpeed Performance Gauge
0%
2.5 ms
2.5 ms
test_ten_streamed_responses_iter_chunked_65536[pyloop]
tests/test_benchmarks_client.py::test_ten_streamed_responses_iter_chunked_65536[pyloop]
CodSpeed Performance Gauge
0%
22.8 ms
22.9 ms
test_simple_web_response
tests/test_benchmarks_web_response.py::test_simple_web_response
CodSpeed Performance Gauge
0%
451 µs
452.4 µs
test_one_thousand_round_trip_websocket_binary_messages[pyloop-small]
tests/test_benchmarks_client_ws.py::test_one_thousand_round_trip_websocket_binary_messages[pyloop-small]
CodSpeed Performance Gauge
0%
16.3 ms
16.3 ms
test_ten_streamed_responses_iter_chunked_4096[pyloop]
tests/test_benchmarks_client.py::test_ten_streamed_responses_iter_chunked_4096[pyloop]
CodSpeed Performance Gauge
0%
27.9 ms
28 ms
test_ten_streamed_responses_iter_chunks[pyloop]
tests/test_benchmarks_client.py::test_ten_streamed_responses_iter_chunks[pyloop]
CodSpeed Performance Gauge
-1%
16.1 ms
16.1 ms
test_web_response_with_bytes_body
tests/test_benchmarks_web_response.py::test_web_response_with_bytes_body
CodSpeed Performance Gauge
-1%
549.7 µs
553.2 µs
test_web_response_with_headers
tests/test_benchmarks_web_response.py::test_web_response_with_headers
CodSpeed Performance Gauge
-1%
687.1 µs
691.9 µs
test_web_response_with_text_body
tests/test_benchmarks_web_response.py::test_web_response_with_text_body
CodSpeed Performance Gauge
-1%
661.7 µs
668.1 µs
test_one_hundred_simple_get_requests_no_session[pyloop]Regression
tests/test_benchmarks_client.py::test_one_hundred_simple_get_requests_no_session[pyloop]
CodSpeed Performance Gauge
-10%
78.4 ms
87.2 ms

Ignored

test_one_hundred_get_requests_iter_chunks_on_512kib_chunked_payload[pyloop]Ignored
tests/test_benchmarks_client.py::test_one_hundred_get_requests_iter_chunks_on_512kib_chunked_payload[pyloop]
CodSpeed Performance Gauge
-19%
97.3 ms
119.7 ms
test_one_hundred_get_requests_with_512kib_chunked_payload[pyloop]Ignored
tests/test_benchmarks_client.py::test_one_hundred_get_requests_with_512kib_chunked_payload[pyloop]
CodSpeed Performance Gauge
-12%
166.5 ms
188.8 ms
test_ten_streamed_responses_iter_any[pyloop]Ignored
tests/test_benchmarks_client.py::test_ten_streamed_responses_iter_any[pyloop]
CodSpeed Performance Gauge
0%
21.5 ms
21.6 ms
test_client_receive_large_websocket_compressed_messages[isal.isal_zlib-pyloop]Ignored
tests/test_benchmarks_client_ws.py::test_client_receive_large_websocket_compressed_messages[isal.isal_zlib-pyloop]
CodSpeed Performance Gauge
+3%
19.8 ms
19.2 ms
test_client_receive_large_websocket_compressed_messages[zlib_ng.zlib_ng-pyloop]Ignored
tests/test_benchmarks_client_ws.py::test_client_receive_large_websocket_compressed_messages[zlib_ng.zlib_ng-pyloop]
CodSpeed Performance Gauge
+6%
31.5 ms
29.7 ms
test_client_send_large_websocket_compressed_messages[isal.isal_zlib-pyloop]Ignored
tests/test_benchmarks_client_ws.py::test_client_send_large_websocket_compressed_messages[isal.isal_zlib-pyloop]
CodSpeed Performance Gauge
+3%
19.8 ms
19.2 ms
test_client_send_large_websocket_compressed_messages[zlib_ng.zlib_ng-pyloop]Ignored
tests/test_benchmarks_client_ws.py::test_client_send_large_websocket_compressed_messages[zlib_ng.zlib_ng-pyloop]
CodSpeed Performance Gauge
+9%
29.8 ms
27.4 ms

Commits

Click on a commit to change the comparison range
Base
master
0544f11
-10%
fix: leak of aiodns.DNSResolver when ClientSession is closed Resolvers were never closed when TCPConnector is closed. Thus, _DNSResolverManager.release_resolver is never called, keeping the resolver referenced from _loop_data, which prevents pycares from garbage collecting it. Regression introduced in 3.12.0 in #10897
77cec38
2 months ago
by Tasssadar
0%
tweak change fragment
c5b5a2b
2 months ago
by bdraco
0%
add expected leak path to change message
129fb90
2 months ago
by bdraco
© 2025 CodSpeed Technology
Home Terms Privacy Docs