-
Notifications
You must be signed in to change notification settings - Fork 3.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove Old Pymongo pin #30569
Remove Old Pymongo pin #30569
Conversation
a303fdb
to
ca55b45
Compare
@@ -36,9 +36,6 @@ django-oauth-toolkit<=1.3.2 | |||
# Will be updated once we update python-dateutil package | |||
matplotlib<3.4.0 | |||
|
|||
# tests failing for pymongo==3.11 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add new pin here to avoid any major release.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand the devstack bits, but this PR looks reasonable as long as some testing has been done
Just found a reported bug which should be fixed by this upgrade: https://discuss.openedx.org/t/mongodb-intermittent-connection-timeout-errors-in-pymongo-topology-py/7278 . |
@jmbowman The PR is ready and has been tested as well on sandboxes and devstack. It couldn't be merged today because of the flaky tests. They passed just now on 6th run though |
EdX Release Notice: This PR has been deployed to the staging environment in preparation for a release to production. |
EdX Release Notice: This PR has been deployed to the production environment. |
Maple is no longer supported, so I don't think any proactive effort is needed for that. |
I was recently creating a new tutor dev instance with
I'm not sure if it's being caused by this PR or not, because I'm not really familiar with these settings. It just seemed suspicious. Looking into it more now. |
Yeah, adding |
The pymongo dependency for edx-platform was updated (3.10.1 to 3.12.3) in openedx/edx-platform#30569 This caused the following error when running the edx-platform database migration split_modulestore_django.0002_data_migration as part of `tutor dev quickstart`: pymongo.errors.ServerSelectionTimeoutError: client is configured to connect to a replica set named '' but this node belongs to a set named 'None', Timeout: 30s, Topology Description: <TopologyDescription id: 62bdbaf182687350acf1aeec, topology_type: Single, servers: [<ServerDescription ('mongodb', 27017) server_type: Unknown, rtt: None, error=ConfigurationError("client is configured to connect to a replica set named '' but this node belongs to a set named 'None'")>]> This commit explicitly sets replicaSet to None to indicate that it's a standalone MongoDB instance.
PR made: overhangio/tutor#699 |
The pymongo dependency for edx-platform was updated (3.10.1 to 3.12.3) in openedx/edx-platform#30569 This caused the following error when running the edx-platform database migration split_modulestore_django.0002_data_migration as part of `tutor dev quickstart`: pymongo.errors.ServerSelectionTimeoutError: client is configured to connect to a replica set named '' but this node belongs to a set named 'None', Timeout: 30s, Topology Description: <TopologyDescription id: 62bdbaf182687350acf1aeec, topology_type: Single, servers: [<ServerDescription ('mongodb', 27017) server_type: Unknown, rtt: None, error=ConfigurationError("client is configured to connect to a replica set named '' but this node belongs to a set named 'None'")>]> This commit explicitly sets replicaSet to None to indicate that it's a standalone MongoDB instance. I also had to remove the CONTENTSTORE entry from auth.yml because edx-platform's devstack.py assumes it has a non-null value (set in common.py), and devstack.py executes before tutor's development.py can set this replicaSet value.
The pymongo dependency for edx-platform was updated (3.10.1 to 3.12.3) in openedx/edx-platform#30569 This caused the following error when running the edx-platform database migration split_modulestore_django.0002_data_migration as part of `tutor dev quickstart`: pymongo.errors.ServerSelectionTimeoutError: client is configured to connect to a replica set named '' but this node belongs to a set named 'None', Timeout: 30s, Topology Description: <TopologyDescription id: 62bdbaf182687350acf1aeec, topology_type: Single, servers: [<ServerDescription ('mongodb', 27017) server_type: Unknown, rtt: None, error=ConfigurationError("client is configured to connect to a replica set named '' but this node belongs to a set named 'None'")>]> This commit explicitly sets replicaSet to None to indicate that it's a standalone MongoDB instance. I also had to remove the CONTENTSTORE entry from auth.yml because edx-platform's devstack.py assumes it has a non-null value (set in common.py), and devstack.py executes before tutor's development.py can set this replicaSet value.
The pymongo dependency for edx-platform was updated (3.10.1 to 3.12.3) in openedx/edx-platform#30569 This caused the following error when running the edx-platform database migration split_modulestore_django.0002_data_migration as part of `tutor dev quickstart`: pymongo.errors.ServerSelectionTimeoutError: client is configured to connect to a replica set named '' but this node belongs to a set named 'None', Timeout: 30s, Topology Description: <TopologyDescription id: 62bdbaf182687350acf1aeec, topology_type: Single, servers: [<ServerDescription ('mongodb', 27017) server_type: Unknown, rtt: None, error=ConfigurationError("client is configured to connect to a replica set named '' but this node belongs to a set named 'None'")>]> This commit explicitly sets replicaSet to None to indicate that it's a standalone MongoDB instance. I also had to remove the CONTENTSTORE entry from auth.yml because edx-platform's devstack.py assumes it has a non-null value (set in common.py), and devstack.py executes before tutor's development.py can set this replicaSet value.
Yeah this PR would cause issue with |
The pymongo dependency for edx-platform was updated (3.10.1 to 3.12.3) in openedx/edx-platform#30569 This caused the following error when running the edx-platform database migration split_modulestore_django.0002_data_migration as part of `tutor dev quickstart`: pymongo.errors.ServerSelectionTimeoutError: client is configured to connect to a replica set named '' but this node belongs to a set named 'None', Timeout: 30s, Topology Description: <TopologyDescription id: 62bdbaf182687350acf1aeec, topology_type: Single, servers: [<ServerDescription ('mongodb', 27017) server_type: Unknown, rtt: None, error=ConfigurationError("client is configured to connect to a replica set named '' but this node belongs to a set named 'None'")>]> This commit explicitly sets replicaSet to None to indicate that it's a standalone MongoDB instance. I also had to remove the CONTENTSTORE entry from auth.yml because edx-platform's devstack.py assumes it has a non-null value (set in common.py), and devstack.py executes before tutor's development.py can set this replicaSet value.
The pymongo dependency for edx-platform was updated (3.10.1 to 3.12.3) in openedx/edx-platform#30569 This caused the following error when running the edx-platform database migration split_modulestore_django.0002_data_migration as part of `tutor dev quickstart`: pymongo.errors.ServerSelectionTimeoutError: client is configured to connect to a replica set named '' but this node belongs to a set named 'None', Timeout: 30s, Topology Description: <TopologyDescription id: 62bdbaf182687350acf1aeec, topology_type: Single, servers: [<ServerDescription ('mongodb', 27017) server_type: Unknown, rtt: None, error=ConfigurationError("client is configured to connect to a replica set named '' but this node belongs to a set named 'None'")>]> This commit explicitly sets replicaSet to None to indicate that it's a standalone MongoDB instance. I also had to remove the CONTENTSTORE entry from auth.yml because edx-platform's devstack.py assumes it has a non-null value (set in common.py), and devstack.py executes before tutor's development.py can set this replicaSet value.
The pymongo dependency for edx-platform was updated (3.10.1 to 3.12.3) in openedx/edx-platform#30569 This caused the following error when running the edx-platform database migration split_modulestore_django.0002_data_migration as part of `tutor dev quickstart`: pymongo.errors.ServerSelectionTimeoutError: client is configured to connect to a replica set named '' but this node belongs to a set named 'None', Timeout: 30s, Topology Description: <TopologyDescription id: 62bdbaf182687350acf1aeec, topology_type: Single, servers: [<ServerDescription ('mongodb', 27017) server_type: Unknown, rtt: None, error=ConfigurationError("client is configured to connect to a replica set named '' but this node belongs to a set named 'None'")>]> This commit explicitly sets replicaSet to None to indicate that it's a standalone MongoDB instance. I also had to remove the CONTENTSTORE entry from auth.yml because edx-platform's devstack.py assumes it has a non-null value (set in common.py), and devstack.py executes before tutor's development.py can set this replicaSet value.
The pymongo dependency for edx-platform was updated (3.10.1 to 3.12.3) in openedx/edx-platform#30569 This caused the following error when running the edx-platform database migration split_modulestore_django.0002_data_migration as part of `tutor dev quickstart`: pymongo.errors.ServerSelectionTimeoutError: client is configured to connect to a replica set named '' but this node belongs to a set named 'None', Timeout: 30s, Topology Description: <TopologyDescription id: 62bdbaf182687350acf1aeec, topology_type: Single, servers: [<ServerDescription ('mongodb', 27017) server_type: Unknown, rtt: None, error=ConfigurationError("client is configured to connect to a replica set named '' but this node belongs to a set named 'None'")>]> This commit explicitly sets replicaSet to None to indicate that it's a standalone MongoDB instance. I also had to remove the CONTENTSTORE entry from auth.yml because edx-platform's devstack.py assumes it has a non-null value (set in common.py), and devstack.py executes before tutor's development.py can set this replicaSet value.
- [Bugfix] Fix MongoDB replica set connection error resulting from edx-platform's pymongo (3.10.1 -> 3.12.3) upgrade ([edx-platform#30569](openedx/edx-platform#30569)). (by @ormsbee) - [Feature] Upgrade all applications to open-release/nutmeg.2.
This PR unpins
Pymongo
version from constraints file.Pymongo >=3.11 would raise configuration error if replica set is empty string. Either we should pass replica set name which is already configured or pass it as None so that it serves as a standalone server.
For sandboxes,
rs0
replica set is configured example but for devstack we don't have any so we are specifying it as None for devstack here in this PR.For sandboxes a fix PR has been made which uses the already configured replica set and tested with this sandbox
For edx prod and stage we already have replica sets defined as can be seen here and being used so it wouldn't affect them.