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 almost 9 years ago. Updated about 5 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 almost 9 years ago

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

Updated by dkliban@redhat.com almost 9 years ago

  • Parent issue set to #1014
Actions #3

Updated by dkliban@redhat.com almost 9 years ago

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

Updated by rbarlow almost 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
Actions #5

Updated by rbarlow almost 9 years ago

  • Platform Release set to 2.6.3
Actions #6

Updated by jortel@redhat.com almost 9 years ago

  • Triaged changed from No to Yes
Actions #7

Updated by rbarlow almost 9 years ago

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

Updated by bmbouter almost 9 years ago

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

Updated by bmbouter almost 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)
Actions #10

Updated by bmbouter almost 9 years ago

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

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

Updated by bmbouter almost 9 years ago

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

Updated by bmbouter almost 9 years ago

  • Platform Release deleted (2.6.4)
Actions #14

Updated by dkliban@redhat.com over 8 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 8 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'.

re #1012 https://pulp.plan.io/issues/1012

Added by dkliban@redhat.com over 8 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'.

re #1012 https://pulp.plan.io/issues/1012

Actions #15

Updated by dkliban@redhat.com over 8 years ago

  • Status changed from ASSIGNED to MODIFIED
Actions #16

Updated by dkliban@redhat.com over 8 years ago

  • Status changed from MODIFIED to 5
Actions #17

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

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

Updated by bmbouter about 5 years ago

  • Tags Pulp 2 added

Also available in: Atom PDF