最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

docker compose - gitlab-backup restore doesn't restore git-data - Stack Overflow

programmeradmin0浏览0评论

I'm using docker swarm. docker-compose.yml:

version: '3'
services:
  gitlab:
    image: gitlab/gitlab-ee:17.8.1-ee.0
    hostname: 'git.***'
    ports:
      - target: 22
        published: 2222
        protocol: tcp
        mode: host
    networks:
      - public
      - gitlab-postgres
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://***.***'
        nginx['redirect_http_to_https'] = false
        nginx['listen_port'] = 80
        nginx['listen_https'] = false
        nginx['proxy_set_headers'] = {
          "X-Forwarded-Proto" => "https",
          "X-Forwarded-Ssl" => "on"
        }
        gitlab_rails['omniauth_enabled'] = true
        gitlab_rails['omniauth_providers'] = [ <keycloak settings> ]
        gitlab_rails['omniauth_auto_link_user'] = ['openid_connect']
        gitlab_rails['omniauth_allow_single_sign_on'] = ['openid_connect']
        gitlab_rails['omniauth_block_auto_created_users'] = false
        puma['worker_processes'] = 0
        sidekiq['concurrency'] = 10
        prometheus_monitoring['enable'] = false
        gitlab_rails['env'] = {
          'MALLOC_CONF' => 'dirty_decay_ms:1000,muzzy_decay_ms:1000'
        }
        gitlab_rails['db_adapter'] = 'postgresql'
        gitlab_rails['db_encoding'] = 'utf8'
        postgresql['enable'] = false
        gitlab_rails['db_host'] = 'postgres'
        gitlab_rails['db_port'] = 5432
        gitlab_rails['db_username'] = 'gitlab'
        gitlab_rails['db_password'] = '***'
        gitlab_rails['db_database'] = 'gitlabhq_production'

    volumes:
      - type: tmpfs
        target: /dev/shm
        tmpfs:
          size: 4096000000
      - gitlab-config:/etc/gitlab
      - gitlab-data:/var/opt/gitlab
    deploy:
      labels:
        <TRAEFIC LABELS>
      restart_policy:
        condition: on-failure
        delay: 10s
    healthcheck:
      disable: true
    depends_on:
      - postgres

  postgres:
    image: postgres:14.11
    environment:
      POSTGRES_DB: gitlabhq_production
      POSTGRES_USER: gitlab
      POSTGRES_PASSWORD: ***
      POSTGRES_HOST_AUTH_METHOD: md5
    volumes:
      - gitlab-postgres-data:/var/lib/postgresql/data
    networks:
      - gitlab-postgres
    deploy:
      restart_policy:
        condition: any


networks:
  public:
    external: true
  gitlab-postgres:
    external: false

volumes:
  gitlab-config:
    driver: cephfs
    driver_opts:
      remote_path: /volumes/default/services/92aa9143-bdc7-4e1f-9dde-63ede1ac0904/docker/ceph-gitlab-config
  gitlab-data:
    driver: cephfs
    driver_opts:
      remote_path: /volumes/default/services/92aa9143-bdc7-4e1f-9dde-63ede1ac0904/docker/ceph-gitlab-data
  gitlab-postgres-data:
    driver: cephfs
    driver_opts:
      remote_path: /volumes/default/services/92aa9143-bdc7-4e1f-9dde-63ede1ac0904/docker/ceph-gitlab-postgres-data

I create a backup with the command docker exec -t $CONTAINER_ID gitlab-backup create. When restoring, I follow the official instructions from docs.gitlab:

docker exec -it <container_id> gitlab-ctl stop puma
docker exec -it <container_id> gitlab-ctl stop sidekiq
docker exec -it <container_id> gitlab-backup restore BACKUP=<backup_name>

During the restore process, errors are displayed (ActiveRecord::StatementInvalid: PG::ConnectionBad: PQsocket() can't get socket descriptor) in the end of restoring the postgres table:

2025-01-30 13:41:12 UTC -- Unpacking backup ...
2025-01-30 13:41:12 UTC -- Unpacking backup ... done
2025-01-30 13:41:12 UTC -- Restoring database ...
2025-01-30 13:41:12 UTC -- Be sure to stop Puma, Sidekiq, and any other process that
connects to the database before proceeding. For Omnibus
installs, see the following link for more information:

Do you want to continue (yes/no)? yes
2025-01-30 13:41:21 UTC -- Removing all tables. Press `Ctrl-C` within 5 seconds to abort
2025-01-30 13:41:26 UTC -- Cleaning the database ...
2025-01-30 13:43:19 UTC -- done
2025-01-30 13:43:19 UTC -- Restoring PostgreSQL database gitlabhq_production ...
SET
... filling the database with data from backup ...
ALTER TABLE
2025-01-30 14:27:04 UTC -- [DONE]
2025-01-30 14:27:04 UTC -- Source backup for the database ci doesn't exist. Skipping the task
2025-01-30 14:27:04 UTC -- Restoring database ... done
2025-01-30 14:27:04 UTC -- Restoring repositories ...
2025-01-30 14:27:04 UTC -- Deleting tar staging files ...
2025-01-30 14:27:04 UTC -- Cleaning up /var/opt/gitlab/backups/backup_information.yml
2025-01-30 14:27:04 UTC -- Cleaning up /var/opt/gitlab/backups/db
2025-01-30 14:27:04 UTC -- Cleaning up /var/opt/gitlab/backups/repositories
2025-01-30 14:27:14 UTC -- Cleaning up /var/opt/gitlab/backups/uploads.tar.gz
2025-01-30 14:27:14 UTC -- Cleaning up /var/opt/gitlab/backups/builds.tar.gz
2025-01-30 14:27:14 UTC -- Cleaning up /var/opt/gitlab/backups/artifacts.tar.gz
2025-01-30 14:27:14 UTC -- Cleaning up /var/opt/gitlab/backups/pages.tar.gz
2025-01-30 14:27:14 UTC -- Cleaning up /var/opt/gitlab/backups/lfs.tar.gz
2025-01-30 14:27:14 UTC -- Cleaning up /var/opt/gitlab/backups/terraform_state.tar.gz
2025-01-30 14:27:14 UTC -- Cleaning up /var/opt/gitlab/backups/packages.tar.gz
2025-01-30 14:27:14 UTC -- Cleaning up /var/opt/gitlab/backups/ci_secure_files.tar.gz
2025-01-30 14:27:14 UTC -- Cleaning up /var/opt/gitlab/backups/external_diffs.tar.gz
2025-01-30 14:27:14 UTC -- Deleting tar staging files ... done
2025-01-30 14:27:14 UTC -- Deleting backups/tmp ...
2025-01-30 14:27:14 UTC -- Deleting backups/tmp ... done
2025-01-30 14:27:14 UTC -- Deleting backup and restore PID file ... done
rake aborted!
ActiveRecord::StatementInvalid: PG::ConnectionBad: PQsocket() can't get socket descriptor
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_cache_with_renamed_table_legacy.rb:27:in `             columns'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_cache_with_renamed_table_legacy.rb:31:in `             columns_hash'
/opt/gitlab/embedded/service/gitlab-rails/app/models/pool_repository.rb:23:in `<class:PoolRepository>'
/opt/gitlab/embedded/service/gitlab-rails/app/models/pool_repository.rb:6:in `<top (required)>'
<internal:/opt/gitlab/embedded/lib/ruby/site_ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/opt/gitlab/embedded/lib/ruby/site_ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/targets/repositories.rb:128:in `restore_object_pools'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/targets/repositories.rb:48:in `ensure in restore'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/targets/repositories.rb:48:in `restore'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/tasks/task.rb:31:in `restore!'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/restore/process.rb:30:in `execute!'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:101:in `run_restore_task'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:168:in `block in run_all_restore_tasks'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:165:in `each_value'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:165:in `run_all_restore_tasks'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:68:in `restore'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:21:in `block in restore_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:75:in `lock_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:18:in `restore_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:120:in `block (3 levels) in <top (requir             ed)>'
/opt/gitlab/embedded/bin/bundle:25:in `load'
/opt/gitlab/embedded/bin/bundle:25:in `<main>'

Caused by:
PG::ConnectionBad: PQsocket() can't get socket descriptor
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_cache_with_renamed_table_legacy.rb:27:in `             columns'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_cache_with_renamed_table_legacy.rb:31:in `             columns_hash'
/opt/gitlab/embedded/service/gitlab-rails/app/models/pool_repository.rb:23:in `<class:PoolRepository>'
/opt/gitlab/embedded/service/gitlab-rails/app/models/pool_repository.rb:6:in `<top (required)>'
<internal:/opt/gitlab/embedded/lib/ruby/site_ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/opt/gitlab/embedded/lib/ruby/site_ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/targets/repositories.rb:128:in `restore_object_pools'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/targets/repositories.rb:48:in `ensure in restore'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/targets/repositories.rb:48:in `restore'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/tasks/task.rb:31:in `restore!'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/restore/process.rb:30:in `execute!'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:101:in `run_restore_task'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:168:in `block in run_all_restore_tasks'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:165:in `each_value'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:165:in `run_all_restore_tasks'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:68:in `restore'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:21:in `block in restore_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:75:in `lock_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:18:in `restore_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:120:in `block (3 levels) in <top (requir             ed)>'
/opt/gitlab/embedded/bin/bundle:25:in `load'
/opt/gitlab/embedded/bin/bundle:25:in `<main>'

Caused by:
ActiveRecord::StatementInvalid: PG::ConnectionBad: PQconsumeInput() server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_cache_with_renamed_table_legacy.rb:27:in `             columns'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_cache_with_renamed_table_legacy.rb:31:in `             columns_hash'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/ee/backup/targets/repositories.rb:12:in `group_relation'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/ee/backup/targets/repositories.rb:19:in `find_groups_in_batche             s'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/ee/backup/targets/repositories.rb:37:in `enqueue_consecutive_g             roups'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/ee/backup/targets/repositories.rb:31:in `enqueue_consecutive'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/targets/repositories.rb:43:in `restore'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/tasks/task.rb:31:in `restore!'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/restore/process.rb:30:in `execute!'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:101:in `run_restore_task'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:168:in `block in run_all_restore_tasks'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:165:in `each_value'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:165:in `run_all_restore_tasks'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:68:in `restore'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:21:in `block in restore_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:75:in `lock_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:18:in `restore_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:120:in `block (3 levels) in <top (requir             ed)>'
/opt/gitlab/embedded/bin/bundle:25:in `load'
/opt/gitlab/embedded/bin/bundle:25:in `<main>'

Caused by:
PG::ConnectionBad: PQconsumeInput() server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_cache_with_renamed_table_legacy.rb:27:in `             columns'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_cache_with_renamed_table_legacy.rb:31:in `             columns_hash'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/ee/backup/targets/repositories.rb:12:in `group_relation'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/ee/backup/targets/repositories.rb:19:in `find_groups_in_batche             s'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/ee/backup/targets/repositories.rb:37:in `enqueue_consecutive_g             roups'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/ee/backup/targets/repositories.rb:31:in `enqueue_consecutive'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/targets/repositories.rb:43:in `restore'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/tasks/task.rb:31:in `restore!'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/restore/process.rb:30:in `execute!'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:101:in `run_restore_task'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:168:in `block in run_all_restore_tasks'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:165:in `each_value'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:165:in `run_all_restore_tasks'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:68:in `restore'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:21:in `block in restore_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:75:in `lock_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:18:in `restore_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:120:in `block (3 levels) in <top (requir             ed)>'
/opt/gitlab/embedded/bin/bundle:25:in `load'
/opt/gitlab/embedded/bin/bundle:25:in `<main>'
Tasks: TOP => gitlab:backup:restore
(See full trace by running task with --trace)

There is git repository data in the backup file, but it is not restored to git-data. backup-file:

backup_information.yml
db/
db/database.sql.gz
repositories/default/@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.git/1738579720_2025_02_03_17.8.1-ee/001.refs
repositories/default/@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.git/1738579720_2025_02_03_17.8.1-ee/001.bundle
repositories/default/@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.wiki.git/
repositories/default/@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.wiki.git/1738579720_2025_02_03_17.8.1-ee/
repositories/default/@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.wiki.git/1738579720_2025_02_03_17.8.1-ee/001.refs
repositories/manifests/default/@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.git/+latest.toml
repositories/manifests/default/@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.git/1738579720_2025_02_03_17.8.1-ee.toml
repositories/manifests/default/@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.wiki.git/+latest.toml
repositories/manifests/default/@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.wiki.git/1738579720_2025_02_03_17.8.1-ee.toml
uploads.tar.gz
builds.tar.gz
artifacts.tar.gz
pages.tar.gz
lfs.tar.gz
terraform_state.tar.gz
packages.tar.gz
ci_secure_files.tar.gz
external_diffs.tar.gz

git-data after restore:

root@git:/# ls -la /var/opt/gitlab/git-data/repositories/
total 1
drwx--S--- 3 git  git   1 Feb  3 10:58 +gitaly
drwxrws--- 3 git  git   2 Feb  3 10:58 .
drwxr-xr-x 3 root root  1 Feb  3 10:58 ..
-rw------- 1 git  git  64 Feb  3 10:58 .gitaly-metadata

It's not because of GL version - i checked it with 17.2 - same error. Tried to find a similar problem in docs.gitlab, google and ask GPT/DS but couldn't find a working solution.

I'm using docker swarm. docker-compose.yml:

version: '3'
services:
  gitlab:
    image: gitlab/gitlab-ee:17.8.1-ee.0
    hostname: 'git.***'
    ports:
      - target: 22
        published: 2222
        protocol: tcp
        mode: host
    networks:
      - public
      - gitlab-postgres
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://***.***'
        nginx['redirect_http_to_https'] = false
        nginx['listen_port'] = 80
        nginx['listen_https'] = false
        nginx['proxy_set_headers'] = {
          "X-Forwarded-Proto" => "https",
          "X-Forwarded-Ssl" => "on"
        }
        gitlab_rails['omniauth_enabled'] = true
        gitlab_rails['omniauth_providers'] = [ <keycloak settings> ]
        gitlab_rails['omniauth_auto_link_user'] = ['openid_connect']
        gitlab_rails['omniauth_allow_single_sign_on'] = ['openid_connect']
        gitlab_rails['omniauth_block_auto_created_users'] = false
        puma['worker_processes'] = 0
        sidekiq['concurrency'] = 10
        prometheus_monitoring['enable'] = false
        gitlab_rails['env'] = {
          'MALLOC_CONF' => 'dirty_decay_ms:1000,muzzy_decay_ms:1000'
        }
        gitlab_rails['db_adapter'] = 'postgresql'
        gitlab_rails['db_encoding'] = 'utf8'
        postgresql['enable'] = false
        gitlab_rails['db_host'] = 'postgres'
        gitlab_rails['db_port'] = 5432
        gitlab_rails['db_username'] = 'gitlab'
        gitlab_rails['db_password'] = '***'
        gitlab_rails['db_database'] = 'gitlabhq_production'

    volumes:
      - type: tmpfs
        target: /dev/shm
        tmpfs:
          size: 4096000000
      - gitlab-config:/etc/gitlab
      - gitlab-data:/var/opt/gitlab
    deploy:
      labels:
        <TRAEFIC LABELS>
      restart_policy:
        condition: on-failure
        delay: 10s
    healthcheck:
      disable: true
    depends_on:
      - postgres

  postgres:
    image: postgres:14.11
    environment:
      POSTGRES_DB: gitlabhq_production
      POSTGRES_USER: gitlab
      POSTGRES_PASSWORD: ***
      POSTGRES_HOST_AUTH_METHOD: md5
    volumes:
      - gitlab-postgres-data:/var/lib/postgresql/data
    networks:
      - gitlab-postgres
    deploy:
      restart_policy:
        condition: any


networks:
  public:
    external: true
  gitlab-postgres:
    external: false

volumes:
  gitlab-config:
    driver: cephfs
    driver_opts:
      remote_path: /volumes/default/services/92aa9143-bdc7-4e1f-9dde-63ede1ac0904/docker/ceph-gitlab-config
  gitlab-data:
    driver: cephfs
    driver_opts:
      remote_path: /volumes/default/services/92aa9143-bdc7-4e1f-9dde-63ede1ac0904/docker/ceph-gitlab-data
  gitlab-postgres-data:
    driver: cephfs
    driver_opts:
      remote_path: /volumes/default/services/92aa9143-bdc7-4e1f-9dde-63ede1ac0904/docker/ceph-gitlab-postgres-data

I create a backup with the command docker exec -t $CONTAINER_ID gitlab-backup create. When restoring, I follow the official instructions from docs.gitlab:

docker exec -it <container_id> gitlab-ctl stop puma
docker exec -it <container_id> gitlab-ctl stop sidekiq
docker exec -it <container_id> gitlab-backup restore BACKUP=<backup_name>

During the restore process, errors are displayed (ActiveRecord::StatementInvalid: PG::ConnectionBad: PQsocket() can't get socket descriptor) in the end of restoring the postgres table:

2025-01-30 13:41:12 UTC -- Unpacking backup ...
2025-01-30 13:41:12 UTC -- Unpacking backup ... done
2025-01-30 13:41:12 UTC -- Restoring database ...
2025-01-30 13:41:12 UTC -- Be sure to stop Puma, Sidekiq, and any other process that
connects to the database before proceeding. For Omnibus
installs, see the following link for more information:

Do you want to continue (yes/no)? yes
2025-01-30 13:41:21 UTC -- Removing all tables. Press `Ctrl-C` within 5 seconds to abort
2025-01-30 13:41:26 UTC -- Cleaning the database ...
2025-01-30 13:43:19 UTC -- done
2025-01-30 13:43:19 UTC -- Restoring PostgreSQL database gitlabhq_production ...
SET
... filling the database with data from backup ...
ALTER TABLE
2025-01-30 14:27:04 UTC -- [DONE]
2025-01-30 14:27:04 UTC -- Source backup for the database ci doesn't exist. Skipping the task
2025-01-30 14:27:04 UTC -- Restoring database ... done
2025-01-30 14:27:04 UTC -- Restoring repositories ...
2025-01-30 14:27:04 UTC -- Deleting tar staging files ...
2025-01-30 14:27:04 UTC -- Cleaning up /var/opt/gitlab/backups/backup_information.yml
2025-01-30 14:27:04 UTC -- Cleaning up /var/opt/gitlab/backups/db
2025-01-30 14:27:04 UTC -- Cleaning up /var/opt/gitlab/backups/repositories
2025-01-30 14:27:14 UTC -- Cleaning up /var/opt/gitlab/backups/uploads.tar.gz
2025-01-30 14:27:14 UTC -- Cleaning up /var/opt/gitlab/backups/builds.tar.gz
2025-01-30 14:27:14 UTC -- Cleaning up /var/opt/gitlab/backups/artifacts.tar.gz
2025-01-30 14:27:14 UTC -- Cleaning up /var/opt/gitlab/backups/pages.tar.gz
2025-01-30 14:27:14 UTC -- Cleaning up /var/opt/gitlab/backups/lfs.tar.gz
2025-01-30 14:27:14 UTC -- Cleaning up /var/opt/gitlab/backups/terraform_state.tar.gz
2025-01-30 14:27:14 UTC -- Cleaning up /var/opt/gitlab/backups/packages.tar.gz
2025-01-30 14:27:14 UTC -- Cleaning up /var/opt/gitlab/backups/ci_secure_files.tar.gz
2025-01-30 14:27:14 UTC -- Cleaning up /var/opt/gitlab/backups/external_diffs.tar.gz
2025-01-30 14:27:14 UTC -- Deleting tar staging files ... done
2025-01-30 14:27:14 UTC -- Deleting backups/tmp ...
2025-01-30 14:27:14 UTC -- Deleting backups/tmp ... done
2025-01-30 14:27:14 UTC -- Deleting backup and restore PID file ... done
rake aborted!
ActiveRecord::StatementInvalid: PG::ConnectionBad: PQsocket() can't get socket descriptor
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_cache_with_renamed_table_legacy.rb:27:in `             columns'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_cache_with_renamed_table_legacy.rb:31:in `             columns_hash'
/opt/gitlab/embedded/service/gitlab-rails/app/models/pool_repository.rb:23:in `<class:PoolRepository>'
/opt/gitlab/embedded/service/gitlab-rails/app/models/pool_repository.rb:6:in `<top (required)>'
<internal:/opt/gitlab/embedded/lib/ruby/site_ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/opt/gitlab/embedded/lib/ruby/site_ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/targets/repositories.rb:128:in `restore_object_pools'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/targets/repositories.rb:48:in `ensure in restore'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/targets/repositories.rb:48:in `restore'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/tasks/task.rb:31:in `restore!'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/restore/process.rb:30:in `execute!'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:101:in `run_restore_task'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:168:in `block in run_all_restore_tasks'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:165:in `each_value'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:165:in `run_all_restore_tasks'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:68:in `restore'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:21:in `block in restore_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:75:in `lock_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:18:in `restore_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:120:in `block (3 levels) in <top (requir             ed)>'
/opt/gitlab/embedded/bin/bundle:25:in `load'
/opt/gitlab/embedded/bin/bundle:25:in `<main>'

Caused by:
PG::ConnectionBad: PQsocket() can't get socket descriptor
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_cache_with_renamed_table_legacy.rb:27:in `             columns'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_cache_with_renamed_table_legacy.rb:31:in `             columns_hash'
/opt/gitlab/embedded/service/gitlab-rails/app/models/pool_repository.rb:23:in `<class:PoolRepository>'
/opt/gitlab/embedded/service/gitlab-rails/app/models/pool_repository.rb:6:in `<top (required)>'
<internal:/opt/gitlab/embedded/lib/ruby/site_ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/opt/gitlab/embedded/lib/ruby/site_ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/targets/repositories.rb:128:in `restore_object_pools'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/targets/repositories.rb:48:in `ensure in restore'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/targets/repositories.rb:48:in `restore'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/tasks/task.rb:31:in `restore!'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/restore/process.rb:30:in `execute!'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:101:in `run_restore_task'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:168:in `block in run_all_restore_tasks'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:165:in `each_value'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:165:in `run_all_restore_tasks'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:68:in `restore'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:21:in `block in restore_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:75:in `lock_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:18:in `restore_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:120:in `block (3 levels) in <top (requir             ed)>'
/opt/gitlab/embedded/bin/bundle:25:in `load'
/opt/gitlab/embedded/bin/bundle:25:in `<main>'

Caused by:
ActiveRecord::StatementInvalid: PG::ConnectionBad: PQconsumeInput() server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_cache_with_renamed_table_legacy.rb:27:in `             columns'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_cache_with_renamed_table_legacy.rb:31:in `             columns_hash'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/ee/backup/targets/repositories.rb:12:in `group_relation'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/ee/backup/targets/repositories.rb:19:in `find_groups_in_batche             s'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/ee/backup/targets/repositories.rb:37:in `enqueue_consecutive_g             roups'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/ee/backup/targets/repositories.rb:31:in `enqueue_consecutive'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/targets/repositories.rb:43:in `restore'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/tasks/task.rb:31:in `restore!'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/restore/process.rb:30:in `execute!'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:101:in `run_restore_task'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:168:in `block in run_all_restore_tasks'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:165:in `each_value'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:165:in `run_all_restore_tasks'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:68:in `restore'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:21:in `block in restore_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:75:in `lock_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:18:in `restore_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:120:in `block (3 levels) in <top (requir             ed)>'
/opt/gitlab/embedded/bin/bundle:25:in `load'
/opt/gitlab/embedded/bin/bundle:25:in `<main>'

Caused by:
PG::ConnectionBad: PQconsumeInput() server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_cache_with_renamed_table_legacy.rb:27:in `             columns'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/schema_cache_with_renamed_table_legacy.rb:31:in `             columns_hash'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/ee/backup/targets/repositories.rb:12:in `group_relation'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/ee/backup/targets/repositories.rb:19:in `find_groups_in_batche             s'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/ee/backup/targets/repositories.rb:37:in `enqueue_consecutive_g             roups'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/ee/backup/targets/repositories.rb:31:in `enqueue_consecutive'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/targets/repositories.rb:43:in `restore'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/tasks/task.rb:31:in `restore!'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/restore/process.rb:30:in `execute!'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:101:in `run_restore_task'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:168:in `block in run_all_restore_tasks'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:165:in `each_value'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:165:in `run_all_restore_tasks'
/opt/gitlab/embedded/service/gitlab-rails/lib/backup/manager.rb:68:in `restore'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:21:in `block in restore_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:75:in `lock_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:18:in `restore_backup'
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:120:in `block (3 levels) in <top (requir             ed)>'
/opt/gitlab/embedded/bin/bundle:25:in `load'
/opt/gitlab/embedded/bin/bundle:25:in `<main>'
Tasks: TOP => gitlab:backup:restore
(See full trace by running task with --trace)

There is git repository data in the backup file, but it is not restored to git-data. backup-file:

backup_information.yml
db/
db/database.sql.gz
repositories/default/@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.git/1738579720_2025_02_03_17.8.1-ee/001.refs
repositories/default/@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.git/1738579720_2025_02_03_17.8.1-ee/001.bundle
repositories/default/@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.wiki.git/
repositories/default/@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.wiki.git/1738579720_2025_02_03_17.8.1-ee/
repositories/default/@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.wiki.git/1738579720_2025_02_03_17.8.1-ee/001.refs
repositories/manifests/default/@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.git/+latest.toml
repositories/manifests/default/@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.git/1738579720_2025_02_03_17.8.1-ee.toml
repositories/manifests/default/@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.wiki.git/+latest.toml
repositories/manifests/default/@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.wiki.git/1738579720_2025_02_03_17.8.1-ee.toml
uploads.tar.gz
builds.tar.gz
artifacts.tar.gz
pages.tar.gz
lfs.tar.gz
terraform_state.tar.gz
packages.tar.gz
ci_secure_files.tar.gz
external_diffs.tar.gz

git-data after restore:

root@git:/# ls -la /var/opt/gitlab/git-data/repositories/
total 1
drwx--S--- 3 git  git   1 Feb  3 10:58 +gitaly
drwxrws--- 3 git  git   2 Feb  3 10:58 .
drwxr-xr-x 3 root root  1 Feb  3 10:58 ..
-rw------- 1 git  git  64 Feb  3 10:58 .gitaly-metadata

It's not because of GL version - i checked it with 17.2 - same error. Tried to find a similar problem in docs.gitlab, google and ask GPT/DS but couldn't find a working solution.

Share Improve this question asked Feb 3 at 15:53 Gutt0Gutt0 211 silver badge4 bronze badges 1
  • GL is loading, user data is loading except for avatars. The list of repositories is also visible, but opening a repository displays “No repository”. – Gutt0 Commented Feb 3 at 16:14
Add a comment  | 

1 Answer 1

Reset to default 1

We figured out the problem. It was a matter of slow ceph. When deploying to local volume, recovery from backup is much faster, connection to PG did not have time to reset, it allowed to avoid errors during recovery.

Conclusion: if necessary, increase the time to maintain connection with PG or optimize the speed of your storage.

发布评论

评论列表(0)

  1. 暂无评论