Skip to content

rake db:create fails with LDAP enabled

Summary

When I try to do a fresh setup with LDAP enabled in gitlab.yml it fails with an exception:

gitlab-rails git:(213924-insights-embeddable) ✗ bundle exec rake db:create
WARNING: This version of GitLab depends on gitlab-shell 13.3.0, but you're running Unknown. Please update gitlab-shell.
rake aborted!
ActiveRecord::NoDatabaseError: FATAL:  database "gitlabhq_development" does not exist
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/postgresql_adapter.rb:50:in `rescue in postgresql_connection'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/postgresql_adapter.rb:33:in `postgresql_connection'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:887:in `new_connection'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:931:in `checkout_new_connection'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:910:in `try_to_checkout_new_connection'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:871:in `acquire_connection'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:593:in `checkout'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:437:in `connection'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:1119:in `retrieve_connection'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/activerecord-6.0.3.1/lib/active_record/connection_handling.rb:221:in `retrieve_connection'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/activerecord-6.0.3.1/lib/active_record/connection_handling.rb:189:in `connection'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/activerecord-6.0.3.1/lib/active_record/model_schema.rb:340:in `table_exists?'
/Users/shutin/www/gitlab/gitlab-rails/ee/app/models/license.rb:266:in `load_license'
/Users/shutin/www/gitlab/gitlab-rails/ee/app/models/license.rb:255:in `current'
/Users/shutin/www/gitlab/gitlab-rails/ee/app/models/license.rb:259:in `feature_available?'
/Users/shutin/www/gitlab/gitlab-rails/ee/lib/ee/gitlab/auth/ldap/config.rb:19:in `_available_servers'
/Users/shutin/www/gitlab/gitlab-rails/lib/gitlab/auth/ldap/config.rb:37:in `available_servers'
/Users/shutin/www/gitlab/gitlab-rails/config/initializers/omniauth.rb:3:in `<module:Strategies>'
/Users/shutin/www/gitlab/gitlab-rails/config/initializers/omniauth.rb:2:in `<main>'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:55:in `load'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:55:in `load'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/activesupport-6.0.3.1/lib/active_support/dependencies.rb:318:in `block in load'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/activesupport-6.0.3.1/lib/active_support/dependencies.rb:291:in `load_dependency'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/activesupport-6.0.3.1/lib/active_support/dependencies.rb:318:in `load'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/railties-6.0.3.1/lib/rails/engine.rb:666:in `block in load_config_initializer'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/activesupport-6.0.3.1/lib/active_support/notifications.rb:182:in `instrument'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/railties-6.0.3.1/lib/rails/engine.rb:665:in `load_config_initializer'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/railties-6.0.3.1/lib/rails/engine.rb:625:in `block (2 levels) in <class:Engine>'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/railties-6.0.3.1/lib/rails/engine.rb:624:in `each'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/railties-6.0.3.1/lib/rails/engine.rb:624:in `block in <class:Engine>'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/railties-6.0.3.1/lib/rails/initializable.rb:32:in `instance_exec'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/railties-6.0.3.1/lib/rails/initializable.rb:32:in `run'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/railties-6.0.3.1/lib/rails/initializable.rb:61:in `block in run_initializers'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/railties-6.0.3.1/lib/rails/initializable.rb:50:in `each'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/railties-6.0.3.1/lib/rails/initializable.rb:50:in `tsort_each_child'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/railties-6.0.3.1/lib/rails/initializable.rb:60:in `run_initializers'
/Users/shutin/.rvm/gems/ruby-2.6.6@gitlab-ee/gems/railties-6.0.3.1/lib/rails/application.rb:363:in `initialize!'
/Users/shutin/www/gitlab/gitlab-rails/config/environment.rb:5:in `<main>'

It looks like config/initializers/omniauth.rb tries to read from DB even if we are trying to create a DB. So after debug I had to disable LDAP to create DB then return it back.

Steps to reproduce

  1. enable LDAP in gitlab.yml
  2. make sure you don't have database created in postgres
  3. run rake db:create

What is the current bug behavior?

Exception happens

What is the expected correct behavior?

DB should be successfully created.

Results of GitLab environment info

Expand for output related to GitLab environment info
System information
System:
Proxy:		rvm_proxy:
Current User:	shutin
Using RVM:	yes
RVM Version:	1.29.7
Ruby Version:	2.6.6p146
Gem Version:	3.0.8
Bundler Version:1.17.3
Rake Version:	12.3.3
Redis Version:	unknown
Git Version:	2.24.3
Sidekiq Version:5.2.9
Go Version:	go1.14.1 darwin/amd64

GitLab information
Version:	13.2.0-pre
Revision:	0935dfb5d2b
Directory:	/Users/shutin/www/gitlab/gitlab-rails
DB Adapter:	PostgreSQL
DB Version:	11.8
URL:		http://192.168.100.34:3000
HTTP Clone URL:	http://192.168.100.34:3000/some-group/some-project.git
SSH Clone URL:	ssh://git@192.168.100.34:2222/some-group/some-project.git
Elasticsearch:	no
Geo:		no
Using LDAP:	yes
Using Omniauth:	yes
Omniauth Providers:

GitLab Shell
Version:	unknown
Repository storage paths:
- default: 	/data/repositories
GitLab Shell path:		/Users/shutin/www/gitlab/gitlab-rails/tmp/gitlab-shell
Git:		/usr/bin/git
Edited by Pavel Shutsin