Problem to solve
We have a self-managed enterprise edition. We upgraded from 18.1 to 18.4 (two steps). The next week we noticed a lot of intermittent Error 500. A count of Error 500 in the NginX logs show almost zero until the day of the upgrade. After that it was around 3000/day.
The applications hitting Gitlab show errors from git pull/fetch/clone. This even occurs intermittently when doing a git clone on a command line so it is not linked to the application. We looked in the gitlab-rails/exceptions_json.log and found error about connection pools. How can we address this?
[details=âActiveRecord::ConnectionNotEstablishedâ,âexception.messageâ:âNo connection pool for âActiveRecord::Baseâ found.â] {âseverityâ:âERRORâ,âtimeâ:â2025-10-02T21:49:26.515Zâ,âcorrelation_idâ:â01K6KEDJ3BKR2BNRW6464NATQNâ,âexception.classâ:âActiveRecord::ConnectionNotEstablishedâ,âexception.messageâ:âNo connection pool for âActiveRecord::Baseâ found.â,âexception.backtraceâ:[âactiverecord (7.1.5.2) lib/active_record/connection_adapters/abstract/connection_handler.rb:243:in `retrieve_connectionââ,âactiverecord (7.1.5.2) lib/active_record/connection_handling.rb:287:in `retrieve_connectionââ,âlib/feature.rb:24:in `connectionââ,âactiverecord (7.1.5.2) lib/active_record/model_schema.rb:413:in `table_exists?ââ,âlib/gitlab/database/query_analyzers/prevent_cross_database_modification.rb:52:in `enabled?ââ,âlib/gitlab/database/query_analyzer.rb:95:in `block in begin!ââ,âlib/gitlab/database/query_analyzer.rb:92:in `selectââ,âlib/gitlab/database/query_analyzer.rb:92:in `begin!ââ,âlib/gitlab/database/query_analyzer.rb:80:in `withinââ,âlib/gitlab/middleware/query_analyzer.rb:11:in `callââ,âlib/ci/job_token/middleware.rb:11:in `callââ,âbatch-loader (2.0.5) lib/batch_loader/middleware.rb:11:in `callââ,ârack-attack (6.7.0) lib/rack/attack.rb:103:in `callââ,âapollo_upload_server (2.1.6) lib/apollo_upload_server/middleware.rb:19:in `callââ,âlib/gitlab/middleware/multipart.rb:174:in `callââ,ârack-attack (6.7.0) lib/rack/attack.rb:127:in `callââ,âwarden (1.2.9) lib/warden/manager.rb:36:in `block in callââ,âwarden (1.2.9) lib/warden/manager.rb:34:in `catchââ,âwarden (1.2.9) lib/warden/manager.rb:34:in `callââ,ârack-cors (2.0.2) lib/rack/cors.rb:102:in `callââ,ârack (2.2.17) lib/rack/tempfile_reaper.rb:15:in `callââ,ârack (2.2.17) lib/rack/etag.rb:27:in `callââ,ârack (2.2.17) lib/rack/conditional_get.rb:27:in `callââ,ârack (2.2.17) lib/rack/head.rb:12:in `callââ,âactionpack (7.1.5.2) lib/action_dispatch/http/permissions_policy.rb:36:in `callââ,âactionpack (7.1.5.2) lib/action_dispatch/http/content_security_policy.rb:36:in `callââ,âlib/gitlab/middleware/read_only/controller.rb:40:in `callââ,âlib/gitlab/middleware/read_only.rb:18:in `callââ,âlib/gitlab/middleware/unauthenticated_session_expiry.rb:18:in `callââ,ârack (2.2.17) lib/rack/session/abstract/id.rb:266:in `contextââ,ârack (2.2.17) lib/rack/session/abstract/id.rb:260:in `callââ,âlib/gitlab/middleware/secure_headers.rb:11:in `callââ,âactionpack (7.1.5.2) lib/action_dispatch/middleware/cookies.rb:689:in `callââ,âlib/gitlab/middleware/same_site_cookies.rb:27:in `callââ,âactionpack (7.1.5.2) lib/action_dispatch/middleware/callbacks.rb:29:in `block in callââ,âactivesupport (7.1.5.2) lib/active_support/callbacks.rb:101:in `run_callbacksââ,âactionpack (7.1.5.2) lib/action_dispatch/middleware/callbacks.rb:28:in `callââ,âsentry-rails (5.23.0) lib/sentry/rails/rescued_exception_interceptor.rb:14:in `callââ,âactionpack (7.1.5.2) lib/action_dispatch/middleware/debug_exceptions.rb:29:in `callââ,âlib/gitlab/middleware/path_traversal_check.rb:40:in `callââ,âlib/gitlab/middleware/handle_malformed_strings.rb:21:in `callââ,âlib/gitlab/middleware/json_validation.rb:155:in `callââ,âsentry-ruby (5.23.0) lib/sentry/rack/capture_exceptions.rb:30:in `block (2 levels) in callââ,âsentry-ruby (5.23.0) lib/sentry/hub.rb:299:in `with_session_trackingââ,âsentry-ruby (5.23.0) lib/sentry-ruby.rb:428:in `with_session_trackingââ,âsentry-ruby (5.23.0) lib/sentry/rack/capture_exceptions.rb:21:in `block in callââ,âsentry-ruby (5.23.0) lib/sentry/hub.rb:89:in `with_scopeââ,âsentry-ruby (5.23.0) lib/sentry-ruby.rb:408:in `with_scopeââ,âsentry-ruby (5.23.0) lib/sentry/rack/capture_exceptions.rb:20:in `callââ,âactionpack (7.1.5.2) lib/action_dispatch/middleware/show_exceptions.rb:31:in `callââ,âlib/gitlab/middleware/basic_health_check.rb:25:in `callââ,âlograge (0.11.2) lib/lograge/rails_ext/rack/logger.rb:15:in `call_appââ,ârailties (7.1.5.2) lib/rails/rack/logger.rb:24:in `block in callââ,âactivesupport (7.1.5.2) lib/active_support/tagged_logging.rb:139:in `block in taggedââ,âactivesupport (7.1.5.2) lib/active_support/tagged_logging.rb:39:in `taggedââ,âactivesupport (7.1.5.2) lib/active_support/tagged_logging.rb:139:in `taggedââ,âactivesupport (7.1.5.2) lib/active_support/broadcast_logger.rb:241:in `method_missingââ,ârailties (7.1.5.2) lib/rails/rack/logger.rb:24:in `callââ,âactionpack (7.1.5.2) lib/action_dispatch/middleware/remote_ip.rb:92:in `callââ,âlib/gitlab/middleware/handle_ip_spoof_attack_error.rb:25:in `callââ,âlib/gitlab/middleware/request_context.rb:15:in `callââ,âlib/gitlab/middleware/webhook_recursion_detection.rb:15:in `callââ,ârequest_store (1.7.0) lib/request_store/middleware.rb:19:in `callââ,ârack (2.2.17) lib/rack/method_override.rb:24:in `callââ,ârack (2.2.17) lib/rack/runtime.rb:22:in `callââ,ârack-timeout (0.7.0) lib/rack/timeout/core.rb:154:in `block in callââ,ârack-timeout (0.7.0) lib/rack/timeout/support/timeout.rb:19:in `timeoutââ,ârack-timeout (0.7.0) lib/rack/timeout/core.rb:153:in `callââ,âconfig/initializers/fix_local_cache_middleware.rb:11:in `callââ,âlib/gitlab/middleware/compressed_json.rb:44:in `callââ,âactionpack (7.1.5.2) lib/action_dispatch/middleware/executor.rb:14:in `callââ,âlib/gitlab/middleware/rack_multipart_tempfile_factory.rb:19:in `callââ,âlib/gitlab/metrics/requests_rack_middleware.rb:83:in `callââ,âgitlab-labkit (0.40.0) lib/labkit/middleware/rack.rb:22:in `block in callââ,âgitlab-labkit (0.40.0) lib/labkit/context.rb:36:in `with_contextââ,âgitlab-labkit (0.40.0) lib/labkit/middleware/rack.rb:21:in `callââ,ârack (2.2.17) lib/rack/sendfile.rb:110:in `callââ,âactionpack (7.1.5.2) lib/action_dispatch/middleware/request_id.rb:28:in `callââ,âlib/gitlab/middleware/sidekiq_web_static.rb:20:in `callââ,ârailties (7.1.5.2) lib/rails/engine.rb:536:in `callââ,ârailties (7.1.5.2) lib/rails/railtie.rb:226:in `public_sendââ,ârailties (7.1.5.2) lib/rails/railtie.rb:226:in `method_missingââ,âlib/gitlab/middleware/release_env.rb:12:in `callââ,ârack (2.2.17) lib/rack/urlmap.rb:74:in `block in callââ,ârack (2.2.17) lib/rack/urlmap.rb:58:in `eachââ,ârack (2.2.17) lib/rack/urlmap.rb:58:in `callââ,âpuma (6.6.1) lib/puma/configuration.rb:279:in `callââ,âpuma (6.6.1) lib/puma/request.rb:99:in `block in handle_requestââ,âpuma (6.6.1) lib/puma/thread_pool.rb:390:in `with_force_shutdownââ,âpuma (6.6.1) lib/puma/request.rb:98:in `handle_requestââ,âpuma (6.6.1) lib/puma/server.rb:472:in `process_clientââ,âpuma (6.6.1) lib/puma/server.rb:254:in `block in runââ,âpuma (6.6.1) lib/puma/thread_pool.rb:167:in `block in spawn_threadââ],âuser.usernameâ:null,âtags.programâ:âwebâ,âtags.localeâ:âenâ,âtags.feature_categoryâ:null,âtags.correlation_idâ:â01K6KEDJ3BKR2BNRW6464NATQNâ} [/details]
Steps to reproduce
Upgrade from 18.1.2 to 18.2.6 to 18.4.0
Configuration
Changes attempted to correct this, most done one at a time. None worked.
Server had 4CPU (2 core) and 16GB RAM
puma[âworker_processesâ] = 2
puma[âmin_threadsâ] = 4
puma[âmax_threadsâ] = 4
postgresql[âmax_connectionsâ] = 200
sidekiq[âmax_concurrencyâ] = 50
Server now has 12CPU (6 core) and 32GB RAM. Even tried patch 18.4.1-ee.
puma[âworker_processesâ] = 4
puma[âmin_threadsâ] = 6
puma[âmax_threadsâ] = 6
postgresql[âmax_connectionsâ] = 600
sidekiq[âmax_concurrencyâ] = 70
Versions
Please add an x whether options apply, and add the version information.
- X Self-managed
-
GitLab.com
SaaS - Dedicated
Versions
[details=âNow at 18.4.1-eeâ]
System information
System:
Proxy: no
Current User: git
Using RVM: no
Ruby Version: 3.2.8
Gem Version: 3.7.1
Bundler Version:2.7.1
Rake Version: 13.0.6
Redis Version: 7.2.10
Sidekiq Version:7.3.9
Go Version: go1.24.6 (Red Hat 1.24.6-1.module+el8.10.0+23407+428597c7) linux/amd64
GitLab information
Version: 18.4.1-ee
Revision: 270836848e7
Directory: /opt/gitlab/embedded/service/gitlab-rails
DB Adapter: PostgreSQL
DB Version: 16.10
URL: https://gitlab.qad.com
HTTP Clone URL: https://gitlab.qad.com/some-group/some-project.git
SSH Clone URL: git@gitlab.qad.com:some-group/some-project.git
Elasticsearch: no
Geo: no
Using LDAP: yes
Using Omniauth: yes
Omniauth Providers: saml
GitLab Shell
Version: 14.45.2
Repository storages:
- default: unix:/var/opt/gitlab/gitaly/gitaly.socket
GitLab Shell path: /opt/gitlab/embedded/service/gitlab-shell
Gitaly
- default Address: unix:/var/opt/gitlab/gitaly/gitaly.socket
- default Version: 18.4.1
- default Git Version: 2.50.1
[/details]