Re: [SOLVED] Re: Cannot Run pgAdmin4 v8.13 on AlmaLinux 8 after upgrade from v8.12 - Mailing list pgadmin-support

From Khushboo Vashi
Subject Re: [SOLVED] Re: Cannot Run pgAdmin4 v8.13 on AlmaLinux 8 after upgrade from v8.12
Date
Msg-id CAFOhELd77NkETYtzDONZ+YDAK9e93fTKea8ECV0R0qpMo0i-_g@mail.gmail.com
Whole thread Raw
In response to [SOLVED] Re: Cannot Run pgAdmin4 v8.13 on AlmaLinux 8 after upgrade from v8.12  (Surya Widyanto <ayrus02@gmail.com>)
List pgadmin-support


On Fri, Dec 13, 2024 at 6:20 PM Surya Widyanto <ayrus02@gmail.com> wrote:
Hi,

I just want to share that the problem with my installation of pgAdmin4 on my AlmaLinux v8.x and v9.x are now can run with Web mode using Apache HTTPD.
I will try to explain how I overcome the problem

1. First, the error log of my pgAdmin4 are like below

mod_wsgi (pid=3540264): Failed to exec Python script file '/usr/pgadmin4/web/pgAdmin4.wsgi'.
mod_wsgi (pid=3540264): Exception occurred processing WSGI script '/usr/pgadmin4/web/pgAdmin4.wsgi'.
Traceback (most recent call last):
  File "/usr/pgadmin4/web/pgAdmin4.wsgi", line 36, in <module>
    from pgAdmin4 import app as application
  File "/usr/pgadmin4/web/pgAdmin4.py", line 93, in <module>
    app = create_app()
  File "/usr/pgadmin4/web/pgadmin/__init__.py", line 546, in create_app
    driver.init_app(app)
  File "/usr/pgadmin4/web/pgadmin/utils/driver/__init__.py", line 27, in init_app
    DriverRegistry.load_modules(app)
  File "/usr/pgadmin4/web/pgadmin/utils/driver/registry.py", line 20, in load_modules
    from . import psycopg3 as module
  File "/usr/pgadmin4/web/pgadmin/utils/driver/psycopg3/__init__.py", line 21, in <module>
    import psycopg
  File "/usr/pgadmin4/venv/lib64/python3.9/site-packages/psycopg/__init__.py", line 9, in <module>
    from . import pq  # noqa: F401 import early to stabilize side effects
  File "/usr/pgadmin4/venv/lib64/python3.9/site-packages/psycopg/pq/__init__.py", line 117, in <module>
    import_from_libpq()
  File "/usr/pgadmin4/venv/lib64/python3.9/site-packages/psycopg/pq/__init__.py", line 109, in import_from_libpq
    raise ImportError(
ImportError: no pq wrapper available.
Attempts made:
- couldn't import psycopg 'c' implementation: /usr/pgadmin4/venv/lib64/python3.9/site-packages/psycopg_c/pq.cpython-39-x86_64-linux-gnu.so: undefined symbol: PQchangePassword
- couldn't import psycopg 'binary' implementation: No module named 'psycopg_binary'
- couldn't import psycopg 'python' implementation:

2. From the log I know that after upgrading from pgAdmin4 v8.12 to v8.13 and above, it require some psycopg_binary python package

3. So I open the pgAdmin4 virtual environment using command:

source /usr/pgadmin4/venv/bin/activate

4. Then run PIP to install the required package psycopg_binaryby running command:

pip install "psycopg[binary]"

psycpg[binary] installs all the libraries needed. So it will not use your system's libpq.

5. And restart the Apache HTTPD, and access it from web browser.

That's it, I can access my instance of pgAdmin4 v8.13 or the latest v8.14 from web.

Regards,
ayrus02


On 03-12-2024 12:33, Khushboo Vashi wrote:


On Mon, Dec 2, 2024 at 6:31 PM Surya Widyanto <ayrus02@gmail.com> wrote:
Hi,

For this problem is it already identified the main problem? is it a bug on the new release v8.13?
Is there any hint how to solve the problem? until now, I still cannot upgrade to v8.13 because of this problem

Please try moving libpq.so and libpq.so.5 to the other location and keeping only one libpq `/usr/lib64/libpq.so.5.17`.

Regards,
ayrus02

On 18-11-2024 16:42, Khushboo Vashi wrote:
Hi,

Make sure that your libpq is located at LIBDIR = /usr/lib64. This error may occur when you have multiple libpq installed on your system. Also do not forget to restart the apache server.

Thanks,
Khushboo



On Mon, Nov 18, 2024 at 3:06 PM Surya Widyanto <ayrus02@gmail.com> wrote:
Hi,

Below are the output of pg_config on on my AlmaLinux 8 (x64) machine:

BINDIR = /usr/bin
DOCDIR = /usr/share/doc/pgsql
HTMLDIR = /usr/share/doc/pgsql
INCLUDEDIR = /usr/include
PKGINCLUDEDIR = /usr/include/pgsql
INCLUDEDIR-SERVER = /usr/include/pgsql/server
LIBDIR = /usr/lib64
PKGLIBDIR = /usr/lib64/pgsql
LOCALEDIR = /usr/share/locale
MANDIR = /usr/share/man
SHAREDIR = /usr/share/pgsql
SYSCONFDIR = /etc/pgsql
PGXS = /usr/lib64/pgsql/pgxs/src/makefiles/pgxs.mk
CONFIGURE =  '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--program-prefix=' '--disable-dependency-tracking' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--disable-rpath' '--with-openssl' '--with-gssapi' '--with-includes=/usr/include' '--with-libraries=/usr/lib64' '--enable-nls' '--with-ldap' '--with-lz4' '--with-selinux' '--with-systemd' '--with-system-tzdata=/usr/share/zoneinfo' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'CFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' 'LDFLAGS=-Wl,--as-needed' 'CXXFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' 'PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig' 'PYTHON=/usr/bin/python3'
CC = gcc
CPPFLAGS = -D_GNU_SOURCE -I/usr/include
CFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection
CFLAGS_SL = -fPIC
LDFLAGS = -Wl,--as-needed -L/usr/lib64 -Wl,--as-needed
LDFLAGS_EX =
LDFLAGS_SL =
LIBS = -lpgcommon -lpgport -lselinux -llz4 -lssl -lcrypto -lgssapi_krb5 -lz -lreadline -lpthread -lrt -ldl -lm
VERSION = PostgreSQL 17.0

Below are the output of pg_config on on my AlmaLinux 9 (x64) machine:

BINDIR = /usr/bin
DOCDIR = /usr/share/doc/pgsql
HTMLDIR = /usr/share/doc/pgsql
INCLUDEDIR = /usr/include
PKGINCLUDEDIR = /usr/include/pgsql
INCLUDEDIR-SERVER = /usr/include/pgsql/server
LIBDIR = /usr/lib64
PKGLIBDIR = /usr/lib64/pgsql
LOCALEDIR = /usr/share/locale
MANDIR = /usr/share/man
SHAREDIR = /usr/share/pgsql
SYSCONFDIR = /etc/pgsql
PGXS = /usr/lib64/pgsql/pgxs/src/makefiles/pgxs.mk
CONFIGURE =  '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--program-prefix=' '--disable-dependency-tracking' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--disable-rpath' '--with-openssl' '--with-gssapi' '--with-includes=/usr/include' '--with-libraries=/usr/lib64' '--enable-nls' '--with-ldap' '--with-lz4' '--with-selinux' '--with-systemd' '--with-system-tzdata=/usr/share/zoneinfo' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'CC=gcc' 'CFLAGS=-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' 'LDFLAGS=-Wl,--as-needed' 'CXX=g++' 'CXXFLAGS=-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' 'PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig' 'PYTHON=/usr/bin/python3'
CC = gcc
CPPFLAGS = -D_GNU_SOURCE -I/usr/include
CFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection
CFLAGS_SL = -fPIC
LDFLAGS = -Wl,--as-needed -L/usr/lib64 -Wl,--as-needed
LDFLAGS_EX =
LDFLAGS_SL =
LIBS = -lpgcommon -lpgport -lselinux -llz4 -lssl -lcrypto -lgssapi_krb5 -lz -lreadline -lm
VERSION = PostgreSQL 17.0

Regards,
ayrus02


On 18-11-2024 16:26, Khushboo Vashi wrote:


On Mon, Nov 18, 2024 at 2:48 PM Surya Widyanto <ayrus02@gmail.com> wrote:
Hi,

Below are the output of dnf list libpq5* on my AlmaLinux 8 (x64) machine:

Last metadata expiration check: 3:28:40 ago on Mon 18 Nov 2024 12:43:19 PM WIB.
Installed Packages
libpq5.x86_64 - 17.0-43PGDG.rhel8 - @pgAdmin4
Available Packages
libpq5-devel.x86_64 - 17.0-43PGDG.rhel8 - pgAdmin4
libpq5-devel.x86_64 - 17.0-43PGDG.rhel8 - pgdg-common


This looks fine.
What's the output of pg_config ? 
And below are the output of dnf list libpq5* on my AlmaLinux 9 (x64) machine:

Last metadata expiration check: 0:38:20 ago on Sen 18 Nov 2024 03:33:43 .
Installed Packages
libpq5.x86_64 - 17.0-43PGDG.rhel9 - @pgdg-common
Available Packages
libpq5-devel.x86_64 - 17.0-43PGDG.rhel9 - pgAdmin4
libpq5-devel.x86_64 - 17.0-43PGDG.rhel9 - pgdg-common


Regards,
ayrus02

On 18-11-2024 16:06, Khushboo Vashi wrote:


On Mon, Nov 18, 2024 at 1:13 PM Surya Widyanto <ayrus02@gmail.com> wrote:
Hi,

I've upgraded the libpq5 to version 17.0-43PGDG.rhel8
I've also restart the apache server.

What's the output of `yum list libpq5*` ?

But the problem still exist. With the same error in log file.

I've also can confirm that this also happened on my other server running AlmaLinux 9 (x64).
My other server also has libpq5 with version 17.0-43PGDG.rhel9 and also running as Web Mode via Apache.

Regards,
ayrus02

On 18-11-2024 14:21, Khushboo Vashi wrote:
Hi,

On Mon, Nov 18, 2024 at 12:24 PM Surya Widyanto <ayrus02@gmail.com> wrote:
Hi Vashi,

Yes, I can confirm it is installed with version:
libpq5.x86_64 - v16.3-43PGDG.rhel8

During the pgAdmin upgrade on your system, the libpq5 should have been upgraded to the latest (v17), which didn't happen in your case.
Can you please upgrade libpq5 to the latest version? It should fix this issue.

Thanks,
Khushboo

Regards,
ayrus02

On 18-11-2024 13:48, Khushboo Vashi wrote:
Is libpq5 installed on your system?

On Mon, Nov 18, 2024 at 12:11 PM Surya Widyanto <ayrus02@gmail.com> wrote:

Hi,

Today, I've upgraded my pgAdmin4 version from v8.12 to v8.13 using dnf on AlmaLinux 8.

My pgAdmin4 is installed as web mode and accessed via Apache.

After upgrading to v8.13, when I access the pgAdmin4 address from web browser, it give an error 500. When I look at the error log, it contains the line below:

mod_wsgi (pid=3535715): Failed to exec Python script file '/usr/pgadmin4/web/pgAdmin4.wsgi'.
mod_wsgi (pid=3535715): Exception occurred processing WSGI script '/usr/pgadmin4/web/pgAdmin4.wsgi'.
Traceback (most recent call last):
ImportError: no pq wrapper available.
Attempts made:
- couldn't import psycopg 'c' implementation: /usr/pgadmin4/venv/lib64/python3.9/site-packages/psycopg_c/pq.cpython-39-x86_64-linux-gnu.so: undefined symbol: PQchangePassword
- couldn't import psycopg 'binary' implementation: No module named 'psycopg_binary'
- couldn't import psycopg 'python' implementation:

The primary concern is at undefined symbol: PQchangePassword

Is there any bug or I have do the update wrongly?

Regards,
ayrus02







pgadmin-support by date:

Previous
From: Yogesh Mahajan
Date:
Subject: Re: Logging in error
Next
From: Markus KARG
Date:
Subject: Re: Fwd: pgadmin says "SSL error: tlsv1 alert no application protocol"