-
Type: Build Failure
-
Resolution: Fixed
-
Priority: Unknown
-
Affects Version/s: None
-
Component/s: None
-
None
test.tornado_tests.test_motor_client.MotorClientExhaustCursorTest.test_exhaust_query_server_error_rs
[2023/08/29 20:59:19.737] FAILURE: concurrent.futures._base.TimeoutError: Operation timed out after 30.0 seconds () [2023/08/29 20:59:19.737] .tox/test-pymongo-latest/lib/python3.7/site-packages/tornado/testing.py:102: in __call__ [2023/08/29 20:59:19.737] result = self.orig_method(*args, **kwargs) [2023/08/29 20:59:19.737] .tox/test-pymongo-latest/lib/python3.7/site-packages/tornado/testing.py:663: in post_coroutine [2023/08/29 20:59:19.737] functools.partial(coro, self, *args, **kwargs), timeout=timeout [2023/08/29 20:59:19.737] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [2023/08/29 20:59:19.737] self = <tornado.platform.asyncio.AsyncIOLoop object at 0x7f316d2f59d0> [2023/08/29 20:59:19.737] func = functools.partial(<function MotorClientExhaustCursorTest.test_exhaust_query_server_error_rs at 0x7f31858eb440>, <test.tornado_tests.test_motor_client.MotorClientExhaustCursorTest testMethod=test_exhaust_query_server_error_rs>) [2023/08/29 20:59:19.737] timeout = 30.0 [2023/08/29 20:59:19.737] def run_sync(self, func: Callable, timeout: Optional[float] = None) -> Any: [2023/08/29 20:59:19.737] """Starts the `IOLoop`, runs the given function, and stops the loop. [2023/08/29 20:59:19.737] [2023/08/29 20:59:19.737] The function must return either an awaitable object or [2023/08/29 20:59:19.737] ``None``. If the function returns an awaitable object, the [2023/08/29 20:59:19.737] `IOLoop` will run until the awaitable is resolved (and [2023/08/29 20:59:19.737] `run_sync()` will return the awaitable's result). If it raises [2023/08/29 20:59:19.737] an exception, the `IOLoop` will stop and the exception will be [2023/08/29 20:59:19.737] re-raised to the caller. [2023/08/29 20:59:19.737] [2023/08/29 20:59:19.737] The keyword-only argument ``timeout`` may be used to set [2023/08/29 20:59:19.737] a maximum duration for the function. If the timeout expires, [2023/08/29 20:59:19.737] a `asyncio.TimeoutError` is raised. [2023/08/29 20:59:19.737] [2023/08/29 20:59:19.737] This method is useful to allow asynchronous calls in a [2023/08/29 20:59:19.737] ``main()`` function:: [2023/08/29 20:59:19.737] [2023/08/29 20:59:19.737] async def main(): [2023/08/29 20:59:19.737] # do stuff... [2023/08/29 20:59:19.737] [2023/08/29 20:59:19.737] if __name__ == '__main__': [2023/08/29 20:59:19.737] IOLoop.current().run_sync(main) [2023/08/29 20:59:19.737] [2023/08/29 20:59:19.737] .. versionchanged:: 4.3 [2023/08/29 20:59:19.737] Returning a non-``None``, non-awaitable value is now an error. [2023/08/29 20:59:19.737] [2023/08/29 20:59:19.737] .. versionchanged:: 5.0 [2023/08/29 20:59:19.737] If a timeout occurs, the ``func`` coroutine will be cancelled. [2023/08/29 20:59:19.737] [2023/08/29 20:59:19.737] .. versionchanged:: 6.2 [2023/08/29 20:59:19.737] ``tornado.util.TimeoutError`` is now an alias to ``asyncio.TimeoutError``. [2023/08/29 20:59:19.737] """ [2023/08/29 20:59:19.737] future_cell = [None] # type: List[Optional[Future]] [2023/08/29 20:59:19.737] [2023/08/29 20:59:19.737] def run() -> None: [2023/08/29 20:59:19.737] try: [2023/08/29 20:59:19.737] result = func() [2023/08/29 20:59:19.737] if result is not None: [2023/08/29 20:59:19.737] from tornado.gen import convert_yielded [2023/08/29 20:59:19.737] [2023/08/29 20:59:19.737] result = convert_yielded(result) [2023/08/29 20:59:19.737] except Exception: [2023/08/29 20:59:19.737] fut = Future() # type: Future[Any] [2023/08/29 20:59:19.737] future_cell[0] = fut [2023/08/29 20:59:19.737] future_set_exc_info(fut, sys.exc_info()) [2023/08/29 20:59:19.737] else: [2023/08/29 20:59:19.737] if is_future(result): [2023/08/29 20:59:19.737] future_cell[0] = result [2023/08/29 20:59:19.737] else: [2023/08/29 20:59:19.737] fut = Future() [2023/08/29 20:59:19.737] future_cell[0] = fut [2023/08/29 20:59:19.737] fut.set_result(result) [2023/08/29 20:59:19.737] assert future_cell[0] is not None [2023/08/29 20:59:19.737] self.add_future(future_cell[0], lambda future: self.stop()) [2023/08/29 20:59:19.737] [2023/08/29 20:59:19.737] self.add_callback(run) [2023/08/29 20:59:19.737] if timeout is not None: [2023/08/29 20:59:19.737] [2023/08/29 20:59:19.737] def timeout_callback() -> None: [2023/08/29 20:59:19.737] # If we can cancel the future, do so and wait on it. If not, [2023/08/29 20:59:19.737] # Just stop the loop and return with the task still pending. [2023/08/29 20:59:19.737] # (If we neither cancel nor wait for the task, a warning [2023/08/29 20:59:19.737] # will be logged). [2023/08/29 20:59:19.737] assert future_cell[0] is not None [2023/08/29 20:59:19.737] if not future_cell[0].cancel(): [2023/08/29 20:59:19.737] self.stop() [2023/08/29 20:59:19.737] [2023/08/29 20:59:19.737] timeout_handle = self.add_timeout(self.time() + timeout, timeout_callback) [2023/08/29 20:59:19.737] self.start() [2023/08/29 20:59:19.737] if timeout is not None: [2023/08/29 20:59:19.737] self.remove_timeout(timeout_handle) [2023/08/29 20:59:19.737] assert future_cell[0] is not None [2023/08/29 20:59:19.737] if future_cell[0].cancelled() or not future_cell[0].done(): [2023/08/29 20:59:19.737] > raise TimeoutError("Operation timed out after %s seconds" % timeout) [2023/08/29 20:59:19.737] E concurrent.futures._base.TimeoutError: Operation timed out after 30.0 seconds [2023/08/29 20:59:19.737] .tox/test-pymongo-latest/lib/python3.7/site-packages/tornado/ioloop.py:528: TimeoutError
test.tornado_tests.test_motor_client.MotorClientExhaustCursorTest.test_exhaust_query_server_error_standalone
[2023/08/29 20:59:19.786] FAILURE: concurrent.futures._base.TimeoutError: Operation timed out after 30.0 seconds () [2023/08/29 20:59:19.786] .tox/test-pymongo-latest/lib/python3.7/site-packages/tornado/testing.py:102: in __call__ [2023/08/29 20:59:19.786] result = self.orig_method(*args, **kwargs) [2023/08/29 20:59:19.786] .tox/test-pymongo-latest/lib/python3.7/site-packages/tornado/testing.py:663: in post_coroutine [2023/08/29 20:59:19.786] functools.partial(coro, self, *args, **kwargs), timeout=timeout [2023/08/29 20:59:19.786] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [2023/08/29 20:59:19.786] self = <tornado.platform.asyncio.AsyncIOLoop object at 0x7f31840d8450> [2023/08/29 20:59:19.786] func = functools.partial(<function MotorClientExhaustCursorTest.test_exhaust_query_server_error_standalone at 0x7f31858eb290>...st.tornado_tests.test_motor_client.MotorClientExhaustCursorTest testMethod=test_exhaust_query_server_error_standalone>) [2023/08/29 20:59:19.786] timeout = 30.0 [2023/08/29 20:59:19.786] def run_sync(self, func: Callable, timeout: Optional[float] = None) -> Any: [2023/08/29 20:59:19.786] """Starts the `IOLoop`, runs the given function, and stops the loop. [2023/08/29 20:59:19.786] [2023/08/29 20:59:19.786] The function must return either an awaitable object or [2023/08/29 20:59:19.786] ``None``. If the function returns an awaitable object, the [2023/08/29 20:59:19.786] `IOLoop` will run until the awaitable is resolved (and [2023/08/29 20:59:19.786] `run_sync()` will return the awaitable's result). If it raises [2023/08/29 20:59:19.786] an exception, the `IOLoop` will stop and the exception will be [2023/08/29 20:59:19.786] re-raised to the caller. [2023/08/29 20:59:19.786] [2023/08/29 20:59:19.786] The keyword-only argument ``timeout`` may be used to set [2023/08/29 20:59:19.786] a maximum duration for the function. If the timeout expires, [2023/08/29 20:59:19.786] a `asyncio.TimeoutError` is raised. [2023/08/29 20:59:19.786] [2023/08/29 20:59:19.786] This method is useful to allow asynchronous calls in a [2023/08/29 20:59:19.786] ``main()`` function:: [2023/08/29 20:59:19.786] [2023/08/29 20:59:19.786] async def main(): [2023/08/29 20:59:19.786] # do stuff... [2023/08/29 20:59:19.786] [2023/08/29 20:59:19.786] if __name__ == '__main__': [2023/08/29 20:59:19.786] IOLoop.current().run_sync(main) [2023/08/29 20:59:19.786] [2023/08/29 20:59:19.786] .. versionchanged:: 4.3 [2023/08/29 20:59:19.786] Returning a non-``None``, non-awaitable value is now an error. [2023/08/29 20:59:19.786] [2023/08/29 20:59:19.786] .. versionchanged:: 5.0 [2023/08/29 20:59:19.786] If a timeout occurs, the ``func`` coroutine will be cancelled. [2023/08/29 20:59:19.786] [2023/08/29 20:59:19.786] .. versionchanged:: 6.2 [2023/08/29 20:59:19.786] ``tornado.util.TimeoutError`` is now an alias to ``asyncio.TimeoutError``. [2023/08/29 20:59:19.786] """ [2023/08/29 20:59:19.786] future_cell = [None] # type: List[Optional[Future]] [2023/08/29 20:59:19.786] [2023/08/29 20:59:19.786] def run() -> None: [2023/08/29 20:59:19.786] try: [2023/08/29 20:59:19.786] result = func() [2023/08/29 20:59:19.786] if result is not None: [2023/08/29 20:59:19.786] from tornado.gen import convert_yielded [2023/08/29 20:59:19.786] [2023/08/29 20:59:19.786] result = convert_yielded(result) [2023/08/29 20:59:19.786] except Exception: [2023/08/29 20:59:19.786] fut = Future() # type: Future[Any] [2023/08/29 20:59:19.786] future_cell[0] = fut [2023/08/29 20:59:19.786] future_set_exc_info(fut, sys.exc_info()) [2023/08/29 20:59:19.786] else: [2023/08/29 20:59:19.786] if is_future(result): [2023/08/29 20:59:19.786] future_cell[0] = result [2023/08/29 20:59:19.786] else: [2023/08/29 20:59:19.786] fut = Future() [2023/08/29 20:59:19.786] future_cell[0] = fut [2023/08/29 20:59:19.786] fut.set_result(result) [2023/08/29 20:59:19.786] assert future_cell[0] is not None [2023/08/29 20:59:19.786] self.add_future(future_cell[0], lambda future: self.stop()) [2023/08/29 20:59:19.786] [2023/08/29 20:59:19.786] self.add_callback(run) [2023/08/29 20:59:19.786] if timeout is not None: [2023/08/29 20:59:19.786] [2023/08/29 20:59:19.786] def timeout_callback() -> None: [2023/08/29 20:59:19.786] # If we can cancel the future, do so and wait on it. If not, [2023/08/29 20:59:19.786] # Just stop the loop and return with the task still pending. [2023/08/29 20:59:19.786] # (If we neither cancel nor wait for the task, a warning [2023/08/29 20:59:19.786] # will be logged). [2023/08/29 20:59:19.786] assert future_cell[0] is not None [2023/08/29 20:59:19.786] if not future_cell[0].cancel(): [2023/08/29 20:59:19.786] self.stop() [2023/08/29 20:59:19.786] [2023/08/29 20:59:19.786] timeout_handle = self.add_timeout(self.time() + timeout, timeout_callback) [2023/08/29 20:59:19.786] self.start() [2023/08/29 20:59:19.786] if timeout is not None: [2023/08/29 20:59:19.786] self.remove_timeout(timeout_handle) [2023/08/29 20:59:19.786] assert future_cell[0] is not None [2023/08/29 20:59:19.786] if future_cell[0].cancelled() or not future_cell[0].done(): [2023/08/29 20:59:19.786] > raise TimeoutError("Operation timed out after %s seconds" % timeout) [2023/08/29 20:59:19.786] E concurrent.futures._base.TimeoutError: Operation timed out after 30.0 seconds [2023/08/29 20:59:19.786] .tox/test-pymongo-latest/lib/python3.7/site-packages/tornado/ioloop.py:528: TimeoutError
- is duplicated by
-
MOTOR-1195 [Build Failure] MotorClientExhaustCursorTest
- Closed
- related to
-
PYTHON-4038 Make explicit OperationFailure check on retryable read error handling
- Closed