Project

Profile

Help

Issue #1012

closed

Task #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

Added by rbarlow over 7 years ago. Updated over 3 years ago.

Status:
CLOSED - CURRENTRELEASE
Priority:
Normal
Category:
-
Sprint/Milestone:
-
Start date:
Due date:
Estimated time:
Severity:
2. Medium
Version:
Platform Release:
2.7.0
OS:
Triaged:
Yes
Groomed:
No
Sprint Candidate:
No
Tags:
Pulp 2
Sprint:
Quarter:

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

Blocks Pulp - Issue #1139: Fix Pulp's use of replica sets replica setsCLOSED - CURRENTRELEASEActions
Actions #1

Updated by rbarlow over 7 years ago

  • Status changed from NEW to ASSIGNED
  • Assignee set to rbarlow
Actions #2

Updated by dkliban@redhat.com over 7 years ago

  • Parent task set to #1014
Actions #3

Updated by dkliban@redhat.com over 7 years ago

  • Blocks Issue #974: GET of a task sometimes 404s on first request added
Actions #4

Updated by rbarlow over 7 years ago

  • Blocks Story #1: As a user, I can have Pulp attempt use auto_retry application wide using the 'unsafe_autoretry' parameter added
Actions #5

Updated by rbarlow over 7 years ago

  • Platform Release set to 2.6.3
Actions #6

Updated by jortel@redhat.com over 7 years ago

  • Triaged changed from No to Yes
Actions #7

Updated by rbarlow over 7 years ago

  • Status changed from ASSIGNED to NEW
  • Assignee deleted (rbarlow)
Actions #8

Updated by bmbouter over 7 years ago

  • Blocks deleted (Issue #974: GET of a task sometimes 404s on first request)
Actions #9

Updated by bmbouter over 7 years ago

  • Blocks deleted (Story #1: As a user, I can have Pulp attempt use auto_retry application wide using the 'unsafe_autoretry' parameter)
Actions #10

Updated by bmbouter over 7 years ago

  • Description updated (diff)
  • Platform Release changed from 2.6.3 to 2.6.4
Actions #11

Updated by bmbouter over 7 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
Actions #12

Updated by bmbouter over 7 years ago

  • Blocks Issue #1139: Fix Pulp's use of replica sets replica sets added
Actions #13

Updated by bmbouter over 7 years ago

  • Platform Release deleted (2.6.4)
Actions #14

Updated by dkliban@redhat.com over 7 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 about 7 years ago

Revision 75397ecb

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

Added by dkliban@redhat.com about 7 years ago

Revision 75397ecb

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

Actions #15

Updated by dkliban@redhat.com about 7 years ago

  • Status changed from ASSIGNED to MODIFIED
Actions #16

Updated by dkliban@redhat.com about 7 years ago

  • Status changed from MODIFIED to 5
Actions #17

Updated by pthomas@redhat.com about 7 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 ~]# 
Actions #18

Updated by amacdona@redhat.com about 7 years ago

  • Status changed from 6 to CLOSED - CURRENTRELEASE
Actions #20

Updated by bmbouter over 3 years ago

  • Tags Pulp 2 added

Also available in: Atom PDF