Postorius slow - members list visibility

After multiple days of debugging, I finally arrived at an obvious conclusion. That's a needle-in-the-haystack phenomenon: after you find the needle it's easy. Before you find it, impossible.

PROBLEM:

Postorius was extremely slow. Navigate to lists.example.com (the main page) and then to a specific list. The list's main Postorius page took 5-6 seconds to load. This is before arriving at the Hyperkitty archives.

EXPLANATION:

Log in as a user who is an ordinary member of a list. Not an owner. Members list visibility is enabled. When visiting a list page, the full list of members gets loaded every time. If you have a list with 10000 members, it seems that either they are all downloaded, or at least, a very expensive query gets run. Notice this in the mailman log:

[10/Sep/2025:17:57:05 +0000] "GET /3.1/lists/lists.example.com/roster/member?fields=email&fields=address&fields=self_link HTTP/1.1" 200 1300488 "-" "GNU Mailman REST client v3.3.5"

Does the roster include all members?

SOLUTION:

It seems list owners get a different view than members. They must navigate to another page to see users. Implement something similar for ordinary members, such that they must navigate to another page to view members. Don't automatically load the "roster" every time. Force the user to click another page to view the member list, and load a paginated list at that point.

why it's important: most people don't remember the URL of the /archives/ page. They will navigate to lists.example.com and then click and click until arriving at the destination. Along this path they'll inadvertently hit the "member visibility" bug, and get stuck on a 10 second page load time.

Assignee Loading
Time tracking Loading