Stuart Bishop has proposed merging lp:~stub/launchpad/replication into lp:launchpad.
Requested reviews: Launchpad code reviewers (launchpad-reviewers) Related bugs: Bug #307407 in Launchpad itself: "slave database should never be used when lag is too great" https://bugs.launchpad.net/launchpad/+bug/307407 Bug #345835 in Launchpad itself: "Database load balancing should use slave lag, not cluster lag" https://bugs.launchpad.net/launchpad/+bug/345835 Bug #447453 in Launchpad itself: "Changes made through the API (via javascript) aren't blacklisting the Slave DBs" https://bugs.launchpad.net/launchpad/+bug/447453 Bug #461800 in Launchpad itself: "new-slave.py no longer works" https://bugs.launchpad.net/launchpad/+bug/461800 Bug #504696 in Launchpad itself: "Replication lag checks can block" https://bugs.launchpad.net/launchpad/+bug/504696 Bug #504751 in Launchpad itself: "Standalone slave not subscribed to the authdb replication set" https://bugs.launchpad.net/launchpad/+bug/504751 Bug #504807 in Launchpad itself: "authdb replication set sequence values not being restored on staging" https://bugs.launchpad.net/launchpad/+bug/504807 Bug #514267 in Launchpad itself: "InternalError on clusters under busy load" https://bugs.launchpad.net/launchpad/+bug/514267 For more details, see: https://code.launchpad.net/~stub/launchpad/replication/+merge/79207 = Summary = The list of tables in a replication set is only valid on a node that replicates that replication set. == Proposed fix == Query the origin for the replication set, rather than the cluster 'master' which is actually a fiction. == Pre-implementation notes == == Implementation details == == Tests == == Demo and Q/A == = Launchpad lint = Checking for conflicts and issues in changed files. Linting changed files: lib/lp/soyuz/scripts/initialize_distroseries.py lib/lp/app/browser/launchpadform.py lib/lp/registry/stories/person/xx-person-bugs.txt lib/lp/bugs/interfaces/apportjob.py lib/lp/translations/doc/vpotexport.txt lib/lp/registry/browser/tests/test_team_view.py lib/lp/bugs/doc/security-teams.txt lib/lp/soyuz/scripts/tests/test_initialize_distroseries.py lib/lp/translations/browser/configure.zcml lib/lp/app/javascript/tests/test_lp_client.js scripts/ftpmaster-tools/archive-integrity-check.py database/sampledata/current.sql database/sampledata/current-dev.sql lib/lp/translations/interfaces/translationmessage.py lib/lp/registry/model/projectgroup.py lib/lp/registry/doc/distribution.txt lib/lp/soyuz/stories/ppa/xx-ppa-workflow.txt lib/lp/archivepublisher/publishing.py lib/lp/registry/model/productseries.py lib/lp/archivepublisher/tests/test_generate_contents_files.py lib/lp/translations/scripts/tests/test_cache_suggestive_templates.py lib/lp/code/stories/branches/xx-branch-deletion.txt lib/lp/translations/interfaces/potmsgset.py lib/lp/code/browser/branch.py lib/lp/code/model/branchcollection.py lib/lp/code/mail/tests/test_branch.py lib/lp/archivepublisher/tests/test_publisher.py lib/lp/bugs/doc/initial-bug-contacts.txt lib/lp/registry/browser/team.py lib/lp/translations/tests/test_pofile.py lib/lp/code/model/tests/test_branchjob.py lib/lp/registry/tests/test_initderiveddistroseries.py database/schema/upgrade.py lib/lp/code/browser/tests/test_branch.py lib/lp/bugs/doc/bugsubscription.txt lib/devscripts/ec2test/account.py versions.cfg lib/lp/code/mail/branchmergeproposal.py lib/lp/bugs/templates/bugcomment-macros.pt utilities/pgmassacre.py lib/lp/registry/configure.zcml lib/lp/code/browser/codeimport.py lib/lp/code/enums.py lib/lp/services/longpoll/configure.zcml lib/lp/translations/browser/distribution.py lib/lp/bugs/tests/test_bugtaskset.py lib/lp/registry/browser/tests/productseries-setbranch-view.txt lib/lp/app/javascript/client.js database/replication/generate_migration.py database/replication/helpers.py lib/lp/bugs/javascript/tests/test_async_comment_loading.js lib/lp/blueprints/configure.zcml lib/lp/code/mail/tests/test_branchmergeproposal.py lib/lp/scripts/garbo.py lib/lp/code/mail/branch.py lib/lp/bugs/stories/webservice/xx-bug.txt lib/canonical/launchpad/webapp/batching.py lib/lp/app/templates/base-layout-macros.pt lib/lp/app/interfaces/launchpad.py lib/lp/blueprints/tests/test_webservice.py lib/lp/soyuz/scripts/ftpmaster.py lib/lp/translations/browser/tests/test_productserieslanguage_views.py lib/lp/translations/model/pofile.py lib/lp/registry/stories/distribution/xx-distribution-launchpad-usage.txt lib/lp/translations/browser/tests/test_baseexportview.py lib/lp/scripts/tests/test_garbo.py lib/lp/bugs/interfaces/tests/__init__.py lib/lp/services/longpoll/adapters/tests/test_storm.py lib/lp/code/templates/codeimport-new.pt lib/lp/bugs/javascript/bugtask_index.js lib/lp/answers/model/questionjob.py lib/lp/translations/doc/pofile.txt lib/lp/translations/browser/tests/test_distroserieslanguage_views.py lib/lp/code/stories/codeimport/xx-create-codeimport.txt lib/lp/translations/tests/test_shared_potemplate.py lib/lp/translations/browser/tests/test_translationimportqueueentry.py lib/lp/app/widgets/doc/launchpad-radio-widget.txt lib/lp/registry/browser/productseries.py lib/lp/translations/browser/tests/test_translationlinksaggregator.py lib/lp/registry/interfaces/projectgroup.py lib/lp/answers/interfaces/questionjob.py lib/lp/services/features/flags.py lib/lp/code/templates/branch-import-details.pt lib/lp/bugs/interfaces/bugtarget.py lib/lp/bugs/doc/bug-heat.txt lib/lp/translations/browser/tests/translationmessage-views.txt lib/lp/services/mail/sendmail.py lib/lp/registry/interfaces/person.py lib/lp/translations/scripts/translations_to_branch.py lib/lp/code/model/tests/test_branchcollection.py lib/lp/registry/model/product.py lib/lp/services/longpoll/adapters/storm.py lib/lp/code/stories/branches/xx-creating-branches.txt scripts/ftpmaster-tools/_syncorigins.py lib/lp/bugs/interfaces/tests/test_bugtask.py lib/lp/code/stories/branches/xx-junk-branches.txt lib/lp/registry/tests/test_service_usage.py lib/lp/registry/browser/tests/distribution-views.txt lib/lp/bugs/tests/test_apportjob.py lib/canonical/launchpad/database/launchpadstatistic.py lib/lp/translations/model/translationsperson.py lib/lp/translations/model/potmsgset.py lib/lp/registry/browser/tests/test_person_view.py lib/lp/blueprints/model/specificationbug.py lib/canonical/launchpad/rest/__init__.py lib/lp/registry/browser/person.py lib/lp/registry/model/person.py lib/lp/code/model/tests/test_revision.py lib/lp/translations/interfaces/hastranslationtemplates.py lib/lp/translations/doc/potmsgset.txt lib/lp/bugs/model/tests/test_bugtask_status.py lib/lp/registry/browser/distribution.py lib/lp/code/templates/codeimport-list.pt lib/lp/bugs/model/bugtask.py lib/lp/translations/model/potemplate.py lib/canonical/launchpad/interfaces/_schema_circular_imports.py lib/lp/registry/model/distribution.py lib/lp/registry/stories/webservice/xx-derivedistroseries.txt lib/lp/translations/browser/tests/test_product_view.py lib/lp/bugs/interfaces/bugtask.py lib/lp/translations/model/translationmessage.py lib/lp/translations/stories/standalone/xx-series-templates.txt lib/lp/bugs/templates/bugtask-index.pt lib/lp/answers/tests/test_questionjob.py lib/lp/code/templates/branch-form-macros.pt lib/lp/translations/templates/pofile-filter.pt lib/lp/translations/browser/potemplate.py lib/lp/blueprints/interfaces/specification.py lib/lp/blueprints/interfaces/specificationbug.py lib/lp/registry/browser/tests/test_productseries_views.py lib/lp/registry/templates/productseries-codesummary.pt == Schema == database/sampledata/current.sql database/sampledata/lintdata.sql differs from database/sampledata/current.sql. Patches to the schema, or manual edits to database/sampledata/current.sql do not match the dump of the launchpad_ftest_template database. If database/sampledata/lintdata.sql is correct, copy it to database/sampledata/current.sql. Otherwise update database/sampledata/current.sql and run: make schema make newsampledata cd database/sampledata cp newsampledata.sql database/sampledata/current.sql Run make schema again to update the test/dev database. database/sampledata/current.sql database/sampledata/lintdata-dev.sql differs from database/sampledata/current-dev.sql. Patches to the schema, or manual edits to database/sampledata/current-dev.sql do not match the dump of the launchpad_dev_template database. If database/sampledata/lintdata-dev.sql is correct, copy it to database/sampledata/current-dev.sql. Otherwise update database/sampledata/current-dev.sql and run: make schema make newsampledata cd database/sampledata cp newsampledata-dev.sql database/sampledata/current-dev.sql Run make schema again to update the test/dev database. ./lib/lp/soyuz/stories/ppa/xx-ppa-workflow.txt 278: want exceeds 78 characters. ./lib/lp/archivepublisher/tests/test_publisher.py 880: Line exceeds 78 characters. 928: Line exceeds 78 characters. ./database/schema/upgrade.py 13: '_pythonpath' imported but unused ./versions.cfg 66: Line exceeds 78 characters. ./lib/lp/registry/browser/tests/productseries-setbranch-view.txt 147: want exceeds 78 characters. ./database/replication/generate_migration.py 190: local variable 'origin_node' is assigned to but never used 13: '_pythonpath' imported but unused 19: 'config' imported but unused 65: E261 at least two spaces before inline comment 121: E231 missing whitespace after ',' 161: E225 missing whitespace around operator 178: E225 missing whitespace around operator ./lib/lp/bugs/stories/webservice/xx-bug.txt 53: want exceeds 78 characters. 170: source exceeds 78 characters. 176: source exceeds 78 characters. 265: source exceeds 78 characters. 349: want exceeds 78 characters. 839: source exceeds 78 characters. 1152: want exceeds 78 characters. 1196: want exceeds 78 characters. 1319: want exceeds 78 characters. 1370: want exceeds 78 characters. 1625: source exceeds 78 characters. 1998: source exceeds 78 characters. 2108: want exceeds 78 characters. ./lib/lp/app/widgets/doc/launchpad-radio-widget.txt 1: narrative uses a moin header. 38: narrative uses a moin header. ./lib/lp/registry/browser/productseries.py 103: 'BugTaskStatus' imported but unused ./lib/lp/translations/scripts/translations_to_branch.py 39: 'lp' imported but unused -- https://code.launchpad.net/~stub/launchpad/replication/+merge/79207 Your team Launchpad code reviewers is requested to review the proposed merge of lp:~stub/launchpad/replication into lp:launchpad. _______________________________________________ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : [email protected] Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp

