-
Type: Build Failure
-
Resolution: Done
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
Detailed steps to reproduce the problem?
Include full traceback, if possible
[2023/11/08 11:25:53.741] FAILURE: aiohttp.client_exceptions.ClientResponseError: 400, message="Expected HTTP/:\n\n b'0'\n ^", url=URL('http://localhost:8088/fs/foo') () [2023/11/08 11:25:53.741] self = <ClientResponse(http://localhost:8088/fs/foo) [None None]> [2023/11/08 11:25:53.741] None [2023/11/08 11:25:53.741] connection = Connection<ConnectionKey(host='localhost', port=8088, is_ssl=False, ssl=None, proxy=None, proxy_auth=None, proxy_headers_hash=None)> [2023/11/08 11:25:53.741] async def start(self, connection: "Connection") -> "ClientResponse": [2023/11/08 11:25:53.741] """Start response processing.""" [2023/11/08 11:25:53.741] self._closed = False [2023/11/08 11:25:53.741] self._protocol = connection.protocol [2023/11/08 11:25:53.741] self._connection = connection [2023/11/08 11:25:53.741] [2023/11/08 11:25:53.741] with self._timer: [2023/11/08 11:25:53.741] while True: [2023/11/08 11:25:53.741] # read response [2023/11/08 11:25:53.741] try: [2023/11/08 11:25:53.741] protocol = self._protocol [2023/11/08 11:25:53.741] > message, payload = await protocol.read() # type: ignore[union-attr] [2023/11/08 11:25:53.741] .tox/test-pymongo-latest/lib/python3.7/site-packages/aiohttp/client_reqrep.py:905: [2023/11/08 11:25:53.741] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [2023/11/08 11:25:53.741] .tox/test-pymongo-latest/lib/python3.7/site-packages/aiohttp/streams.py:616: in read [2023/11/08 11:25:53.741] await self._waiter [2023/11/08 11:25:53.741] .tox/test-pymongo-latest/lib/python3.7/site-packages/aiohttp/client_proto.py:213: in data_received [2023/11/08 11:25:53.741] messages, upgraded, tail = self._parser.feed_data(data) [2023/11/08 11:25:53.741] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [2023/11/08 11:25:53.741] > ??? [2023/11/08 11:25:53.741] E aiohttp.http_exceptions.BadHttpMessage: 400, message: [2023/11/08 11:25:53.741] E Expected HTTP/: [2023/11/08 11:25:53.741] E [2023/11/08 11:25:53.741] E b'0' [2023/11/08 11:25:53.741] E ^ [2023/11/08 11:25:53.741] aiohttp/_http_parser.pyx:557: BadHttpMessage [2023/11/08 11:25:53.741] The above exception was the direct cause of the following exception: [2023/11/08 11:25:53.741] self = <test.asyncio_tests.test_aiohttp_gridfs.AIOHTTPGridFSHandlerTest testMethod=test_basic> [2023/11/08 11:25:53.741] @asyncio_test [2023/11/08 11:25:53.741] async def test_basic(self): [2023/11/08 11:25:53.741] await self.start_app() [2023/11/08 11:25:53.741] # First request [2023/11/08 11:25:53.741] response = await self.get("/fs/foo") [2023/11/08 11:25:53.741] [2023/11/08 11:25:53.741] self.assertEqual(200, response.status) [2023/11/08 11:25:53.741] self.assertEqual(self.contents, (await response.read())) [2023/11/08 11:25:53.741] self.assertEqual(len(self.contents), int(response.headers["Content-Length"])) [2023/11/08 11:25:53.741] self.assertEqual("my type", response.headers["Content-Type"]) [2023/11/08 11:25:53.741] self.assertEqual("public", response.headers["Cache-Control"]) [2023/11/08 11:25:53.741] self.assertTrue("Expires" not in response.headers) [2023/11/08 11:25:53.741] [2023/11/08 11:25:53.741] etag = response.headers["Etag"] [2023/11/08 11:25:53.741] last_mod_dt = parse_date(response.headers["Last-Modified"]) [2023/11/08 11:25:53.741] self.assertEqual(self.contents_hash, etag.strip('"')) [2023/11/08 11:25:53.741] self.assertTrue(self.put_start <= last_mod_dt <= self.put_end) [2023/11/08 11:25:53.741] [2023/11/08 11:25:53.741] # Now check we get 304 NOT MODIFIED responses as appropriate [2023/11/08 11:25:53.741] for ims_value in (last_mod_dt, last_mod_dt + datetime.timedelta(seconds=1)): [2023/11/08 11:25:53.741] > response = await self.get("/fs/foo", if_modified_since=ims_value) [2023/11/08 11:25:53.741] test/asyncio_tests/test_aiohttp_gridfs.py:149: [2023/11/08 11:25:53.741] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [2023/11/08 11:25:53.741] test/asyncio_tests/test_aiohttp_gridfs.py:107: in request [2023/11/08 11:25:53.741] resp = await method("http://localhost:8088%s" % path, headers=headers) [2023/11/08 11:25:53.741] .tox/test-pymongo-latest/lib/python3.7/site-packages/aiohttp/client.py:586: in _request [2023/11/08 11:25:53.741] await resp.start(conn) [2023/11/08 11:25:53.741] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ [2023/11/08 11:25:53.741] self = <ClientResponse(http://localhost:8088/fs/foo) [None None]> [2023/11/08 11:25:53.741] None [2023/11/08 11:25:53.741] connection = Connection<ConnectionKey(host='localhost', port=8088, is_ssl=False, ssl=None, proxy=None, proxy_auth=None, proxy_headers_hash=None)> [2023/11/08 11:25:53.741] async def start(self, connection: "Connection") -> "ClientResponse": [2023/11/08 11:25:53.741] """Start response processing.""" [2023/11/08 11:25:53.741] self._closed = False [2023/11/08 11:25:53.741] self._protocol = connection.protocol [2023/11/08 11:25:53.741] self._connection = connection [2023/11/08 11:25:53.741] [2023/11/08 11:25:53.741] with self._timer: [2023/11/08 11:25:53.741] while True: [2023/11/08 11:25:53.741] # read response [2023/11/08 11:25:53.741] try: [2023/11/08 11:25:53.741] protocol = self._protocol [2023/11/08 11:25:53.741] message, payload = await protocol.read() # type: ignore[union-attr] [2023/11/08 11:25:53.741] except http.HttpProcessingError as exc: [2023/11/08 11:25:53.741] raise ClientResponseError( [2023/11/08 11:25:53.741] self.request_info, [2023/11/08 11:25:53.741] self.history, [2023/11/08 11:25:53.741] status=exc.code, [2023/11/08 11:25:53.741] message=exc.message, [2023/11/08 11:25:53.741] headers=exc.headers, [2023/11/08 11:25:53.741] > ) from exc [2023/11/08 11:25:53.741] E aiohttp.client_exceptions.ClientResponseError: 400, message="Expected HTTP/:\n\n b'0'\n ^", url=URL('http://localhost:8088/fs/foo') [2023/11/08 11:25:53.741] .tox/test-pymongo-latest/lib/python3.7/site-packages/aiohttp/client_reqrep.py:913: ClientResponseError
Definition of done: what must be done to consider the task complete?
Run motor tests using pinned version of aiohttp 3.8.5. If this version passes tests, we then need to file a bug against aiohttp that 3.8.6 introduced a breaking change.
- clones
-
MOTOR-1217 Run aiohttp 3.8.5 against our motor tests
- Closed
- is depended on by
-
MOTOR-1163 Test against aiohttp on Python 3.12
- Closed
- is duplicated by
-
MOTOR-1196 [Build Failure] AIOHTTPGridFSHandlerTest
- Closed