I recently got postorius web interface stopped with an error, from web log: WARNING 2021-09-29 14:46:47,071 39320 django.request Not Found: /mailman//postorius/lists/ from website: This page either doesn't exist, or it moved somewhere else. I wonder what would be the source of this error / anyone else experienced this error since I haven't changed anything.
Regards, Tibor
Are you on Ubuntu 20.04 with Apache2? It looks like the same problem I had, see my message to the list. Try removing the trailing / on localhost on the uwsgi ProxyPass line in apache.conf
ProxyPass /mailman3 unix:/run/mailman3-web/uwsgi.sock|uwsgi://localhost/
becomes
ProxyPass /mailman3 unix:/run/mailman3-web/uwsgi.sock|uwsgi://localhost
Simon
On Thursday, 30 September 2021 16:58:09 CEST tibor.molnar@waltoninstitute.ie wrote:
I recently got postorius web interface stopped with an error, from web log: WARNING 2021-09-29 14:46:47,071 39320 django.request Not Found: /mailman//postorius/lists/ from website: This page either doesn't exist, or it moved somewhere else. I wonder what would be the source of this error / anyone else experienced this error since I haven't changed anything.
Regards, Tibor
Mailman-users mailing list -- mailman-users@mailman3.org To unsubscribe send an email to mailman-users-leave@mailman3.org https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
-- Simon Brown System Engineer EISCAT Scientific Association P. O. Box 812, SE-981 28 Kiruna, Sweden simon.brown@eiscat.se
I have the same problem, after the mailman3 installation had run some weeks flawless. Removing the trailing / did not help. Any ideas?
What's strange, my mailman-web is referred to by https://lists.tdl/mailman3/ this show the message as above: This page either doesn't exist, or it moved somewhere else. The links in that page refer to urls like: https://lists.tld/mailman/postorius/lists/ This URL does not exist, of course. Where is the mailman3 replaced by mailman? All my config files refer to mailman3.
On 10/13/21 3:38 AM, eggert--- via Mailman-users wrote:
What's strange, my mailman-web is referred to by https://lists.tdl/mailman3/ this show the message as above: This page either doesn't exist, or it moved somewhere else. The links in that page refer to urls like: https://lists.tld/mailman/postorius/lists/ This URL does not exist, of course. Where is the mailman3 replaced by mailman? All my config files refer to mailman3.
How have you installed Mailman?
We usually use links like https://example.com/mailman3 and https://example.com/archives in docs for Postorius and HyperKitty respectively. These are the ones in urlpatterns in mailman-web/urls.py We have also used https://example.com/postorius and https://example.com/hyperkitty as alternatives. To enable these, you need to add
url(r'^postorius/', include('postorius.urls')),
url(r'^hyperkitty/', include('hyperkitty.urls')),
to the definition of urlpatterns in urls.py so it becomes something like
urlpatterns = [
url(r'^$', RedirectView.as_view(
url=reverse_lazy('list_index'),
permanent=True)),
url(r'^mailman3/', include('postorius.urls')),
url(r'^archives/', include('hyperkitty.urls')),
url(r'', include('django_mailman3.urls')),
url(r'^accounts/', include('allauth.urls')),
# Django admin
url(r'^admin/', admin.site.urls),
url(r'^postorius/', include('postorius.urls')),
url(r'^hyperkitty/', include('hyperkitty.urls')),
]
However, that doesn't explain why your `mailman3` URLs get munged to
`mailman`. That is apparently a uWSGI thing, and since I've never used
uWSGI, only gunicorn and mod_wsgi, I can't help with that other than to
suggest that you might have neglected to restart uWSGI after removing
the trailing slash.
--
Mark Sapiro <mark@msapiro.net> The highway is for gamblers,
San Francisco Bay Area, California better use your sense - B. Dylan
I installed mailman3 by the Debian package mailman3-full. I restarted the apache and the mailman3-web, that should be enough to restart the uWSGI, right?
Us there a guide how to use just the mod_wsgi? That is installed anyway for another django application.
I type this URL into the browser: https://lists.tld/mailman3/postorius/lists/ In the apache access log I find: GET /mailman3/postorius/lists/ With DEBUG=True, the web site shows: Request Method: GET Request URL: https://lists.tld/mailman//postorius/lists/
Using the URLconf defined in urls, Django tried these URL patterns, in this order:
^$
^mailman3/
^postorius/
^hyperkitty/
^user-profile/delete$ [name='mm_user_account_delete']
^user-profile/$ [name='mm_user_profile']
^accounts/
^admin/
The current path, /postorius/lists/, didn't match any of these.
This is driving me crazy. What's more, when I completely remove the ProxyPass statements from the apache config, it does not make a difference. Somehow the wsgi is not working at all.
I did a fresh installation on another machine, and the problem showed up too. I guess it is a Debian bug. The point is, the last letter of mailman3 in the url gets lost somewhere, so all urls get invalid. I could get this workaround to work: in the apache vhost config:
Alias /mailman3/favicon.ico /var/lib/mailman3/web/static/postorius/img/favicon.ico
Alias /mailman3/static /var/lib/mailman3/web/static
<Directory /var/lib/mailman3/web/static>
Require all granted
</Directory>
<IfModule mod_proxy_uwsgi.c>
ProxyPass /mailman3/favicon.ico !
ProxyPass /mailman3/static !
ProxyPass /mailman unix:/run/mailman3-web/uwsgi.sock|uwsgi://localhost
</IfModule>
Note I changed the mailman3 to mailman in the uwsgi line. The static files including the css had to be accessed still under mailman3.
Still this is an ugly solution, but my mailing lists work again. If someone finds a clean solution, you are welcome. Will try to create a Debian issue.
Thanks for the solution !
I use Debian 10 (Buster) and I have this problem too. Unfortunately, I didn't notice which update caused the problem. It was working in august 2020 when I configured Mailman3.
I found the update that caused the issue on Debian 10 : apache2 (2.4.38-3+deb10u6) buster-security; urgency=high
[ Yadd, Moritz Muehlenhoff ]
- Initialize the request fields on read failure to avoid NULLs (Closes: CVE-2021-34798)
- mod_proxy_uwsgi: Fix PATH_INFO setting for generic worker (Closes: CVE-2021-36160)
- Fix ap_escape_quotes with pre-escaped quotes (Closes: CVE-2021-39275)
- Sanity checks on the configured UDS path (Closes: CVE-2021-40438)
-- Yadd <yadd@debian.org> Thu, 30 Sep 2021 05:50:49 +0200
The *good* solution is to replace by the following line : ProxyPass /mailman3/ unix:/run/mailman3-web/uwsgi.sock|uwsgi://localhost/
You can notice the "/" after mailman3 *and* localhost. This way, https://lists.tdl/mailman3/ will work again.
This is not a bug, this a new feature ;-)
A new update in Debian 10 for apache2 relaxes the behaviour ... I haven't tested if reverting the syntax works but the new syntax described above is still working.
apache2 (2.4.38-3+deb10u7) buster-security; urgency=medium
* Fix possible NULL dereference or SSRF in forward proxy configurations
(CVE-2021-44224)
* lua: improve error handling (Closes: CVE-2021-44790)
* mod_proxy_uwsgi: Remove duplicate slashes at the beginning of PATH_INFO
(relaxes the behaviour introduced by the CVE-2021-36160 fix)
-- Yadd <yadd@debian.org> Tue, 21 Dec 2021 17:50:43 +0100
I upgraded to Debian 11 (Bullseye) and both syntax work :
ProxyPass /mailman3/ unix:/run/mailman3-web/uwsgi.sock|uwsgi://localhost/
or the former
ProxyPass /mailman3 unix:/run/mailman3-web/uwsgi.sock|uwsgi://localhost
participants (5)
-
eggert@eehmke.de
-
github@lunique.fr
-
Mark Sapiro
-
Simon Brown
-
tibor.molnar@waltoninstitute.ie