← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~stub/launchpad/replication into lp:launchpad

 

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.


Follow ups