On Oct 28, 2021, at 6:45 PM, Abhilash Raj <maxking@asynchronous.in> wrote:
On Oct 26, 2021, at 10:33 AM, Seth Seeger <seth@tofutavern.com> wrote:
Hello community,
I'm running the Docker version of MM3. I've just run:
docker-compose stop docker-compose pull docker-compose up -d
I am now at versions:
mailman-core: 3.3.4 mailman-web: 2.2.20
You probably want to look at instructions on updating to newer versions:
https://asynchronous.in/docker-mailman/news/#upgrading-to-040-release
I shall - thank you. Interestingly, my system is running just fine without any of those changes, but I will carefully look through them.
Also, not sure how you got mailman-web 2.2.20, the latest version is 0.0.51 and docker image doesn’t use the mailman-web package at all.
$ sudo docker exec -u mailman mailman-web ./manage.py version 2.2.20
I am running a 2-core, 4GB RAM VM on Linode.
The web interface mostly works. However, sometimes/regularly I get a 500 Internal Server Error. In /opt/mailman/core/var/logs/mailman.log I see the errors, but they are usually different. The common thread seems they are always about some sort of database call. Reloading the page is usually successful.
Did anything change with the latest upgrade in terms of database timeouts? Before this upgrade, I was never getting it. (htop does not show anything unusual.)
Can you share the actual errors you are seeing? If there are a lot of them, perhaps two three of them?
The errors have settled down to less than one-per-day. I'm guessing that my system was not quite powerful enough to handle web traffic on top of the start up process (that may have involved upgrade commands).
Each of the errors below was accompanied by an email. The error messages are from /opt/mailman/core/var/logs/mailman.log. (I'm happy to provide any more details of any of this.) The second one was more common (particularly the "'NoneType' object has no attribute '_getter'".
Seth
2021-10-28 14:45:02 [FALCON] [ERROR] GET /3.1/lists/xxx@xxxx.net => Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2336, in _wrap_pool_connect return fn() File "/usr/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 364, in connect return _ConnectionFairy._checkout(self) File "/usr/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 809, in _checkout result = pool._dialect.do_ping(fairy.connection) File "/usr/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 575, in do_ping cursor.execute(self._dialect_specific_select_one) psycopg2.DatabaseError: error with status PGRES_TUPLES_OK and no message from the libpq
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/falcon/app.py", line 341, in __call__ responder, params, resource, req.uri_template = self._get_responder(req) File "/usr/lib/python3.8/site-packages/falcon/app.py", line 886, in _get_responder route = self._router_search(path, req=req) File "/usr/lib/python3.8/site-packages/mailman/rest/wsgiapp.py", line 126, in find result = attribute(context, segments) File "/usr/lib/python3.8/site-packages/mailman/rest/root.py", line 227, in lists return AList(list_identifier), segments File "/usr/lib/python3.8/site-packages/mailman/rest/lists.py", line 189, in __init__ self._mlist = manager.get(list_identifier) File "/usr/lib/python3.8/site-packages/mailman/database/transaction.py", line 85, in wrapper return function(args[0], config.db.store, *args[1:], **kws) File "/usr/lib/python3.8/site-packages/mailman/model/listmanager.py", line 64, in get return (self.get_by_fqdn(list_spec) File "/usr/lib/python3.8/site-packages/mailman/database/transaction.py", line 85, in wrapper return function(args[0], config.db.store, *args[1:], **kws) File "/usr/lib/python3.8/site-packages/mailman/model/listmanager.py", line 77, in get_by_fqdn return store.query(MailingList).filter_by( File "/usr/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line 3429, in first ret = list(self[0:1]) File "/usr/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line 3203, in __getitem__ return list(res) File "/usr/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line 3535, in __iter__ return self._execute_and_instances(context) File "/usr/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line 3556, in _execute_and_instances conn = self._get_bind_args( File "/usr/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line 3571, in _get_bind_args return fn( File "/usr/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line 3550, in _connection_from_session conn = self.session.connection(**kw) File "/usr/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 1142, in connection return self._connection_for_bind( File "/usr/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 1150, in _connection_for_bind return self.transaction._connection_for_bind( File "/usr/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 433, in _connection_for_bind conn = bind._contextual_connect() File "/usr/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2302, in _contextual_connect self._wrap_pool_connect(self.pool.connect, None), File "/usr/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2339, in _wrap_pool_connect Connection._handle_dbapi_exception_noconnection( File "/usr/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1583, in _handle_dbapi_exception_noconnection util.raise_( File "/usr/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 182, in raise_ raise exception File "/usr/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2336, in _wrap_pool_connect return fn() File "/usr/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 364, in connect return _ConnectionFairy._checkout(self) File "/usr/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 809, in _checkout result = pool._dialect.do_ping(fairy.connection) File "/usr/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 575, in do_ping cursor.execute(self._dialect_specific_select_one) sqlalchemy.exc.DatabaseError: (psycopg2.DatabaseError) error with status PGRES_TUPLES_OK and no message from the libpq (Background on this error at: http://sqlalche.me/e/13/4xp6)
=============================================
2021-10-26 19:39:54 [FALCON] [ERROR] GET /3.1/users/xxxx@xxx.com => Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/sqlalchemy/engine/result.py", line 779, in _getter getter = self._metadata._getter AttributeError: 'NoneType' object has no attribute '_getter'
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/falcon/app.py", line 361, in __call__ responder(req, resp, **params) File "/usr/lib/python3.8/site-packages/mailman/rest/users.py", line 208, in on_get if self._user is None: File "/usr/lib/python3.8/site-packages/mailman/rest/users.py", line 195, in _user return user_manager.get_user(self._user_identifier) File "/usr/lib/python3.8/site-packages/mailman/database/transaction.py", line 85, in wrapper return function(args[0], config.db.store, *args[1:], **kws) File "/usr/lib/python3.8/site-packages/mailman/model/usermanager.py", line 85, in get_user address = self.get_address(email) File "/usr/lib/python3.8/site-packages/mailman/database/transaction.py", line 85, in wrapper return function(args[0], config.db.store, *args[1:], **kws) File "/usr/lib/python3.8/site-packages/mailman/model/usermanager.py", line 141, in get_address return store.query( File "/usr/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line 3459, in one_or_none ret = list(self) File "/usr/lib/python3.8/site-packages/sqlalchemy/orm/loading.py", line 100, in instances cursor.close() File "/usr/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__ compat.raise_( File "/usr/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 182, in raise_ raise exception File "/usr/lib/python3.8/site-packages/sqlalchemy/orm/loading.py", line 58, in instances *[ File "/usr/lib/python3.8/site-packages/sqlalchemy/orm/loading.py", line 59, in <listcomp> query_entity.row_processor(query, context, cursor) File "/usr/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line 4422, in row_processor _instance = loading._instance_processor( File "/usr/lib/python3.8/site-packages/sqlalchemy/orm/loading.py", line 421, in _instance_processor getter = result._getter(col, False) File "/usr/lib/python3.8/site-packages/sqlalchemy/engine/result.py", line 781, in _getter return self._non_result(None, err) File "/usr/lib/python3.8/site-packages/sqlalchemy/engine/result.py", line 1236, in _non_result util.raise_( File "/usr/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 182, in raise_ raise exception sqlalchemy.exc.ResourceClosedError: This result object does not return rows. It has been closed automatically.