This issue occurs when:
- PyMongo version is >= 3.11
- Cluster is a replica set with an arbiter
- Cluster has authentication enabled
- URI Options include minPoolSize and maxPoolSize
$ mlaunch init --replicaset --nodes 2 --arbiter --auth --port 27027 --binarypath $(m bin 4.2.12) $ python test.py Connection String: mongodb://user:password@localhost:27027,localhost:27028,localhost:27029/admin?replicaSet=replset&w=majority&readPreference=secondaryPreferred&minPoolSize=1&maxPoolSize=4 PyMongo Version: 3.10.1 {'hosts': ['localhost:27027', 'localhost:27028'], 'arbiters': ['localhost:27029'], 'setName': 'replset', 'setVersion': 1, 'ismaster': True, 'secondary': False, 'primary': 'localhost:27027', 'me': 'localhost:27027', 'electionId': ObjectId('7fffffff0000000000000001'), 'lastWrite': {'opTime': {'ts': Timestamp(1617654986, 20), 't': 1}, 'lastWriteDate': datetime.datetime(2021, 4, 5, 20, 36, 26), 'majorityOpTime': {'ts': Timestamp(1617654986, 20), 't': 1}, 'majorityWriteDate': datetime.datetime(2021, 4, 5, 20, 36, 26)}, 'maxBsonObjectSize': 16777216, 'maxMessageSizeBytes': 48000000, 'maxWriteBatchSize': 100000, 'localTime': datetime.datetime(2021, 4, 5, 20, 36, 36, 211000), 'logicalSessionTimeoutMinutes': 30, 'connectionId': 105, 'minWireVersion': 0, 'maxWireVersion': 8, 'readOnly': False, 'ok': 1.0, '$clusterTime': {'clusterTime': Timestamp(1617654986, 20), 'signature': {'hash': b"#n\xe7\xad\x11`j\\\xb3\xc8\xda5\xca\x83\xf79\xed'\xd8d", 'keyId': 6947772757115404291}}, 'operationTime': Timestamp(1617654986, 20)}
No issues using 3.10.x, however when the requirements are updated:
$ pip install -r requirements.txt Collecting pymongo==3.11.3 Using cached pymongo-3.11.3-cp38-cp38-manylinux2014_x86_64.whl (531 kB) Installing collected packages: pymongo Attempting uninstall: pymongo Found existing installation: pymongo 3.10.1 Uninstalling pymongo-3.10.1: Successfully uninstalled pymongo-3.10.1 Successfully installed pymongo-3.11.3 $ python test.py Connection String: mongodb://user:password@localhost:27027,localhost:27028,localhost:27029/admin?replicaSet=replset&w=majority&readPreference=secondaryPreferred&minPoolSize=1&maxPoolSize=4 PyMongo Version: 3.11.3 Traceback (most recent call last): File "/home/alex/.pyenv/versions/3.8.3/lib/python3.8/site-packages/pymongo/mongo_client.py", line 1752, in _process_periodic_tasks self._topology.update_pool(self.__all_credentials) File "/home/alex/.pyenv/versions/3.8.3/lib/python3.8/site-packages/pymongo/topology.py", line 441, in update_pool server._pool.remove_stale_sockets(generation, all_credentials) File "/home/alex/.pyenv/versions/3.8.3/lib/python3.8/site-packages/pymongo/pool.py", line 1152, in remove_stale_sockets sock_info = self.connect(all_credentials) File "/home/alex/.pyenv/versions/3.8.3/lib/python3.8/site-packages/pymongo/pool.py", line 1197, in connect sock_info.check_auth(all_credentials) File "/home/alex/.pyenv/versions/3.8.3/lib/python3.8/site-packages/pymongo/pool.py", line 793, in check_auth self.authenticate(credentials) File "/home/alex/.pyenv/versions/3.8.3/lib/python3.8/site-packages/pymongo/pool.py", line 810, in authenticate auth.authenticate(credentials, self) File "/home/alex/.pyenv/versions/3.8.3/lib/python3.8/site-packages/pymongo/auth.py", line 673, in authenticate auth_func(credentials, sock_info) File "/home/alex/.pyenv/versions/3.8.3/lib/python3.8/site-packages/pymongo/auth.py", line 591, in _authenticate_default return _authenticate_scram(credentials, sock_info, 'SCRAM-SHA-1') File "/home/alex/.pyenv/versions/3.8.3/lib/python3.8/site-packages/pymongo/auth.py", line 295, in _authenticate_scram res = sock_info.command(source, cmd) File "/home/alex/.pyenv/versions/3.8.3/lib/python3.8/site-packages/pymongo/pool.py", line 683, in command return command(self, dbname, spec, slave_ok, File "/home/alex/.pyenv/versions/3.8.3/lib/python3.8/site-packages/pymongo/network.py", line 159, in command helpers._check_command_response( File "/home/alex/.pyenv/versions/3.8.3/lib/python3.8/site-packages/pymongo/helpers.py", line 164, 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'} {'hosts': ['localhost:27027', 'localhost:27028'], 'arbiters': ['localhost:27029'], 'setName': 'replset', 'setVersion': 1, 'ismaster': True, 'secondary': False, 'primary': 'localhost:27027', 'me': 'localhost:27027', 'electionId': ObjectId('7fffffff0000000000000001'), 'lastWrite': {'opTime': {'ts': Timestamp(1617655013, 1), 't': 1}, 'lastWriteDate': datetime.datetime(2021, 4, 5, 20, 36, 53), 'majorityOpTime': {'ts': Timestamp(1617655013, 1), 't': 1}, 'majorityWriteDate': datetime.datetime(2021, 4, 5, 20, 36, 53)}, 'maxBsonObjectSize': 16777216, 'maxMessageSizeBytes': 48000000, 'maxWriteBatchSize': 100000, 'localTime': datetime.datetime(2021, 4, 5, 20, 36, 57, 375000), 'logicalSessionTimeoutMinutes': 30, 'connectionId': 107, 'minWireVersion': 0, 'maxWireVersion': 8, 'readOnly': False, 'ok': 1.0, '$clusterTime': {'clusterTime': Timestamp(1617655013, 1), 'signature': {'hash': b'\x82?\x84\x05\xc5\x86+\xac\x8c\x9e\xc4\x90\xcd)M\x86\x7fJ<\xc8', 'keyId': 6947772757115404291}}, 'operationTime': Timestamp(1617655013, 1)}
Issue occurs in PSA configuration, but not in PSS.
It appears the connection is established prior to the OperationFailure being raised.
test.py code is below:
import pymongo from pymongo import MongoClient from pymongo.errors import InvalidOperation try: _url = 'mongodb://user:password@localhost:27027,localhost:27028,localhost:27029/admin?replicaSet=replset&w=majority&readPreference=secondaryPreferred&minPoolSize=1&maxPoolSize=4' c = MongoClient(_url) print("Connection String: ", _url) print("PyMongo Version: ", pymongo.version) print(c.test.command("ismaster")) except InvalidOperation as err: print("Unexpected error:", err)
- is caused by
-
PYTHON-2360 Ensure ConnectionCreatedEvents are emitted before ConnectionReadyEvents + authenticate minPoolSize background connections
- Closed
- mentioned in
-
Page Loading...