Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 30.00 #6208

Closed
khteh opened this issue Apr 28, 2023 · 23 comments
Closed
Assignees
Milestone

Comments

@khteh
Copy link

khteh commented Apr 28, 2023

Please note that security bugs or issues should be reported to security@pgadmin.org.
I hit this error from pgadmin4 web connecting to an AWS RDS cluster of 2 nodes. What's the root cause? Is it due to some configurations that I need to adjust? https://docs.sqlalchemy.org/en/20/errors.html#error-3o7r

The RDS dashboard shows only 2 Connections. How does it hit the connection limit and the "overflow"?

[pgadmin-0] 2023-04-28 09:03:33,207: ERROR	pgadmin:	QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 30.00 (Background on this error at: https://sqlalche.me/e/20/3o7r)
[pgadmin-0] Traceback (most recent call last):
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/flask/app.py", line 1821, in full_dispatch_request
[pgadmin-0]     rv = self.preprocess_request()
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/flask/app.py", line 2312, in preprocess_request
[pgadmin-0]     rv = self.ensure_sync(before_func)()
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/flask_principal.py", line 477, in _on_before_request
[pgadmin-0]     identity = loader()
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/flask_security/core.py", line 708, in _identity_loader
[pgadmin-0]     if not isinstance(current_user._get_current_object(), AnonymousUserMixin):
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/werkzeug/local.py", line 520, in _get_current_object
[pgadmin-0]     return get_name(local())  # type: ignore
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/flask_login/utils.py", line 25, in <lambda>
[pgadmin-0]     current_user = LocalProxy(lambda: _get_user())
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/flask_login/utils.py", line 372, in _get_user
[pgadmin-0]     current_app.login_manager._load_user()
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/flask_login/login_manager.py", line 364, in _load_user
[pgadmin-0]     user = self._user_callback(user_id)
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/flask_security/core.py", line 638, in _user_loader
[pgadmin-0]     user = _security.datastore.find_user(fs_uniquifier=str(user_id))
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/flask_security/datastore.py", line 782, in find_user
[pgadmin-0]     return query.filter_by(**kwargs).first()
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 2752, in first
[pgadmin-0]     return self.limit(1)._iter().first()  # type: ignore
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 2855, in _iter
[pgadmin-0]     result: Union[ScalarResult[_T], Result[_T]] = self.session.execute(
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 2229, in execute
[pgadmin-0]     return self._execute_internal(
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 2114, in _execute_internal
[pgadmin-0]     conn = self._connection_for_bind(bind)
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1981, in _connection_for_bind
[pgadmin-0]     return trans._connection_for_bind(engine, execution_options)
[pgadmin-0]   File "<string>", line 2, in _connection_for_bind
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
[pgadmin-0]     ret_value = fn(self, *arg, **kw)
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1108, in _connection_for_bind
[pgadmin-0]     conn = bind.connect()
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 3251, in connect
[pgadmin-0]     return self._connection_cls(self)
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 145, in __init__
[pgadmin-0]     self._dbapi_connection = engine.raw_connection()
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 3275, in raw_connection
[pgadmin-0]     return self.pool.connect()
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 455, in connect
[pgadmin-0]     return _ConnectionFairy._checkout(self)
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 1271, in _checkout
[pgadmin-0]     fairy = _ConnectionRecord.checkout(pool)
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 719, in checkout
[pgadmin-0]     rec = pool._do_get()
[pgadmin-0]   File "/venv/lib/python3.10/site-packages/sqlalchemy/pool/impl.py", line 157, in _do_get
[pgadmin-0]     raise exc.TimeoutError(
[pgadmin-0] sqlalchemy.exc.TimeoutError: QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 30.00 (Background on this error at: https://sqlalche.me/e/20/3o7r)
[pgadmin-0] 118.201.248.18 - - [28/Apr/2023:09:03:33 +0000] "GET / HTTP/1.1" 500 206 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.3

Describe the bug

A clear and concise description of what the bug is.

To Reproduce

Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. See the error

Expected behavior

A clear and concise description of what you expected to happen.

Error message

If possible, include the full, unedited text of any error messages displayed.

Screenshots

If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. Windows 10, OSX monterey] Ubuntu
  • Version: [e.g. 6.15] 23.04
  • Mode: [e.g Desktop or Server] Server
  • Browser (if running in server mode): [e.g. chrome, safari] Chrome
  • Package type: [e.g. RPM, DEB, Python, Container, etc.] AWS RDS cluster of 2 nodes.

Additional context

Add any other context about the problem here.

@khteh khteh added the Bug label Apr 28, 2023
@adityatoshniwal
Copy link
Contributor

adityatoshniwal commented Apr 28, 2023

Hi @khteh,
Can you please tell us roughly how many users access your pgAdmin instance simultaneously?

Thanks.

@khteh
Copy link
Author

khteh commented Apr 28, 2023

2

@akshay-joshi
Copy link
Contributor

@khteh

Can you please share the value of CONFIG_DATABASE_URI?

@khteh
Copy link
Author

khteh commented Apr 29, 2023

@khteh

Can you please share the value of CONFIG_DATABASE_URI?

What's this?

@adityatoshniwal
Copy link
Contributor

@khteh
Can you please share the value of CONFIG_DATABASE_URI?

What's this?

Are you using PostgreSQL as your pgAdmin config DB?

@khteh
Copy link
Author

khteh commented May 2, 2023

No.

@adityatoshniwal
Copy link
Contributor

Hi @khteh,

Please share some screenshot/recording on exactly when the error comes.
Also, how did you install pgAdmin on Ubuntu 23?

Thanks.

@khteh
Copy link
Author

khteh commented May 5, 2023

It's k8s Statefulset!

@khteh
Copy link
Author

khteh commented May 8, 2023

It recurs from time to time although AWS RDS console shows less than the magic 5 shown in the stack strace.

@ish1mura
Copy link

Hi!
I am getting the same error.

My configuration:

config_local.py:

# 6432 - direct PG port
CONFIG_DATABASE_URI="postgresql://pgadmin:pwdpwd@pgadmin.my.domain:6432/pgadmin?sslmode=verify-full&sslrootcert=/cacert.pem&sslcert=/certs/server.cert&sslkey=/certs/server.key"
# Tried to add this, but didn't work:
SQLALCHEMY_POOL_SIZE = 20
SQLALCHEMY_MAX_OVERFLOW = 100

pgAdmin works correctly a couple days, but then all pgadmin pages hang during loading and then give and error message QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 30.00

To fix that I have to restart docker container of pgadmin. Also I can't connect pgadmin to pgbouncer because of sqlachemy pooler - it's lost connection to pgadmin DB and forces to relogin.

I tried to get pg_stat_activity during hang and I saw 5 queries like this in state idle in transaction:

SELECT server.id AS server_id, server.user_id AS server_user_id, server.servergroup_id AS server_servergroup_id, server.name AS server_name, server.host AS server_host, server.port AS server_port, server.maintenance_db AS server_maintenance_db, server.username AS server_username, server.password AS server_password, server.save_password AS server_save_password, server.role AS server_role, server.comment AS server_comment, server.discovery_id AS server_discovery_id, server.db_res AS server_db_res, server.passexec_cmd AS server_passexec_cmd, server.passexec_expiration AS server_passexec_expiration, server.bgcolor AS server_bgcolor, server.fgcolor AS server_fgcolor, server.service AS server_service, server.use_ssh_tunnel AS server_use_ssh_tunnel, server.tunnel_host AS server_tunnel_host, server.tunnel_port AS server_tunnel_port, server.tunnel_username AS server_tunnel_username, server.tunnel_authentication AS server_tunnel_authentication, server.tunnel_identity_file AS server_tunnel_identity_file, server.tunnel_

If you get pg_stat_activity during normal work, you will see that above queries hangs in state idle in transaction (look at query_start). If count of this query bacame more 5, error happens.

изображение

@ish1mura
Copy link

Hi!
If count of this query became more 10 (not 5), error happens.
Tried to set parameters in postgresql.conf, maybe it will help:

statement_timeout = 3600000 # in milliseconds, 0 is disabled
idle_in_transaction_session_timeout = 3600000   # in milliseconds, 0 is disabled

2023-06-28 15_26_09-DBeaver 23 1 0 - pgadmin Script-16

@yogeshmahajan-1903
Copy link
Contributor

@ish1mura
Are there any specific steps to reproduce the issue or is it intermittent? We are not able to reproduce the issue.

@ish1mura
Copy link

ish1mura commented Jul 20, 2023

Hi!

pgadmin.zip

OS configuration:

  • VMWare virtual machine
  • Ubuntu 20.04
  • docker-ce/focal,now 5:24.0.4-1ubuntu.20.04focal amd64
  • pgadmin 7.3 (docker)

Files in attached archive are from my configuration (some of data was hidden):

1 ) postgresql.conf - PG cluster config

2 ) pgadmin.sql - SQL dump of my DB

3 ) config-local.py - pdadmin config

4 ) pgadmin-docker.service - systemd service config file to run pgadmin in docker /etc/systemd/system/pgadmin-docker.service

Then run systemctl restart pgadmin-docker

Above 50 users work on my pgAdmin server, they run a lot of queries.

pgAdmin works correctly a couple days, but then all pgadmin pages hang during loading and then give and error message QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 30.00

If you open pgadmin database at this time, you'll see 10+ queries in state idle in transaction:

SELECT server.id AS server_id, server.user_id AS server_user_id, server.servergroup_id AS server_servergroup_id, server.name AS server_name, server.host AS server_host, server.port AS server_port, server.maintenance_db AS server_maintenance_db, server.username AS server_username, server.password AS server_password, server.save_password AS server_save_password, server.role AS server_role, server.comment AS server_comment, server.discovery_id AS server_discovery_id, server.db_res AS server_db_res, server.passexec_cmd AS server_passexec_cmd, server.passexec_expiration AS server_passexec_expiration, server.bgcolor AS server_bgcolor, server.fgcolor AS server_fgcolor, server.service AS server_service, server.use_ssh_tunnel AS server_use_ssh_tunnel, server.tunnel_host AS server_tunnel_host, server.tunnel_port AS server_tunnel_port, server.tunnel_username AS server_tunnel_username, server.tunnel_authentication AS server_tunnel_authentication, server.tunnel_identity_file AS server_tunnel_identity_file, server.tunnel_

For now I fixed that bug by adding /etc/cron.d/pgadmin:

31 * * * *      postgres        psql -p 6432 -c "SELECT pg_terminate_backend(a.pid) FROM pg_stat_activity a WHERE a.state = 'idle in transaction' and current_timestamp - a.query_start > '30min';"

@ish1mura
Copy link

@Arunamanivannan
Copy link

@akshay-joshi @yogeshmahajan-1903 We are also facing the same issue by having the config database as default SQLLITE. Couldnt reproduce the issue so far. May I know whether it is possible to have like this as said here so that the connections it can be controlled by max_connections in target database. Correct me if I am wrong. Thanks.

The pool can be configured to have unlimited overflow by setting create_engine.max_overflow to the value “-1”. With this setting, the pool will still maintain a fixed pool of connections, however it will never block upon a new connection being requested; it will instead unconditionally make a new connection if none are available.

@Arunamanivannan
Copy link

Just FYI, have established 471 DB sessions and made idle from PGadmin to a postgres DB cluster. However, I am not able to reproduce the issue. Could someone help me to understand how to utilize all pool_size=5 & max_overflow=10 DB connections from pool. In our pgadmin pod have found pgadmin process with 25 threads. In that case, am I good to have [(5+10) x 25] = 375 concurrent connections ? In our target database(postgres) parameter idle_in_transaction_session_timeout = 0 (disabled).
image

@ish1mura
Copy link

ish1mura commented Aug 2, 2023

Hi!
I've been upgrade pgadmin to 7.5 docker container.
After upgrade hanging query has changed:

SELECT anon_1.user_id AS anon_1_user_id, anon_1.user_email AS anon_1_user_email, anon_1.user_username AS anon_1_user_username, anon_1.user_password AS anon_1_user_password, anon_1.user_active AS anon_1_user_active, anon_1.user_confirmed_at AS anon_1_user_confirmed_at, anon_1.user_masterpass_check AS anon_1_user_masterpass_check, anon_1.user_auth_source AS anon_1_user_auth_source, anon_1.user_fs_uniquifier AS anon_1_user_fs_uniquifier, anon_1.user_login_attempts AS anon_1_user_login_attempts, anon_1.user_locked AS anon_1_user_locked, role_1.id AS role_1_id, role_1.name AS role_1_name, role_1.description AS role_1_description FROM (SELECT "user".id AS user_id, "user".email AS user_email, "user".username AS user_username, "user".password AS user_password, "user".active AS user_active, "user".confirmed_at AS user_confirmed_at, "user".masterpass_check AS user_masterpass_check, "user".auth_source AS user_auth_source, "user".fs_uniquifier AS user_fs_uniquifier, "user".login_attempts AS user_login_attempts, "user".

At this time there are 8 hanging queries:
изображение

I parsed pgadmin logs and saw that after those queries start time there are an errors:

QUERY WITH START TIME 2023-07-31 09:22:47

2023-07-31 09:23:01,147: ERROR	pgadmin:	<asyncio.locks.Lock object at 0x7f1c0ee2bf50 [unlocked, waiters:1]> is bound to a different event loop
2023-07-31 09:23:03,613: ERROR	pgadmin:	<asyncio.locks.Lock object at 0x7f1c0ee2bf50 [unlocked, waiters:1]> is bound to a different event loop

-----------

QUERY WITH START TIME 2023-07-31 11:22:21

2023-07-31 11:22:25,131: ERROR	pgadmin:	<asyncio.locks.Lock object at 0x7f1c0f1472d0 [unlocked, waiters:1]> is bound to a different event loop

-----------

QUERY WITH START TIME 2023-07-31 12:03:10

2023-07-31 12:04:03,155: ERROR	pgadmin:	<asyncio.locks.Lock object at 0x7f1c265e2190 [unlocked, waiters:1]> is bound to a different event loop
2023-07-31 12:04:04,510: ERROR	pgadmin:	<asyncio.locks.Lock object at 0x7f1c265e2190 [unlocked, waiters:1]> is bound to a different event loop
2023-07-31 12:04:05,336: ERROR	pgadmin:	<asyncio.locks.Lock object at 0x7f1c265e2190 [unlocked, waiters:1]> is bound to a different event loop

-----------

QUERY WITH START TIME 2023-08-01 10:51:00

2023-08-01 10:51:11,634: ERROR	pgadmin:	<asyncio.locks.Lock object at 0x7f1c24265250 [unlocked, waiters:1]> is bound to a different event loop
2023-08-01 10:51:13,081: ERROR	pgadmin:	<asyncio.locks.Lock object at 0x7f1c24265250 [unlocked, waiters:1]> is bound to a different event loop
2023-08-01 10:51:13,716: ERROR	pgadmin:	<asyncio.locks.Lock object at 0x7f1c24265250 [unlocked, waiters:1]> is bound to a different event loop
2023-08-01 10:51:14,441: ERROR	pgadmin:	<asyncio.locks.Lock object at 0x7f1c24265250 [unlocked, waiters:1]> is bound to a different event loop
2023-08-01 10:51:14,885: ERROR	pgadmin:	<asyncio.locks.Lock object at 0x7f1c24265250 [unlocked, waiters:1]> is bound to a different event loop

-----------

QUERY WITH START TIME 2023-08-01 11:59:01

No errors after

-----------

QUERY WITH START TIME 2023-08-01 14:19:36

2023-08-01 14:19:39,964: ERROR	pgadmin:	<asyncio.locks.Lock object at 0x7f1c24267550 [unlocked, waiters:1]> is bound to a different event loop
2023-08-01 14:19:41,639: ERROR	pgadmin:	<asyncio.locks.Lock object at 0x7f1c24267550 [unlocked, waiters:1]> is bound to a different event loop

-----------

QUERY WITH START TIME 2023-08-01 15:26:31

No errors after

-----------

ALL ERRORS HAVE SAME TRACEBACK:

Traceback (most recent call last):
  File "/pgadmin4/pgadmin/utils/driver/psycopg3/cursor.py", line 281, in execute
    return asyncio.run(self._execute(query, params))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/pgadmin4/pgadmin/utils/driver/psycopg3/cursor.py", line 292, in _execute
    return await _async_cursor.execute(self, query, params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/psycopg/cursor_async.py", line 89, in execute
    async with self._conn.lock:
  File "/usr/lib/python3.11/asyncio/locks.py", line 15, in __aenter__
    await self.acquire()
  File "/usr/lib/python3.11/asyncio/locks.py", line 106, in acquire
    fut = self._get_loop().create_future()
          ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/mixins.py", line 20, in _get_loop
    raise RuntimeError(f'{self!r} is bound to a different event loop')
RuntimeError: <asyncio.locks.Lock object at 0x7f1c265e2190 [unlocked, waiters:1]> is bound to a different event loop

Hope it helps!

@ish1mura
Copy link

ish1mura commented Aug 2, 2023

Hi!

How to reproduce this bug

  1. Add "QueryTool" to "Open in new browser tab" in preferences
  2. Open new pgAdmin tab
  3. Run long query (for example, select pg_sleep(2)) and before its complete press F5 button (or macros) many times very fast (run the same query).
  4. When all of this queries complete you can't run any query in this pgAdmin tab - SELECT-queries complete very fast and without result (nothing happens)
  5. If you open another tab and select pg_stat_activity, you'll see hanging query (from previous messages).

Repeat those steps 14 times and you'll see QueryPool error in pgAdmin (rare) or in logs (usually).

pgAdmin will work very slow, new tabs will open and load more than 30 sec.

WHAT TO DO: You must lock F5 hotkey button and macros hotkeys during query running on frontend. Now you lock only menu button.

querypool_reproduce

2023-08-02 22:47:59,096: ERROR  pgadmin:        <asyncio.locks.Lock object at 0x7fbbdfb36c50 [locked, waiters:1]> is bound to a different event loop
Traceback (most recent call last):
  File "/pgadmin4/pgadmin/utils/driver/psycopg3/cursor.py", line 281, in execute
    return asyncio.run(self._execute(query, params))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/pgadmin4/pgadmin/utils/driver/psycopg3/cursor.py", line 292, in _execute
    return await _async_cursor.execute(self, query, params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/psycopg/cursor_async.py", line 89, in execute
    async with self._conn.lock:
  File "/usr/lib/python3.11/asyncio/locks.py", line 15, in __aenter__
    await self.acquire()
  File "/usr/lib/python3.11/asyncio/locks.py", line 106, in acquire
    fut = self._get_loop().create_future()
          ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/mixins.py", line 20, in _get_loop
    raise RuntimeError(f'{self!r} is bound to a different event loop')
RuntimeError: <asyncio.locks.Lock object at 0x7fbbdfb36c50 [locked, waiters:1]> is bound to a different event loop
2023-08-02 22:47:59,223: ERROR  pgadmin:        <asyncio.locks.Lock object at 0x7fbbdfb36c50 [locked, waiters:1]> is bound to a different event loop

@Arunamanivannan
Copy link

@ish1mura Thanks for the details. I have followed the above said steps and received the error message
"Cursor could not be found for the async connection." . But not sure how to see the Queuepool error in the log. Pod logs not showing the stack trace as you mentioned above.

@yogeshmahajan-1903
Copy link
Contributor

@ish1mura
Can you please try with latest snapshot(nightly build) if error is still reproducible?

@yogeshmahajan-1903
Copy link
Contributor

@akshay-joshi @yogeshmahajan-1903 We are also facing the same issue by having the config database as default SQLLITE. Couldnt reproduce the issue so far. May I know whether it is possible to have like this as said here so that the connections it can be controlled by max_connections in target database. Correct me if I am wrong. Thanks.

The pool can be configured to have unlimited overflow by setting create_engine.max_overflow to the value “-1”. With this setting, the pool will still maintain a fixed pool of connections, however it will never block upon a new connection being requested; it will instead unconditionally make a new connection if none are available.

Yes. But currently pgAdmin does not support configuration of pool_size & max_over_low. This solution is under discussion.

adityatoshniwal pushed a commit that referenced this issue Aug 16, 2023
@Fran-Rg
Copy link

Fran-Rg commented Aug 20, 2023

I'm running pgadmin in k8s via this helm chart: https://artifacthub.io/packages/helm/runix/pgadmin4
It is also worth noting that the liveness or readiness probe doesn't pick up this issue and if it happens you must restart manually the service.

@nikhil-mohite
Copy link
Contributor

nikhil-mohite commented Aug 21, 2023

Resolved, Verified on snapshot build: https://www.postgresql.org/ftp/pgadmin/pgadmin4/snapshots/2023-08-21/
OS: macOS (Ventura 13.3)
Tested with 30 query tool instances with long-running queries, and also verified with multiple users in server mode.

@akshay-joshi akshay-joshi added this to the 7.6 milestone Aug 24, 2023
akshay-joshi pushed a commit to akshay-joshi/pgadmin4 that referenced this issue Aug 25, 2023
akshay-joshi pushed a commit to akshay-joshi/pgadmin4 that referenced this issue Aug 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants