-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Minor - P4
-
None
-
Affects Version/s: None
-
Component/s: django
-
None
-
None
-
Python Drivers
-
Not Needed
-
-
None
-
None
-
None
-
None
-
None
-
None
With 1 million documents, the following query raises a pymongo.errors.AutoReconnect: connection pool paused error:
list(book_class.objects.filter(publish_date__range=["1980-01-01", "2000-01-01"]))
Stack trace:
pymongo.errors.AutoReconnect: connection pool paused The above exception was the direct cause of the following exception:Traceback (most recent call last): File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/django/core/handlers/base.py", line 197, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/Users/nstapp/Github/django-mongodb-backend-benchmark/benchmarking/filter_operations/views.py", line 125, in benchmark_filter_operations run_stats = _run_benchmark(benchmark_function, setup_function, 10) File "/Users/nstapp/Github/django-mongodb-backend-benchmark/benchmarking/filter_operations/views.py", line 72, in _run_benchmark trial_stats["cpu_percent"], trial_stats["memory_usage"] = _measure_resource_utilization(benchmark_function) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^ File "/Users/nstapp/Github/django-mongodb-backend-benchmark/benchmarking/filter_operations/views.py", line 47, in _measure_resource_utilization func() ~~~~^^ File "/Users/nstapp/Github/django-mongodb-backend-benchmark/benchmarking/filter_operations/views.py", line 122, in benchmark_function list(book_class.objects.filter( ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^ publish_date__range=["1980-01-01", "2000-01-01"])) # use list() to force evaluation ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/django/db/models/query.py", line 384, in __iter__ self._fetch_all() ~~~~~~~~~~~~~~~^^ File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/django/db/models/query.py", line 1949, in _fetch_all self._result_cache = list(self._iterable_class(self)) ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size ) File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/django_mongodb_backend/compiler.py", line 266, in execute_sql return list(result) File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/django_mongodb_backend/compiler.py", line 325, in cursor_iter for row in cursor: ^^^^^^ File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/pymongo/synchronous/command_cursor.py", line 342, in __next__ return self.next() ~~~~~~~~~^^ File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/pymongo/synchronous/command_cursor.py", line 335, in next doc = self._try_next(True) File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/pymongo/synchronous/command_cursor.py", line 347, in _try_next self._refresh() ~~~~~~~~~~~~~^^ File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/pymongo/synchronous/command_cursor.py", line 307, in _refresh self._send_message( ~~~~~~~~~~~~~~~~~~^ self._getmore_class( ^^^^^^^^^^^^^^^^^^^^ ...<12 lines>... ) ^ ) ^ File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/pymongo/synchronous/command_cursor.py", line 254, in _send_message response = client._run_operation( operation, self._unpack_response, address=self._address ) File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/pymongo/_csot.py", line 125, in csot_wrapper return func(self, *args, **kwargs) File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/pymongo/synchronous/mongo_client.py", line 1917, in _run_operation return self._retryable_read( ~~~~~~~~~~~~~~~~~~~~^ _cmd, ^^^^^ ...<4 lines>... operation=operation.name, ^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/pymongo/synchronous/mongo_client.py", line 2026, in _retryable_read return self._retry_internal( ~~~~~~~~~~~~~~~~~~~~^ func, ^^^^^ ...<7 lines>... operation_id=operation_id, ^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/pymongo/_csot.py", line 125, in csot_wrapper return func(self, *args, **kwargs) File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/pymongo/synchronous/mongo_client.py", line 1993, in _retry_internal ).run() ~~~^^ File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/pymongo/synchronous/mongo_client.py", line 2730, in run return self._read() if self._is_read else self._write() ~~~~~~~~~~^^ File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/pymongo/synchronous/mongo_client.py", line 2877, in _read with self._client._conn_from_server(self._read_pref, self._server, self._session) as ( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/nstapp/.pyenv/versions/3.13.0/lib/python3.13/contextlib.py", line 141, in __enter__ return next(self.gen) File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/pymongo/synchronous/mongo_client.py", line 1846, in _conn_from_server with self._checkout(server, session) as conn: ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ File "/Users/nstapp/.pyenv/versions/3.13.0/lib/python3.13/contextlib.py", line 141, in __enter__ return next(self.gen) File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/pymongo/synchronous/mongo_client.py", line 1756, in _checkout with server.checkout(handler=err_handler) as conn: ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^ File "/Users/nstapp/.pyenv/versions/3.13.0/lib/python3.13/contextlib.py", line 141, in __enter__ return next(self.gen) File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/pymongo/synchronous/pool.py", line 1119, in checkout conn = self._get_conn(checkout_started_time, handler=handler) File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/pymongo/synchronous/pool.py", line 1235, in _get_conn self._raise_if_not_ready(checkout_started_time, emit_event=True) ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/pymongo/synchronous/pool.py", line 1187, in _raise_if_not_ready _raise_connection_failure( ~~~~~~~~~~~~~~~~~~~~~~~~~^ self.address, AutoReconnect("connection pool paused"), timeout_details=details ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/Users/nstapp/Github/django-mongodb-backend-benchmark/.venv/lib/python3.13/site-packages/pymongo/pool_shared.py", line 149, in _raise_connection_failure raise AutoReconnect(msg) from error pymongo.errors.AutoReconnect: djangobenchmarking-shard-00-01.oztdp.mongodb-dev.net:27017: connection pool paused (configured timeouts: connectTimeoutMS: 20000.0ms)
Should we explicitly give guidance to users on when evaluating a large query in this manner may fail?
- is blocked by
-
DRIVERS-1998 Add a reason to connection pool Clear method
-
- Backlog
-