I have an application that uses Mongo 4.2, working correctly. I'm upgrading it to Mongo 4.4 (my only change has been that I've changed that version in my docker-compose) and I'm getting now the following error
ERROR - ChangeStream(DtaSystem) failure (retry 2): mongo:27017:
[Errno -2] Name or service not known, Timeout: 30s, Topology Description: <TopologyDescription id: 64637f453b6db73ab7c869ea, topology_type: Single, servers: [<ServerDescription ('mongo', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('mongo:27017: [Errno -2] Name or service not known')>]> - {"name": "dta", "args": null, "levelname": "ERROR", "levelno": 40, "pathname": "/opt/app/src/common/database/changestream.py", "filename": "changestream.py", "module": "changestream", "exc_info": null, "exc_text": "Traceback (most recent call last):
File \"/opt/app/src/common/database/changestream.py\", line 61, in run
async with self._collection.watch(full_document=\"updateLookup\") as self._cursor:
File \"/usr/local/lib/python3.10/site-packages/motor/core.py\", line 1784, in __aenter__
await self._framework.run_on_executor(loop, self._lazy_init)
File \"/usr/local/lib/python3.10/concurrent/futures/thread.py\", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File \"/usr/local/lib/python3.10/site-packages/motor/core.py\", line 1665, in _lazy_init
self.delegate = self._target.delegate.watch(
File \"/usr/local/lib/python3.10/site-packages/pymongo/collection.py\", line 2846, in watch
return CollectionChangeStream(
File \"/usr/local/lib/python3.10/site-packages/pymongo/change_stream.py\", line 120, in __init__
self._cursor = self._create_cursor()
File \"/usr/local/lib/python3.10/site-packages/pymongo/change_stream.py\", line 209, in _create_cursor with self._client._tmp_session(self._session, close=False) as s:
File \"/usr/local/lib/python3.10/contextlib.py\", line 135, in __enter__
return next(self.gen)
File \"/usr/local/lib/python3.10/site-packages/pymongo/mongo_client.py\", line 2040, in _tmp_session
s = self._ensure_session(session)
File \"/usr/local/lib/python3.10/site-packages/pymongo/mongo_client.py\", line 2027, in _ensure_session
return self.__start_session(True, causal_consistency=False)
File \"/usr/local/lib/python3.10/site-packages/pymongo/mongo_client.py\", line 1976, in __start_session
server_session = self._get_server_session()
File \"/usr/local/lib/python3.10/site-packages/pymongo/mongo_client.py\", line 2013, in _get_server_session
return self._topology.get_server_session()
File \"/usr/local/lib/python3.10/site-packages/pymongo/topology.py\", line 525, in get_server_session
session_timeout = self._check_session_support()
File \"/usr/local/lib/python3.10/site-packages/pymongo/topology.py\", line 507, in _check_session_support
self._select_servers_loop(
File \"/usr/local/lib/python3.10/site-packages/pymongo/topology.py\", line 226, in _select_servers_loop
raise ServerSelectionTimeoutError(
pymongo.errors.ServerSelectionTimeoutError: mongo:27017:
[Errno -2] Name or service not known, Timeout: 30s, Topology Description: <TopologyDescription id: 64637f453b6db73ab7c869ea, topology_type: Single, servers: [<ServerDescription ('mongo', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('mongo:27017: [Errno -2] Name or service not known')>]>", "stack_info": null, "lineno": 74, "funcName": "run", "created": 1684242275.858626, "msecs": 858.0, "relativeCreated": 32486.500024795532, "thread": 140485789865792, "threadName": "MainThread", "processName": "MainProcess", "process": 16, "queue_name": "Main dta-services context", "time_millis": 1684242275858, "message": "ChangeStream(DtaSystem) failure (retry 2): mongo:27017: [Errno -2] Name or service not known, Timeout: 30s, Topology Description: <TopologyDescription id: 64637f453b6db73ab7c869ea, topology_type: Single, servers: [<ServerDescription ('mongo', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('mongo:27017: [Errno -2] Name or service not known')>]>"}
It looks like something has changed in the way we need to define ChangeStreams in 4.4 that is not backwards compatible with 4.2 but I can't find anything in the documentation.
Is this documented somewhere/do you know what we need to change in my configuration?