Issue #1012
closedTask #1014: Short Term Improvements for Pulp's use of MongoDB
If the first database seed listed in server.conf is not the current Primary replica, Pulp will not be able to write to the database
Description
Pulp only tells pymongo about the first of the database seeds, even if there are multiple of the specified in the seeds field of the [database] section in server.conf. This means that if the first seed listed is not the current primary, Pulp will not be able to issue any writes.
The fix for this is to try the first seed, and if it is not the primary or cannot connect for some network reason to iterate through the remaining seeds until a valid connection is formed. It should log at info level for each of these connections so Pulp reports as it progresses. If a valid connection cannot be formed it should log at error level as it does today.
QE instructions¶
1. create a 3 node mongoDB setup that uses a basic replica_set configuration
2. determine which mongoDB hostname is the secondary
3. configure server.conf [database] section with seeds="" to the comma separated list of these 3 mongoDB hosts. It's very important that the "primary" mongoDB server be the last one in the seeds list
4. start Pulp and verify that it logs that a connection is created to the first seed, the second seed, and finally the primary.
5. ensure pulp can be fully used while connected to the third seed (the primary)
6. stop all pulp services.
7. edit server.conf and remove the primary from the seeds list so that only the two secondary servers are present
8) start Pulp and verify that it cannot form a valid connection to a mongoDB server
Related issues
Updated by rbarlow over 9 years ago
- Status changed from NEW to ASSIGNED
- Assignee set to rbarlow
Updated by dkliban@redhat.com over 9 years ago
- Blocks Issue #974: GET of a task sometimes 404s on first request added
Updated by rbarlow over 9 years ago
- Blocks Story #1: As a user, I can have Pulp attempt use auto_retry application wide using the 'unsafe_autoretry' parameter added
Updated by rbarlow over 9 years ago
- Status changed from ASSIGNED to NEW
- Assignee deleted (
rbarlow)
Updated by bmbouter over 9 years ago
- Blocks deleted (Issue #974: GET of a task sometimes 404s on first request)
Updated by bmbouter over 9 years ago
- Blocks deleted (Story #1: As a user, I can have Pulp attempt use auto_retry application wide using the 'unsafe_autoretry' parameter)
Updated by bmbouter over 9 years ago
- Description updated (diff)
- Platform Release changed from 2.6.3 to 2.6.4
Updated by bmbouter over 9 years ago
- Subject changed from If the first database seed listed in server.conf is not the current Primary replica, Pulp will not be able to read or write to the database to If the first database seed listed in server.conf is not the current Primary replica, Pulp will not be able to write to the database
Updated by bmbouter over 9 years ago
- Blocks Issue #1139: Fix Pulp's use of replica sets replica sets added
Updated by dkliban@redhat.com over 9 years ago
- Status changed from NEW to ASSIGNED
- Assignee set to dkliban@redhat.com
- Platform Release set to 2.7.0
Added by dkliban@redhat.com over 9 years ago
Added by dkliban@redhat.com over 9 years ago
Revision 75397ecb | View on GitHub
Properly handles ['database']['seeds'] config
This patch enables pulp to iterate over a list of seeds until a connection is made. When more than one seed is present, an exception is raised if no 'replica_set' config is specified. An exception is also raised if an empty string is passed in as value for 'seeds'.
Updated by dkliban@redhat.com over 9 years ago
- Status changed from ASSIGNED to MODIFIED
Updated by dkliban@redhat.com about 9 years ago
- Status changed from MODIFIED to 5
Updated by pthomas@redhat.com about 9 years ago
- Status changed from 5 to 6
verified
[root@sparks ~]# rpm -qa pulp-server
pulp-server-2.7.0-0.8.rc.el7.noarch
[root@sparks ~]#
Updated by amacdona@redhat.com about 9 years ago
- Status changed from 6 to CLOSED - CURRENTRELEASE
Properly handles ['database']['seeds'] config
This patch enables pulp to iterate over a list of seeds until a connection is made. When more than one seed is present, an exception is raised if no 'replica_set' config is specified. An exception is also raised if an empty string is passed in as value for 'seeds'.
re #1012 https://pulp.plan.io/issues/1012