Skip to content

ERROR: null value in column "group" violates not-null constraint

Summary

Steps to reproduce

  1. fresh install gitlab-jh-14.4.0
  2. execute gitlab-ctl reconfigure
  3. error occurs

Example Project

What is the current bug behavior?

migrate gitlab-rails database partial failed.

What is the expected correct behavior?

pg_dump execute successfully

Relevant logs and/or screenshots

================================================================================
      Error executing action `run` on resource 'bash[migrate gitlab-rails database]'
      ================================================================================

      Mixlib::ShellOut::ShellCommandFailed
      ------------------------------------
      Expected process to exit with [0], but received '1'
      ---- Begin output of "bash"  "/tmp/chef-script20211102-1905-pxk8ia" ----
      STDOUT: psql:/opt/gitlab/embedded/service/gitlab-rails/db/structure.sql:9: NOTICE:  extension "btree_gist" already exists, skipping
      psql:/opt/gitlab/embedded/service/gitlab-rails/db/structure.sql:11: NOTICE:  extension "pg_trgm" already exists, skipping
      rake aborted!
      ActiveRecord::NotNullViolation: PG::NotNullViolation: ERROR:  null value in column "group" violates not-null constraint
      DETAIL:  Failing row contains (1, null, Memory Usage (Total), avg(sum(container_memory_usage_bytes{container!="POD",pod=~"^{{c..., Total Memory Used (GB), GB, Total (GB), null, 2021-11-02 04:04:33.99797+00, 2021-11-02 04:04:33.99797+00, t, system_metrics_kubernetes_container_memory_total, null).
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:119:in `block in write_using_load_balancer'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:107:in `block in read_write'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:167:in `retry_with_backoff'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:105:in `read_write'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:118:in `write_using_load_balancer'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:60:in `block (2 levels) in <class:ConnectionProxy>'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:119:in `block in write_using_load_balancer'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:107:in `block in read_write'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:167:in `retry_with_backoff'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:105:in `read_write'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:118:in `write_using_load_balancer'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:70:in `transaction'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:119:in `block in write_using_load_balancer'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:107:in `block in read_write'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:167:in `retry_with_backoff'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:105:in `read_write'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:118:in `write_using_load_balancer'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:70:in `transaction'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:20:in `block in execute'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:58:in `process_metric_details'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:48:in `block in process_panel'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:47:in `map'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:47:in `process_panel'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:38:in `block in process_group'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:37:in `map'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:37:in `process_group'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:28:in `block in process_content'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:27:in `map'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:27:in `process_content'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:18:in `execute'
      (eval):3:in `block (2 levels) in run_file'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:119:in `block in write_using_load_balancer'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:107:in `block in read_write'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:167:in `retry_with_backoff'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:105:in `read_write'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:118:in `write_using_load_balancer'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:70:in `transaction'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database.rb:271:in `block in transaction'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database.rb:270:in `transaction'
      /opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:66:in `block (3 levels) in <top (required)>'
      /opt/gitlab/embedded/bin/bundle:23:in `load'
      /opt/gitlab/embedded/bin/bundle:23:in `<main>'

      Caused by:
      PG::NotNullViolation: ERROR:  null value in column "group" violates not-null constraint
      DETAIL:  Failing row contains (1, null, Memory Usage (Total), avg(sum(container_memory_usage_bytes{container!="POD",pod=~"^{{c..., Total Memory Used (GB), GB, Total (GB), null, 2021-11-02 04:04:33.99797+00, 2021-11-02 04:04:33.99797+00, t, system_metrics_kubernetes_container_memory_total, null).
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:119:in `block in write_using_load_balancer'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:107:in `block in read_write'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:167:in `retry_with_backoff'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:105:in `read_write'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:118:in `write_using_load_balancer'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:60:in `block (2 levels) in <class:ConnectionProxy>'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:119:in `block in write_using_load_balancer'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:107:in `block in read_write'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:167:in `retry_with_backoff'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:105:in `read_write'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:118:in `write_using_load_balancer'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:70:in `transaction'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:119:in `block in write_using_load_balancer'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:107:in `block in read_write'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:167:in `retry_with_backoff'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:105:in `read_write'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:118:in `write_using_load_balancer'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:70:in `transaction'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:20:in `block in execute'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:58:in `process_metric_details'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:48:in `block in process_panel'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:47:in `map'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:47:in `process_panel'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:38:in `block in process_group'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:37:in `map'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:37:in `process_group'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:28:in `block in process_content'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:27:in `map'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:27:in `process_content'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database_importers/common_metrics/importer.rb:18:in `execute'
      (eval):3:in `block (2 levels) in run_file'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:119:in `block in write_using_load_balancer'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:107:in `block in read_write'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:167:in `retry_with_backoff'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:105:in `read_write'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:118:in `write_using_load_balancer'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:70:in `transaction'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database.rb:271:in `block in transaction'
      /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database.rb:270:in `transaction'
      /opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:66:in `block (3 levels) in <top (required)>'
      /opt/gitlab/embedded/bin/bundle:23:in `load'
      /opt/gitlab/embedded/bin/bundle:23:in `<main>'
      Tasks: TOP => db:seed_fu
      (See full trace by running task with --trace)

database logs

2021-11-02_04:04:33.99924 ERROR:  null value in column "group" violates not-null constraint
2021-11-02_04:04:33.99925 DETAIL:  Failing row contains (1, null, Memory Usage (Total), avg(sum(container_memory_usage_bytes{container!="POD",pod=~"^{{c..., Total Memory Used (GB), GB, Total (GB), null, 2021-11-02 04:04:33.99797+00, 2021-11-02 04:04:33.99797+00, t, system_metrics_kubernetes_container_memory_total, null).
2021-11-02_04:04:33.99926 STATEMENT:  /*application:web,db_config_name:main*/ INSERT INTO "prometheus_metrics" ("title", "query", "y_label", "unit", "legend", "created_at", "updated_at", "common", "identifier") VALUES ('Memory Usage (Total)', 'avg(sum(container_memory_usage_bytes{container!="POD",pod=~"^{{ci_environment_slug}}-(.*)",namespace="{{kube_namespace}}"}) by (job)) without (job)  /1024/1024/1024     OR      avg(sum(container_memory_usage_bytes{container_name!="POD",pod_name=~"^{{ci_environment_slug}}-(.*)",namespace="{{kube_namespace}}"}) by (job)) without (job)  /1024/1024/1024', 'Total Memory Used (GB)', 'GB', 'Total (GB)', '2021-11-02 04:04:33.997970', '2021-11-02 04:04:33.997970', TRUE, 'system_metrics_kubernetes_container_memory_total') RETURNING "id"

Output of checks

Results of GitLab environment info

Expand for output related to GitLab environment info

(For installations with omnibus-gitlab package run and paste the output of:
`sudo gitlab-rake gitlab:env:info`)
```
System information
System:
Proxy:		no
Current User:	git
Using RVM:	no
Ruby Version:	2.7.4p191
Gem Version:	3.1.4
Bundler Version:2.1.4
Rake Version:	13.0.6
Redis Version:	6.0.14
Git Version:	2.33.0.
Sidekiq Version:6.2.2
Go Version:	unknown

GitLab information
Version:	14.4.0-jh
Revision:	aff11a16a83
Directory:	/opt/gitlab/embedded/service/gitlab-rails
DB Adapter:	PostgreSQL
DB Version:	12.7
URL:		http://gitlab.example.com
HTTP Clone URL:	http://gitlab.example.com/some-group/some-project.git
SSH Clone URL:	git@gitlab.example.com:some-group/some-project.git
Elasticsearch:	no
Geo:		no
Using LDAP:	no
Using Omniauth:	yes
Omniauth Providers:

GitLab Shell
Version:	13.21.1
Repository storage paths:
- default: 	/var/opt/gitlab/git-data/repositories
GitLab Shell path:		/opt/gitlab/embedded/service/gitlab-shell
Git:		/opt/gitlab/embedded/bin/git
```

(For installations from source run and paste the output of:
`sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production`)

Results of GitLab application Check

Expand for output related to the GitLab application check

(For installations with omnibus-gitlab package run and paste the output of: sudo gitlab-rake gitlab:check SANITIZE=true)

Checking GitLab subtasks ...

Checking GitLab Shell ...

GitLab Shell: ... GitLab Shell version >= 13.21.1 ? ... OK (13.21.1)
Running /opt/gitlab/embedded/service/gitlab-shell/bin/check
Internal API available: FAILED - Internal API unreachable
gitlab-shell self-check failed
  Try fixing it:
  Make sure GitLab is running;
  Check the gitlab-shell configuration file:
  sudo -u git -H editor /opt/gitlab/embedded/service/gitlab-shell/config.yml
  Please fix the error above and rerun the checks.

Checking GitLab Shell ... Finished

Checking Gitaly ...

Gitaly: ... default ... OK

Checking Gitaly ... Finished

Checking Sidekiq ...

Sidekiq: ... Running? ... no
  Try fixing it:
  sudo -u git -H RAILS_ENV=production bin/background_jobs start
  For more information see:
  doc/install/installation.md in section "Install Init Script"
  see log/sidekiq.log for possible errors
  Please fix the error above and rerun the checks.

Checking Sidekiq ... Finished

Checking Incoming Email ...

Incoming Email: ... Reply by email is disabled in config/gitlab.yml

Checking Incoming Email ... Finished

Checking LDAP ...

LDAP: ... LDAP is disabled in config/gitlab.yml

Checking LDAP ... Finished

Checking GitLab App ...

Git configured correctly? ... yes
Database config exists? ... yes
All migrations up? ... yes
Database contains orphaned GroupMembers? ... no
GitLab config exists? ... yes
GitLab config up to date? ... yes
Log directory writable? ... yes
Tmp directory writable? ... yes
Uploads directory exists? ... yes
Uploads directory has correct permissions? ... yes
Uploads directory tmp has correct permissions? ... skipped (no tmp uploads folder yet)
Init script exists? ... skipped (omnibus-gitlab has no init script)
Init script up-to-date? ... skipped (omnibus-gitlab has no init script)
Projects have namespace: ...
2/1 ... yes
Redis version >= 5.0.0? ... yes
Ruby version >= 2.7.2 ? ... yes (2.7.4)
Git version >= 2.33.0 ? ... yes (2.33.0)
Git user has default SSH configuration? ... yes
Active users: ... 1
Is authorized keys file accessible? ... yes
GitLab configured to store new projects in hashed storage? ... yes
All projects are in hashed storage? ... yes
Elasticsearch version 7.x (6.4 - 6.x deprecated to be removed in 13.8)? ... skipped (elasticsearch is disabled)

Checking GitLab App ... Finished


Checking GitLab subtasks ... Finished

(For installations from source run and paste the output of: sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true)

(we will only investigate if the tests are passing)

$ gitlab-ctl status
run: gitaly: (pid 3118) 2965s; run: log: (pid 2726) 3088s
run: logrotate: (pid 2620) 3107s; run: log: (pid 2631) 3104s
run: postgresql: (pid 2878) 3078s; run: log: (pid 2903) 3076s
run: redis: (pid 2662) 3101s; run: log: (pid 2671) 3097s

Possible fixes

Qian Zhang (Gary) 编辑于