[Mailman-Developers] Advice needed on Production MM3 install

Mark Sapiro mark at msapiro.net
Wed Mar 16 01:35:55 EDT 2016


Some of you may have seen my posts on mailman-cabal, but I am installing
a production instance of Mailman 3 on lists.mailman3.org in order to
support initially a Mailman 3 users list.

The first question is should it be mailman-users at mailman3.org or
mailman-users at mailman3.org. The former is more of a recognition that
Mailman 3 is now Mailman while the latter offers less possibility for
confusion with mailman-users at python.org. Then, I suppose it could be
just users at mailman3.org, but we might want to support other 'users'
lists in the future.

Opinions welcome.

The next thing is I'm having much more difficulty than I anticipated,
probably in large part because I haven't followed Postorius and
HyperKitty development that closely. I have lots of things I think I
should be able to do in Postorius and I can't and I don't know if the
issue is Postorius or my installation.

I initially installed mailman-bundler from gitlab. configured it for
production, ran buildout and set it up. My initial issue is I couldn't
log in to Postorius at all. I had set a Django superuser, but I see
nowhere to authenticate as that. The only logins offered were Google,
Yahoo and Persona, and they all threw various but similar exceptions.

With Abhilash's help, I got past some of that and I can now log in with
Persona, but there are still issues with the others[1].

In the process of working through that, I cloned the head of the mailman
branch from github and upgraded to that, but Postorius and HyperKitty
are still what bundler installed.

I got PostgreSQL, Postfix, openDKIM, nginx and gunicorn all configured
and that all seems good.

In the process of working through some other issues, I enabled SSL in
Django with certificates I got from Let's Encrypt. That has led to a
current issue which is if a list's archiving is on, I can't post. The
post gets shunted in archiving because somewhere in the process the
runner tries to make an SSL connection to 127.0.0.1 and the certificate
is only valid for lists.mailman3.org, mirror.list.org and
mirror.mailman3.org[2]. I'm sure there must be a way to change the
connect to use lists.mailman3.org, but I don't know it.

Then perhaps my biggest issue is I can't do any admin tasks in Postorius
other than on my own lists. I can't create lists or domains or edit
domains or anything like that. I even set my user record is_server_owner
flag True, but that didn't help. I managed to do some of what I needed
via the mailman create and mailman shell commands, but I'm sure I should
be able to do that in Postorius, but I can't log in as superuser and it
doesn't seem to care that I'm a server admin. Maybe I need to upgrade
Postorius and HyperKitty.

Which is the next advice I need. I'm thinking of trying to start clean
and I have questions.

Is it better to use bundler and then upgrade what it installed or just
install the separate pieces and try to knit them together or should I
maybe just upgrade Postorius and HyperKitty in place as I did the core.
If I start clean will running the bin/mailman-post-update script
initialize all the data or will there be residue in the PostgreSQL
database that may cause problems.

Sorry for the long post, but I really need advice. I won't be getting
back to this until Wed Evening US Pacific time, so there's time to
respond <wink>.

[1][2] Tracebacks in attached file.

-- 
Mark Sapiro <mark at msapiro.net>        The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan
-------------- next part --------------
Google Traceback

ERROR 2016-03-15 16:23:08,895 base 8170 140464123397952 Internal Server Error: /login/google/
Traceback (most recent call last):
  File "/opt/mailman/mailman-bundler/eggs/Django-1.8.11-py2.7.egg/django/core/handlers/base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/opt/mailman/mailman-bundler/eggs/Django-1.8.11-py2.7.egg/django/views/decorators/cache.py", line 57, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/apps/django_app/utils.py", line 51, in wrapper
    return func(request, backend, *args, **kwargs)
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/apps/django_app/views.py", line 19, in auth
    return do_auth(request.backend, redirect_name=REDIRECT_FIELD_NAME)
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/actions.py", line 28, in do_auth
    return backend.start()
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/backends/base.py", line 35, in start
    if self.uses_redirect():
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/backends/open_id.py", line 239, in uses_redirect
    return self.openid_request().shouldSendRedirect()
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/backends/open_id.py", line 248, in openid_request
    err
AuthException: OpenID discovery error: HTTP Response status from identity URL host is not 200. Got status 404

Yahoo Tracebacks

ERROR 2016-03-15 20:45:21,013 base 8170 140464123397952 Internal Server Error: /complete/yahoo/
Traceback (most recent call last):
  File "/opt/mailman/mailman-bundler/eggs/Django-1.8.11-py2.7.egg/django/core/handlers/base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/opt/mailman/mailman-bundler/eggs/Django-1.8.11-py2.7.egg/django/views/decorators/cache.py", line 57, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "/opt/mailman/mailman-bundler/eggs/Django-1.8.11-py2.7.egg/django/views/decorators/csrf.py", line 58, in wrapped_view
    return view_func(*args, **kwargs)
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/apps/django_app/utils.py", line 51, in wrapper
    return func(request, backend, *args, **kwargs)
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/apps/django_app/views.py", line 28, in complete
    redirect_name=REDIRECT_FIELD_NAME, *args, **kwargs)
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/actions.py", line 43, in do_complete
    user = backend.complete(user=user, *args, **kwargs)
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/backends/base.py", line 41, in complete
    return self.auth_complete(*args, **kwargs)
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/backends/open_id.py", line 174, in auth_complete
    return self.strategy.authenticate(*args, **kwargs)
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/strategies/django_strategy.py", line 96, in authenticate
    return authenticate(*args, **kwargs)
  File "/opt/mailman/mailman-bundler/eggs/Django-1.8.11-py2.7.egg/django/contrib/auth/__init__.py", line 74, in authenticate
    user = backend.authenticate(**credentials)
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/backends/base.py", line 82, in authenticate
    return self.pipeline(pipeline, *args, **kwargs)
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/backends/base.py", line 85, in pipeline
    out = self.run_pipeline(pipeline, pipeline_index, *args, **kwargs)
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/backends/base.py", line 111, in run_pipeline
    func = module_member(name)
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/utils.py", line 57, in module_member
    return getattr(module, member)
AttributeError: 'module' object has no attribute 'add_user_to_mailman'



ERROR 2016-03-15 22:46:27,659 base 8170 140464123397952 Internal Server Error: /complete/yahoo/
Traceback (most recent call last):
  File "/opt/mailman/mailman-bundler/eggs/Django-1.8.11-py2.7.egg/django/core/handlers/base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/opt/mailman/mailman-bundler/eggs/Django-1.8.11-py2.7.egg/django/views/decorators/cache.py", line 57, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "/opt/mailman/mailman-bundler/eggs/Django-1.8.11-py2.7.egg/django/views/decorators/csrf.py", line 58, in wrapped_view
    return view_func(*args, **kwargs)
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/apps/django_app/utils.py", line 51, in wrapper
    return func(request, backend, *args, **kwargs)
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/apps/django_app/views.py", line 28, in complete
    redirect_name=REDIRECT_FIELD_NAME, *args, **kwargs)
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/actions.py", line 43, in do_complete
    user = backend.complete(user=user, *args, **kwargs)
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/backends/base.py", line 41, in complete
    return self.auth_complete(*args, **kwargs)
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/backends/open_id.py", line 172, in auth_complete
    self.process_error(response)
  File "/opt/mailman/mailman-bundler/eggs/python_social_auth-0.2.14-py2.7.egg/social/backends/open_id.py", line 180, in process_error
    raise AuthFailed(self, data.message)
AuthFailed: Authentication failed: Invalid openid.mode: '<No mode set>'


Archiving exception

Mar 16 02:28:27 2016 (2965) ACCEPT: <56E8C4C0.8070207 at msapiro.net>
Mar 16 02:28:27 2016 (2964) Uncaught runner exception: hostname '127.0.0.1' doesn't match either of 'lists.mailman3.org', 'mirror.list.org', 'mirror.mailman3.org'
Mar 16 02:28:27 2016 (2964) Traceback (most recent call last):
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/requests/packages/urllib3/connectionpool.py", line 559, in urlopen
    body=body, headers=headers)
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/requests/packages/urllib3/connectionpool.py", line 345, in _make_request
    self._validate_conn(conn)
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/requests/packages/urllib3/connectionpool.py", line 784, in _validate_conn
    conn.connect()
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/requests/packages/urllib3/connection.py", line 277, in connect
    match_hostname(cert, asserted_hostname)
  File "/usr/lib/python3.4/ssl.py", line 285, in match_hostname
    % (hostname, ', '.join(map(repr, dnsnames))))
ssl.CertificateError: hostname '127.0.0.1' doesn't match either of 'lists.mailman3.org', 'mirror.list.org', 'mirror.mailman3.org'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/requests/adapters.py", line 376, in send
    timeout=timeout
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/requests/packages/urllib3/connectionpool.py", line 588, in urlopen
    raise SSLError(e)
requests.packages.urllib3.exceptions.SSLError: hostname '127.0.0.1' doesn't match either of 'lists.mailman3.org', 'mirror.list.org', 'mirror.mailman3.org'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/mailman/core/runner.py", line 165, in _one_iteration
    self._process_one_file(msg, msgdata)
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/mailman/core/runner.py", line 258, in _process_one_file
    keepqueued = self._dispose(mlist, msg, msgdata)
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/mailman/runners/pipeline.py", line 41, in _dispose
    process(mlist, msg, msgdata, pipeline)
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/mailman/core/pipelines.py", line 62, in process
    handler.process(mlist, msg, msgdata)
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/mailman/handlers/rfc_2369.py", line 124, in process
    process(mlist, msg, msgdata)
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/mailman/handlers/rfc_2369.py", line 88, in process
    archiver_url = archiver.system_archiver.list_url(mlist)
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/mailman_hyperkitty/__init__.py", line 101, in list_url
    return self._get_url({"mlist": mlist.fqdn_listname})
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/mailman_hyperkitty/__init__.py", line 82, in _get_url
    result = requests.get(url, params=params)
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/requests/api.py", line 67, in get
    return request('get', url, params=params, **kwargs)
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/requests/api.py", line 53, in request
    return session.request(method=method, url=url, **kwargs)
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/requests/sessions.py", line 468, in request
    resp = self.send(prep, **send_kwargs)
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/requests/sessions.py", line 597, in send
    history = [resp for resp in gen] if allow_redirects else []
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/requests/sessions.py", line 597, in <listcomp>
    history = [resp for resp in gen] if allow_redirects else []
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/requests/sessions.py", line 195, in resolve_redirects
    **adapter_kwargs
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/requests/sessions.py", line 576, in send
    r = adapter.send(request, **kwargs)
  File "/opt/mailman/mailman-bundler/venv-3.4/lib/python3.4/site-packages/requests/adapters.py", line 447, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: hostname '127.0.0.1' doesn't match either of 'lists.mailman3.org', 'mirror.list.org', 'mirror.mailman3.org'
Mar 16 02:28:27 2016 (2964) SHUNTING: 1458095307.2480416+8c7a3c9ebd560baabdf44fd725d514de4be263f2



More information about the Mailman-Developers mailing list