I have an application that utilizes the PyMongo driver to connect to an Atlas instance. This app has been hosted on an AWS t2 instance which uses the Intel Xeon chip as is specified here: https://aws.amazon.com/ec2/instance-types/
Recently, I switched the instance type to t3a which uses an AMD EPYC 7000 chip, and started receiving the below Authentication Error when attempting to my Mongo Atlas instance.
result = list(client["AssetFramework"]["tag"].find({}))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/ubuntu/test/venv/lib/python3.8/site-packages/pymongo/cursor.py", line 1248, in next
if len(self.__data) or self._refresh():
File "/home/ubuntu/test/venv/lib/python3.8/site-packages/pymongo/cursor.py", line 1165, in _refresh
self.__send_message(q)
File "/home/ubuntu/test/venv/lib/python3.8/site-packages/pymongo/cursor.py", line 1052, in __send_message
response = client._run_operation(
File "/home/ubuntu/test/venv/lib/python3.8/site-packages/pymongo/mongo_client.py", line 1267, in _run_operation
return self._retryable_read(
File "/home/ubuntu/test/venv/lib/python3.8/site-packages/pymongo/mongo_client.py", line 1365, in _retryable_read
with self._socket_from_server(read_pref, server, session) as (sock_info, read_pref):
File "/usr/lib/python3.8/contextlib.py", line 113, in __enter__
return next(self.gen)
File "/home/ubuntu/test/venv/lib/python3.8/site-packages/pymongo/mongo_client.py", line 1221, in _socket_from_server
with self._get_socket(server, session) as sock_info:
File "/usr/lib/python3.8/contextlib.py", line 113, in __enter__
return next(self.gen)
File "/home/ubuntu/test/venv/lib/python3.8/site-packages/pymongo/mongo_client.py", line 1156, in _get_socket
with server.get_socket(handler=err_handler) as sock_info:
File "/usr/lib/python3.8/contextlib.py", line 113, in __enter__
return next(self.gen)
File "/home/ubuntu/test/venv/lib/python3.8/site-packages/pymongo/pool.py", line 1379, in get_socket
sock_info = self._get_socket()
File "/home/ubuntu/test/venv/lib/python3.8/site-packages/pymongo/pool.py", line 1489, in _get_socket
sock_info = self.connect()
File "/home/ubuntu/test/venv/lib/python3.8/site-packages/pymongo/pool.py", line 1350, in connect
sock_info.authenticate()
File "/home/ubuntu/test/venv/lib/python3.8/site-packages/pymongo/pool.py", line 845, in authenticate
auth.authenticate(creds, self)
File "/home/ubuntu/test/venv/lib/python3.8/site-packages/pymongo/auth.py", line 549, in authenticate
auth_func(credentials, sock_info)
File "/home/ubuntu/test/venv/lib/python3.8/site-packages/pymongo/auth.py", line 475, in _authenticate_default
return _authenticate_scram(credentials, sock_info, "SCRAM-SHA-1")
File "/home/ubuntu/test/venv/lib/python3.8/site-packages/pymongo/auth.py", line 241, in _authenticate_scram
res = sock_info.command(source, cmd)
File "/home/ubuntu/test/venv/lib/python3.8/site-packages/pymongo/pool.py", line 743, in command
return command(
File "/home/ubuntu/test/venv/lib/python3.8/site-packages/pymongo/network.py", line 160, in command
helpers._check_command_response(
File "/home/ubuntu/test/venv/lib/python3.8/site-packages/pymongo/helpers.py", line 180, in _check_command_response
raise OperationFailure(errmsg, code, response, max_wire_version)
pymongo.errors.OperationFailure: Authentication failed., full error: {'ok': 0.0, 'errmsg': 'Authentication failed.', 'code': 18, 'codeName': 'AuthenticationFailed', '$clusterTime': {'clusterTime': Timestamp(1649222215, 121), 'signature': {'hash': b'\x1f\xab0\xbaA\xa8\x12^\xd8\xde\xa9\xd1e\xe7A0\xe4D$\x80', 'keyId': 7035638566696779937}}, 'operationTime': Timestamp(1649222215, 121)}
The exact same code with the same connection string/credentials works on the Intel Xeon chip, and this isn’t a Server Selection Timeout error so the firewall is configured correctly.
Is the PyMongo driver compatible with AMD chips? Specifically AMD EPYC 7571?
Or is there some additional configuration needed here?
Thanks.