pgadmin4 icon indicating copy to clipboard operation
pgadmin4 copied to clipboard

Page unresponsive when filtering objects before database backup in pgAdmin

Open ijaouani opened this issue 4 months ago • 6 comments

Description

When attempting to perform a database backup in the pgAdmin UI and using the Object tab to filter objects, the frontend/browser crashes.

Steps to reproduce:

  1. Open pgAdmin in any supported browser (tested in Chrome, Chrome incognito, and Firefox).
  2. Right click on a db > Backup ...
  3. Navigate to the Objects tab and interact with the checkboxes to filter objects.

Observed behavior

  • The frontend crashes before I have a chance to click on Backup button
  • If the Objects tab is not used, the backup completes successfully.
  • On the backend, only HTTP 200 responses are observed. No requests appear pending on the frontend; it just freezes.
Image

System information

Hosted on Kubernetes using the latest official pgAdmin image. Image

Any guidance or suggestions to troubleshoot this issue would be greatly appreciated.

ijaouani avatar Aug 26 '25 09:08 ijaouani

@ijaouani What is your browser version? Also, what is the approximate db object count in the schema/server?

yogeshmahajan-1903 avatar Aug 26 '25 10:08 yogeshmahajan-1903

@yogeshmahajan-1903

Image Image Image

Also the pgadmin chrome tab is completly crazy :

Image

=> 4Go of ram

ijaouani avatar Aug 26 '25 10:08 ijaouani

@ijaouani I am not able to reproduce the issue. What is your client machine configuration (CPU, memory)? Also, can you please share the pgadmin logs?

yogeshmahajan-1903 avatar Aug 27 '25 04:08 yogeshmahajan-1903

@yogeshmahajan-1903

Client config :

Image

Another colleague on mac os face the same issue.

Server config :

apiVersion: v1
kind: ConfigMap
metadata:
  name: pgadmin-cm
  namespace: pgadmin
data:
  servers.json: |
    {
        "Servers": {
          "1": {
            "Name": "Test PostgreSQL DB - RO (User: <REDACTED>)",
            "Group": "Servers",
            "Port": 5432,
            "Username": "<REDACTED>",
            "Host": "<REDACTED_HOST>",
            "SSLMode": "prefer",
            "MaintenanceDB": "postgres",
            "Shared": true,
            "SharedUsername": "<REDACTED>"
          },
          "2": {
            "Name": "Test PostgreSQL DB - RW (User: <REDACTED>)",
            "Group": "Servers",
            "Port": 5432,
            "Username": "<REDACTED>",
            "Host": "<REDACTED_HOST>",
            "SSLMode": "prefer",
            "MaintenanceDB": "postgres",
            "Shared": true,
            "SharedUsername": "<REDACTED>"
          },
          "3":{
            "Name": "Test PostgreSQL DB - RW (User: <REDACTED>)",
            "Group": "Servers",
            "Port": 5432,
            "Username": "<REDACTED>",
            "Host": "<REDACTED_HOST>",
            "SSLMode": "prefer",
            "MaintenanceDB": "postgres",
            "Shared": true,
            "SharedUsername": "<REDACTED>"
          }
        }
    }
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: pgadmin-deployment
  namespace: pgadmin
spec:
  selector:
    matchLabels:
      app: pgadmin
  template:
    metadata:
      labels:
        app: pgadmin
    spec:
      containers:
        - name: pgadmin
          image: dpage/pgadmin4:latest
          env:
            - name: PGADMIN_DEFAULT_EMAIL
              value: "<REDACTED_EMAIL>"
            - name: PGADMIN_DEFAULT_PASSWORD
              value: "<REDACTED_PASSWORD>"
            - name: PGADMIN_CONFIG_AUTHENTICATION_SOURCES
              value: "['oauth2', 'internal']"
            - name: PGADMIN_CONFIG_OAUTH2_AUTO_CREATE_USER
              value: "True"
            - name: PGADMIN_CONFIG_ALLOW_SAVE_PASSWORD
              value: "False"
            - name: PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED
              value: "False"
            - name: PGADMIN_CONFIG_OAUTH2_CONFIG
              value: |
                [{
                  'OAUTH2_NAME': 'gitlab',
                  'OAUTH2_DISPLAY_NAME': 'GitLab',
                  'OAUTH2_CLIENT_ID': '<REDACTED_CLIENT_ID>',
                  'OAUTH2_CLIENT_SECRET': '<REDACTED_CLIENT_SECRET>',
                  'OAUTH2_TOKEN_URL': 'https://gitlab.com/oauth/token',
                  'OAUTH2_AUTHORIZATION_URL': 'https://gitlab.com/oauth/authorize',
                  'OAUTH2_SERVER_METADATA_URL': 'https://gitlab.com/.well-known/openid-configuration',
                  'OAUTH2_API_BASE_URL': 'https://gitlab.com/oauth/',
                  'OAUTH2_USERINFO_ENDPOINT': 'userinfo',
                  'OAUTH2_SCOPE': 'openid email profile',
                  'OAUTH2_ICON': 'fa-gitlab',
                  'OAUTH2_BUTTON_COLOR': '#E24329',
                  'OAUTH2_ADDITIONAL_CLAIMS': {
                    'groups': [
                      '<REDACTED_GROUP>'
                    ]
                  }
                }]
          resources:
            requests:
              memory: "128Mi"
              cpu: "250m"
            limits:
              memory: "512Mi"
              cpu: "1000m"
          ports:
            - containerPort: 80
          volumeMounts:
            - name: pgadmin-config
              mountPath: /pgadmin4/servers.json
              subPath: servers.json
              readOnly: true
      volumes:
        - name: pgadmin-config
          configMap:
            name: pgadmin-cm
<REDACTED_IP> - - [27/Aug/2025:07:43:40 +0000] "GET /browser/server_group/children/1 HTTP/1.1" 200 435 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:43:42 +0000] "GET /browser/server/obj/1/3 HTTP/1.1" 200 512 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:43:42 +0000] "GET /browser/server_group/nodes/ HTTP/1.1" 200 430 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:43:42 +0000] "POST /browser/server/connect/1/3 HTTP/1.1" 428 228 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:43:47 +0000] "POST /browser/server/connect/1/3 HTTP/1.1" 200 495 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:43:47 +0000] "GET /dashboard/dashboard_stats/3?chart_names=session_stats,tps_stats,ti_stats,to_stats,bio_stats HTTP/1.1" 200 299 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:43:47 +0000] "GET /dashboard/dashboard_stats/3?chart_names= HTTP/1.1" 200 2 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:43:47 +0000] "GET /browser/server/children/1/3 HTTP/1.1" 200 233 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:43:50 +0000] "GET /browser/database/nodes/1/3/ HTTP/1.1" 200 316 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:43:51 +0000] "GET /browser/database/children/1/3/14908005 HTTP/1.1" 200 438 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:43:51 +0000] "POST /browser/database/connect/1/3/14908005 HTTP/1.1" 200 214 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:43:51 +0000] "GET /dashboard/dashboard_stats/3/14908005?chart_names= HTTP/1.1" 200 2 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:43:51 +0000] "GET /dashboard/dashboard_stats/3/14908005?chart_names=session_stats,tps_stats,ti_stats,to_stats,bio_stats HTTP/1.1" 200 299 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:43:57 +0000] "GET /dashboard/dashboard_stats/3/14908005?chart_names=session_stats,tps_stats,ti_stats,to_stats,bio_stats HTTP/1.1" 200 299 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:43:57 +0000] "POST /settings/save_tree_state/ HTTP/1.1" 200 63 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:43:57 +0000] "GET /settings/get_tree_state/ HTTP/1.1" 200 243 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:43:59 +0000] "GET /backup/utility_exists/3/objects HTTP/1.1" 200 63 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:43:59 +0000] "POST /settings/store HTTP/1.1" 200 77 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:43:59 +0000] "GET /browser/database/get_encodings/1/3/ HTTP/1.1" 200 382 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:43:59 +0000] "GET /browser/role/nodes/1/3/ HTTP/1.1" 200 6248 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:43:59 +0000] "GET /backup/objects/3/14908005 HTTP/1.1" 200 4106 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:44:02 +0000] "GET /dashboard/dashboard_stats/3/14908005?chart_names=session_stats,tps_stats,ti_stats,to_stats,bio_stats HTTP/1.1" 200 299 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:44:07 +0000] "GET /dashboard/dashboard_stats/3/14908005?chart_names=session_stats,tps_stats,ti_stats,to_stats,bio_stats HTTP/1.1" 200 299 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:44:08 +0000] "POST /misc/heartbeat/log HTTP/1.1" 200 91 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:44:08 +0000] "GET /dashboard/dashboard_stats/1/14908005?chart_names=session_stats,tps_stats,ti_stats,to_stats,bio_stats HTTP/1.1" 200 298 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:44:11 +0000] "GET /dashboard/dashboard_stats/3/14908005?chart_names= HTTP/1.1" 200 2 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:44:17 +0000] "GET /dashboard/dashboard_stats/3/14908005?chart_names=session_stats,tps_stats,ti_stats,to_stats,bio_stats HTTP/1.1" 200 299 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:44:17 +0000] "POST /misc/heartbeat/log HTTP/1.1" 200 91 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
<REDACTED_IP> - - [27/Aug/2025:07:44:22 +0000] "GET /dashboard/dashboard_stats/3/14908005?chart_names=session_stats,tps_stats,ti_stats,to_stats,bio_stats HTTP/1.1" 200 299 "https://<REDACTED_DOMAIN>/browser/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"

ijaouani avatar Aug 27 '25 07:08 ijaouani

@ijaouani Can you please try closing the dashboard tab and try the same operation again? Does it work fine?

yogeshmahajan-1903 avatar Aug 27 '25 11:08 yogeshmahajan-1903

@yogeshmahajan-1903 closing the dashboard tab reduce a lot the number of logs backend side but the issue is still the same. It seems really frontend related.

ijaouani avatar Aug 28 '25 08:08 ijaouani