Cannot run manually built powa
Closed this issue · 2 comments
FreeBSD 14.0
Python 3.11
Postgres 15.8
(powa) tarkhil@stor:~/powa % ./bin/powa-web
Traceback (most recent call last):
File "/home/tarkhil/powa/./bin/powa-web", line 4, in <module>
from powa import make_app
File "/home/tarkhil/powa/lib/python3.11/site-packages/powa/__init__.py", line 21, in <module>
from powa.overview import Overview
File "/home/tarkhil/powa/lib/python3.11/site-packages/powa/overview.py", line 12, in <module>
from powa.server import ServerOverview
File "/home/tarkhil/powa/lib/python3.11/site-packages/powa/server.py", line 15, in <module>
from powa.config import ConfigChangesGlobal
File "/home/tarkhil/powa/lib/python3.11/site-packages/powa/config.py", line 9, in <module>
from powa.sql.views import get_config_changes
File "/home/tarkhil/powa/lib/python3.11/site-packages/powa/sql/views.py", line 5, in <module>
from powa.sql.utils import diff
File "/home/tarkhil/powa/lib/python3.11/site-packages/powa/sql/utils.py", line 7, in <module>
block_size = select([cast(func.current_setting('block_size'), Numeric)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/tarkhil/powa/lib/python3.11/site-packages/sqlalchemy/sql/_selectable_constructors.py", line 482, in select
return Select(*entities)
^^^^^^^^^^^^^^^^^
File "/home/tarkhil/powa/lib/python3.11/site-packages/sqlalchemy/sql/selectable.py", line 5169, in __init__
self._raw_columns = [
^
File "/home/tarkhil/powa/lib/python3.11/site-packages/sqlalchemy/sql/selectable.py", line 5170, in <listcomp>
coercions.expect(
File "/home/tarkhil/powa/lib/python3.11/site-packages/sqlalchemy/sql/coercions.py", line 396, in expect
resolved = impl._literal_coercion(
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/tarkhil/powa/lib/python3.11/site-packages/sqlalchemy/sql/coercions.py", line 635, in _literal_coercion
self._raise_for_expected(element, argname)
File "/home/tarkhil/powa/lib/python3.11/site-packages/sqlalchemy/sql/coercions.py", line 1134, in _raise_for_expected
return super()._raise_for_expected(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/tarkhil/powa/lib/python3.11/site-packages/sqlalchemy/sql/coercions.py", line 696, in _raise_for_expected
super()._raise_for_expected(
File "/home/tarkhil/powa/lib/python3.11/site-packages/sqlalchemy/sql/coercions.py", line 519, in _raise_for_expected
raise exc.ArgumentError(msg, code=code) from err
sqlalchemy.exc.ArgumentError: Column expression, FROM clause, or other columns clause element expected, got [<sqlalchemy.sql.elements.Label at 0x31652a61f610; block_size>]. Did you mean to say select(<sqlalchemy.sql.elements.Label at 0x31652a61f610; block_size>)?
(powa) tarkhil@stor:~/powa %
According to truss ( like strace in linux), it does not even try to read powa-web.conf. Just hits something and dies.
Modules installed, loaded
Extensions installed
I can login as powa and call
powa=# select public.powa_take_snapshot();
powa_take_snapshot
--------------------
0
(1 row)
Not a slightest idea what happens and how to fix it.
Hi,
This is actually "only" an issue in powa-web. The problem is that sqlalchemy keeps breaking its API, which forces us to keep adding workaround to make it work with older versions. We gave up on that some time ago and entirely removed sqlalchemy from powa-web, so the next version (5.0.0) will fix that problem once and for all.
Until that version is released, your options are:
- install a compatible sqlalchemy version (sqlalchemy>0.9.8,<=1.4)
- use current dev version of powa and powa-web (latest commits in both repositories)
I'm closing the issue hoping that one of the solutions worked. if you still have problems feel free to reopen this issue or create a new one.