Code review comment for lp:~barry/launchpad/435604-mailman

Revision history for this message
Barry Warsaw (barry) wrote :

 reviewer rockstar

= Summary =

Bug 435604 describes a critical problem we discovered while rolling out LP 3.0
on forster, the Mailman (and other) server. The problem is that with the move
to buildout for a lot of our packages, the sys.path that the Mailman binary
uses was not correct. The binary uses the system Python, not bin/py so none
of the buildout eggs were visible to it.

== Proposed fix ==

Extend the path hacking done in Mailman's mm_cfg.py to pick up the necessary
buildout eggs. Do this by importing _pythonpath.

== Pre-implementation notes ==

Discussion during cowboy rollout with gary, spm, and stub.

== Implementation details ==

Along the way, I updated all the MailmanLayer tests. These should all pass
now, with the usual caveat that these tests are flaky. That's why we don't
run them as part of our normal test suite.

== Tests ==

To test the specific critical fix in this branch, run:

% bin/test -vv --layer=MailmanLayer -t basic-integration

To see that all the tests have been updated for LP 3.0, run:

% bin/test -vv --layer=MailmanLayer

You may get spurious failures from the above. Your choices are to run each
test in lib/lp/services/mailman/doc separately, or/and do 'make clean && make'
between each run.

== Demo and Q/A ==

No demo or Q/A. Once we cherry pick this onto forster, if the mailing lists
work, we're gold.

= Launchpad lint =

Checking for conflicts. and issues in doctests and templates.
Running jslint, xmllint, pyflakes, and pylint.
Using normal rules.

Linting changed files:
  lib/lp/services/mailman/doc/logging.txt
  lib/lp/services/mailman/doc/subscriptions.txt
  lib/canonical/launchpad/mailman/monkeypatches/__init__.py
  lib/lp/services/mailman/testing/logwatcher.py
  lib/lp/services/mailman/doc/postings.txt
  lib/lp/services/mailman/doc/bounces.txt
  lib/lp/services/mailman/doc/basic-integration.txt
  lib/lp/services/mailman/doc/decorations.txt
  lib/lp/services/mailman/doc/messages.txt
  lib/lp/services/mailman/doc/recovery.txt
  lib/lp/services/mailman/doc/reactivate-lists.txt
  lib/lp/services/mailman/doc/create-lists.txt
  lib/canonical/launchpad/mailman/monkeypatches/mm_cfg.py.in
  lib/lp/services/mailman/doc/contact-address.txt
  lib/lp/services/mailman/doc/staging.txt
  lib/lp/services/mailman/testing/helpers.py
  lib/lp/services/mailman/doc/modify-lists.txt

== Pyflakes Doctest notices ==

lib/lp/services/mailman/doc/logging.txt
    70: undefined name 'error_watcher'
    71: undefined name 'error_watcher'
    74: undefined name 'error_watcher'
    75: undefined name 'error_watcher'

lib/lp/services/mailman/doc/postings.txt
    14: undefined name 'smtpd'
    35: undefined name 'vette_watcher'
    36: undefined name 'smtpd'
    73: undefined name 'vette_watcher'
    74: undefined name 'smtpd'
    88: undefined name 'smtpd'
    89: undefined name 'smtpd'
    99: undefined name 'vette_watcher'
    103: undefined name 'smtpd_watcher'
    104: undefined name 'smtpd'
    156: undefined name 'Browser'
    168: undefined name 'smtpd_watcher'
    169: undefined name 'smtpd'
    212: undefined name 'vette_watcher'
    213: undefined name 'smtpd'
    244: undefined name 'smtpd'
    259: undefined name 'vette_watcher'
    260: undefined name 'smtpd'
    306: undefined name 'smtpd_watcher'
    307: undefined name 'smtpd'
    378: undefined name 'smtpd_watcher'
    382: undefined name 'smtpd'
    405: undefined name 'mhonarc_watcher'
    434: undefined name 'smtpd_watcher'
    435: undefined name 'smtpd_watcher'
    436: undefined name 'smtpd'
    486: undefined name 'mhonarc_watcher'
    501: undefined name 'vette_watcher'
    502: undefined name 'smtpd'
    522: undefined name 'smtpd_watcher'
    523: undefined name 'smtpd_watcher'
    524: undefined name 'smtpd'
    595: undefined name 'vette_watcher'
    596: undefined name 'smtpd'
    639: undefined name 'smtpd_watcher'
    640: undefined name 'smtpd_watcher'
    641: undefined name 'smtpd'
    670: undefined name 'smtpd'
    686: undefined name 'vette_watcher'
    712: undefined name 'smtpd_watcher'
    713: undefined name 'smtpd_watcher'
    740: undefined name 'smtpd_watcher'
    741: undefined name 'smtpd_watcher'
    766: undefined name 'vette_watcher'
    781: undefined name 'smtpd_watcher'
    782: undefined name 'smtpd_watcher'
    786: undefined name 'smtpd'
    795: undefined name 'smtpd_watcher'
    796: undefined name 'smtpd_watcher'
    797: undefined name 'smtpd'
    832: undefined name 'vette_watcher'
    833: undefined name 'smtpd'
    857: undefined name 'vette_watcher'
    871: undefined name 'smtpd_watcher'
    872: undefined name 'smtpd_watcher'
    899: undefined name 'vette_watcher'

lib/lp/services/mailman/doc/bounces.txt
    43: undefined name 'bounce_watcher'
    44: undefined name 'bounce_watcher'

lib/lp/services/mailman/doc/basic-integration.txt
    47: undefined name 'smtpd'
    82: undefined name 'smtpd_watcher'
    83: undefined name 'smtpd'

lib/lp/services/mailman/doc/decorations.txt
    18: undefined name 'smtpd'
    30: undefined name 'smtpd_watcher'
    31: undefined name 'smtpd_watcher'
    49: undefined name 'smtpd'
    117: undefined name 'Browser'

lib/lp/services/mailman/doc/recovery.txt
    16: undefined name 'Browser'

lib/lp/services/mailman/doc/reactivate-lists.txt
    17: undefined name 'Browser'

lib/lp/services/mailman/doc/create-lists.txt
    11: undefined name 'Browser'

lib/lp/services/mailman/doc/contact-address.txt
    15: undefined name 'smtpd'
    25: undefined name 'Browser'
    59: undefined name 'smtpd_watcher'
    60: undefined name 'smtpd_watcher'
    61: undefined name 'smtpd_watcher'
    63: undefined name 'smtpd'
    165: undefined name 'smtpd_watcher'
    170: undefined name 'smtpd_watcher'
    171: undefined name 'smtpd_watcher'
    172: undefined name 'smtpd'
    251: undefined name 'smtpd_watcher'
    252: undefined name 'smtpd_watcher'
    260: undefined name 'smtpd'
    327: undefined name 'smtpd_watcher'
    328: undefined name 'smtpd_watcher'
    329: undefined name 'smtpd'

lib/lp/services/mailman/doc/staging.txt
    31: undefined name 'Browser'
    52: undefined name 'smtpd'
    65: undefined name 'smtpd_watcher'
    78: undefined name 'smtpd_watcher'
    91: undefined name 'smtpd_watcher'
    104: undefined name 'smtpd_watcher'
    107: undefined name 'smtpd'
    144: undefined name 'qrunner_watcher'
    194: 'from subprocess import *' used; unable to detect undefined names

lib/lp/services/mailman/doc/modify-lists.txt
    11: undefined name 'Browser'

== Pylint notices ==

lib/canonical/launchpad/mailman/monkeypatches/__init__.py
    9: [F0401] Unable to import 'lazr.config' (No module named config)

« Back to merge proposal