ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_user_synced_attributes_metadata_on_user_id"
Summary
- After upgrading to Gitlab 10.8.7 or 10.1.4 from 9.5.10 the migration fails on docker.
- My issue is different with BUG gitlab-ce#38246. The SQL is different.
2019-07-07T06:41:55.546317735Z WHERE user_id = users.id
2019-07-07T06:41:55.546325334Z AND provider = users.email_provider OR (provider IS NULL AND users.email_provider IS NULL)
Steps to reproduce
- stop Gitlab 9.5.10 container
- create a new container with the same parameters as 9.5.10 with Gitlab 10.8.7 or 10.1.4 image
- start new container and auto migrate
Relevant logs and/or screenshots
[root@sgprojcgit /]# docker logs -f -t --since='2019-07-07' --tail=200 67fccbae6572
2019-07-07T06:41:15.743121827Z # Declared in /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/database_migrations.rb:51:in `from_file'
2019-07-07T06:41:15.743129713Z
2019-07-07T06:41:15.743136806Z bash("migrate gitlab-rails database") do
2019-07-07T06:41:15.743144122Z action [:run]
2019-07-07T06:41:15.743151292Z updated true
2019-07-07T06:41:15.743158493Z retries 0
2019-07-07T06:41:15.743165539Z retry_delay 2
2019-07-07T06:41:15.743172826Z default_guard_interpreter :default
2019-07-07T06:41:15.743180149Z command "migrate gitlab-rails database"
2019-07-07T06:41:15.743187712Z backup 5
2019-07-07T06:41:15.743194971Z returns 0
2019-07-07T06:41:15.743203169Z code " set -e\n log_file=\"/var/log/gitlab/gitlab-rails/gitlab-rails-db-migrate-$(date +%Y-%m-%d-%H-%M-%S).log\"\n umask 077\n /opt/gitlab/bin/gitlab-rake gitlab:db:configure 2>& 1 | tee ${log_file}\n STATUS=${PIPESTATUS[0]}\n echo $STATUS > /var/opt/gitlab/gitlab-rails/upgrade-status/db-migrate-873248b1f0d3a7a5535771a3a1635803-2417795\n exit $STATUS\n"
2019-07-07T06:41:15.743213145Z interpreter "bash"
2019-07-07T06:41:15.743220597Z declared_type :bash
2019-07-07T06:41:15.743227683Z cookbook_name "gitlab"
2019-07-07T06:41:15.743234910Z recipe_name "database_migrations"
2019-07-07T06:41:15.743242739Z not_if "(test -f /var/opt/gitlab/gitlab-rails/upgrade-status/db-migrate-873248b1f0d3a7a5535771a3a1635803-2417795) && (cat /var/opt/gitlab/gitlab-rails/upgrade-status/db-migrate-873248b1f0d3a7a5535771a3a1635803-2417795 | grep -Fx 0)"
2019-07-07T06:41:15.743251067Z only_if { #code block }
2019-07-07T06:41:15.743263910Z end
2019-07-07T06:41:15.743271889Z
2019-07-07T06:41:15.743279185Z Platform:
2019-07-07T06:41:15.743286706Z ---------
2019-07-07T06:41:15.743293908Z x86_64-linux
2019-07-07T06:41:15.743300872Z
2019-07-07T06:41:15.974371228Z
2019-07-07T06:41:16.398185671Z Thank you for using GitLab Docker Image!
2019-07-07T06:41:16.398215740Z Current version: gitlab-ce=10.0.1-ce.0
2019-07-07T06:41:16.398224923Z
2019-07-07T06:41:16.398232298Z Configure GitLab for your system by editing /etc/gitlab/gitlab.rb file
2019-07-07T06:41:16.398241245Z And restart this container to reload settings.
2019-07-07T06:41:16.398248768Z To do it use docker exec:
2019-07-07T06:41:16.398256158Z
2019-07-07T06:41:16.398263527Z docker exec -it gitlab vim /etc/gitlab/gitlab.rb
2019-07-07T06:41:16.398270988Z docker restart gitlab
2019-07-07T06:41:16.398278234Z
2019-07-07T06:41:16.398285544Z For a comprehensive list of configuration options please see the Omnibus GitLab readme
2019-07-07T06:41:16.398293121Z https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
2019-07-07T06:41:16.398300508Z
2019-07-07T06:41:16.398312042Z If this container fails to start due to permission problems try to fix it by executing:
2019-07-07T06:41:16.398320238Z
2019-07-07T06:41:16.398327516Z docker exec -it gitlab update-permissions
2019-07-07T06:41:16.398335004Z docker restart gitlab
2019-07-07T06:41:16.398342364Z
2019-07-07T06:41:19.394962460Z Preparing services...
2019-07-07T06:41:19.396821277Z Starting services...
2019-07-07T06:41:19.396843751Z Configuring GitLab package...
2019-07-07T06:41:19.414965586Z gitlab preinstall:
2019-07-07T06:41:19.414988470Z gitlab preinstall: This node does not appear to be running a database
2019-07-07T06:41:19.414998488Z gitlab preinstall: Skipping version check, if you think this is an error exit now
2019-07-07T06:41:19.415006066Z gitlab preinstall:
2019-07-07T06:41:19.415013289Z Configuring GitLab...
2019-07-07T06:41:55.546095528Z
2019-07-07T06:41:55.546149701Z ================================================================================
2019-07-07T06:41:55.546159497Z Error executing action `run` on resource 'bash[migrate gitlab-rails database]'
2019-07-07T06:41:55.546167842Z ================================================================================
2019-07-07T06:41:55.546175703Z
2019-07-07T06:41:55.546185886Z Mixlib::ShellOut::ShellCommandFailed
2019-07-07T06:41:55.546206265Z ------------------------------------
2019-07-07T06:41:55.546214894Z Expected process to exit with [0], but received '1'
2019-07-07T06:41:55.546222394Z ---- Begin output of "bash" "/tmp/chef-script20190707-31-11avhco" ----
2019-07-07T06:41:55.546231425Z STDOUT: rake aborted!
2019-07-07T06:41:55.546238550Z StandardError: An error has occurred, all later migrations canceled:
2019-07-07T06:41:55.546245853Z
2019-07-07T06:41:55.546253526Z PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_user_synced_attributes_metadata_on_user_id"
2019-07-07T06:41:55.546261284Z DETAIL: Key (user_id)=(24) already exists.
2019-07-07T06:41:55.546268489Z : INSERT INTO user_synced_attributes_metadata (user_id, provider, email_synced)
2019-07-07T06:41:55.546275706Z SELECT id, email_provider, external_email
2019-07-07T06:41:55.546282791Z FROM users
2019-07-07T06:41:55.546289814Z WHERE external_email = TRUE
2019-07-07T06:41:55.546296678Z AND NOT EXISTS (
2019-07-07T06:41:55.546303649Z SELECT true
2019-07-07T06:41:55.546310665Z FROM user_synced_attributes_metadata
2019-07-07T06:41:55.546317735Z WHERE user_id = users.id
2019-07-07T06:41:55.546325334Z AND provider = users.email_provider OR (provider IS NULL AND users.email_provider IS NULL)
2019-07-07T06:41:55.546332757Z )
2019-07-07T06:41:55.546339665Z AND id BETWEEN 1 AND 83
2019-07-07T06:41:55.546347181Z /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20170828170502_post_deploy_migrate_user_external_mail_data.rb:27:in `block in up'
2019-07-07T06:41:55.546360952Z /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/each_batch.rb:75:in `block in each_batch'
2019-07-07T06:41:55.546368866Z /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/each_batch.rb:56:in `step'
2019-07-07T06:41:55.546376353Z /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/each_batch.rb:56:in `each_batch'
2019-07-07T06:41:55.546383884Z /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20170828170502_post_deploy_migrate_user_external_mail_data.rb:24:in `up'
2019-07-07T06:41:55.546392401Z /opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:50:in `block (3 levels) in <top (required)>'
2019-07-07T06:41:55.546400201Z /opt/gitlab/embedded/bin/bundle:23:in `load'
2019-07-07T06:41:55.546407524Z /opt/gitlab/embedded/bin/bundle:23:in `<main>'
2019-07-07T06:41:55.546415798Z ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_user_synced_attributes_metadata_on_user_id"
2019-07-07T06:41:55.546423709Z DETAIL: Key (user_id)=(24) already exists.
2019-07-07T06:41:55.546440926Z : INSERT INTO user_synced_attributes_metadata (user_id, provider, email_synced)
2019-07-07T06:41:55.546449198Z SELECT id, email_provider, external_email
2019-07-07T06:41:55.546456443Z FROM users
2019-07-07T06:41:55.546463706Z WHERE external_email = TRUE
2019-07-07T06:41:55.550989247Z AND NOT EXISTS (
2019-07-07T06:41:55.551022595Z SELECT true
2019-07-07T06:41:55.551031255Z FROM user_synced_attributes_metadata
2019-07-07T06:41:55.551038751Z WHERE user_id = users.id
2019-07-07T06:41:55.551046186Z AND provider = users.email_provider OR (provider IS NULL AND users.email_provider IS NULL)
2019-07-07T06:41:55.551053788Z )
2019-07-07T06:41:55.551060836Z AND id BETWEEN 1 AND 83
2019-07-07T06:41:55.551068435Z /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20170828170502_post_deploy_migrate_user_external_mail_data.rb:27:in `block in up'
2019-07-07T06:41:55.551076141Z /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/each_batch.rb:75:in `block in each_batch'
2019-07-07T06:41:55.551083784Z /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/each_batch.rb:56:in `step'
2019-07-07T06:41:55.551091175Z /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/each_batch.rb:56:in `each_batch'
2019-07-07T06:41:55.551098552Z /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20170828170502_post_deploy_migrate_user_external_mail_data.rb:24:in `up'
2019-07-07T06:41:55.551106652Z /opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:50:in `block (3 levels) in <top (required)>'
2019-07-07T06:41:55.551117543Z /opt/gitlab/embedded/bin/bundle:23:in `load'
2019-07-07T06:41:55.551124955Z /opt/gitlab/embedded/bin/bundle:23:in `<main>'
2019-07-07T06:41:55.551132495Z PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_user_synced_attributes_metadata_on_user_id"
2019-07-07T06:41:55.551140160Z DETAIL: Key (user_id)=(24) already exists.
2019-07-07T06:41:55.551147324Z /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20170828170502_post_deploy_migrate_user_external_mail_data.rb:27:in `block in up'
2019-07-07T06:41:55.551154999Z /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/each_batch.rb:75:in `block in each_batch'
2019-07-07T06:41:55.551162383Z /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/each_batch.rb:56:in `step'
2019-07-07T06:41:55.551169813Z /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/each_batch.rb:56:in `each_batch'
2019-07-07T06:41:55.551177287Z /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20170828170502_post_deploy_migrate_user_external_mail_data.rb:24:in `up'
2019-07-07T06:41:55.551192919Z /opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:50:in `block (3 levels) in <top (required)>'
2019-07-07T06:41:55.551201551Z /opt/gitlab/embedded/bin/bundle:23:in `load'
2019-07-07T06:41:55.551208823Z /opt/gitlab/embedded/bin/bundle:23:in `<main>'
2019-07-07T06:41:55.551216356Z Tasks: TOP => db:migrate
2019-07-07T06:41:55.551223629Z (See full trace by running task with --trace)
2019-07-07T06:41:55.551230870Z == 20170828170502 PostDeployMigrateUserExternalMailData: migrating ============
2019-07-07T06:41:55.551239185Z -- execute(" INSERT INTO user_synced_attributes_metadata (user_id, provider, email_synced)\n SELECT id, email_provider, external_email\n FROM users\n WHERE external_email = TRUE\n AND NOT EXISTS (\n SELECT true\n FROM user_synced_attributes_metadata\n WHERE user_id = users.id\n AND provider = users.email_provider OR (provider IS NULL AND users.email_provider IS NULL)\n )\n AND id BETWEEN 1 AND 83\n")
2019-07-07T06:41:55.551253647Z STDERR:
2019-07-07T06:41:55.551260793Z ---- End output of "bash" "/tmp/chef-script20190707-31-11avhco" ----
2019-07-07T06:41:55.551268388Z Ran "bash" "/tmp/chef-script20190707-31-11avhco" returned 1
2019-07-07T06:41:55.551275954Z
2019-07-07T06:41:55.551282864Z Resource Declaration:
2019-07-07T06:41:55.551290005Z ---------------------
2019-07-07T06:41:55.551296941Z # In /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/database_migrations.rb
2019-07-07T06:41:55.551304103Z
2019-07-07T06:41:55.551310874Z 51: bash "migrate gitlab-rails database" do
2019-07-07T06:41:55.551317975Z 52: code <<-EOH
2019-07-07T06:41:55.551325064Z 53: set -e
2019-07-07T06:41:55.551332125Z 54: log_file="#{node['gitlab']['gitlab-rails']['log_directory']}/gitlab-rails-db-migrate-$(date +%Y-%m-%d-%H-%M-%S).log"
2019-07-07T06:41:55.551339646Z 55: umask 077
2019-07-07T06:41:55.551346598Z 56: /opt/gitlab/bin/gitlab-rake gitlab:db:configure 2>& 1 | tee ${log_file}
2019-07-07T06:41:55.551353995Z 57: STATUS=${PIPESTATUS[0]}
2019-07-07T06:41:55.551361011Z 58: echo $STATUS > #{db_migrate_status_file}
2019-07-07T06:41:55.551368069Z 59: exit $STATUS
2019-07-07T06:41:55.551375048Z 60: EOH
2019-07-07T06:41:55.551381890Z 61: environment env_variables unless env_variables.empty?
2019-07-07T06:41:55.551389098Z 62: notifies :run, 'execute[enable pg_trgm extension]', :before if omnibus_helper.service_enabled?('postgresql')
2019-07-07T06:41:55.551396468Z 63: notifies :run, "execute[clear the gitlab-rails cache]", :immediately
2019-07-07T06:41:55.551409544Z 64: dependent_services.each do |svc|
2019-07-07T06:41:55.551417401Z 65: notifies :restart, svc, :immediately
2019-07-07T06:41:55.551424648Z 66: end
2019-07-07T06:41:55.551452064Z 67: not_if "(test -f #{db_migrate_status_file}) && (cat #{db_migrate_status_file} | grep -Fx 0)"
2019-07-07T06:41:55.551459958Z 68: only_if { node['gitlab']['gitlab-rails']['auto_migrate'] }
2019-07-07T06:41:55.551466981Z 69: end
2019-07-07T06:41:55.551473722Z
2019-07-07T06:41:55.551483717Z Compiled Resource:
2019-07-07T06:41:55.551492497Z ------------------
2019-07-07T06:41:55.551499720Z # Declared in /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/database_migrations.rb:51:in `from_file'
2019-07-07T06:41:55.551506825Z
2019-07-07T06:41:55.551513510Z bash("migrate gitlab-rails database") do
2019-07-07T06:41:55.551520479Z action [:run]
2019-07-07T06:41:55.551527193Z updated true
2019-07-07T06:41:55.551534034Z retries 0
2019-07-07T06:41:55.551540750Z retry_delay 2
2019-07-07T06:41:55.551547503Z default_guard_interpreter :default
2019-07-07T06:41:55.551554458Z command "migrate gitlab-rails database"
2019-07-07T06:41:55.551561372Z backup 5
2019-07-07T06:41:55.551568323Z returns 0
2019-07-07T06:41:55.551575942Z code " set -e\n log_file=\"/var/log/gitlab/gitlab-rails/gitlab-rails-db-migrate-$(date +%Y-%m-%d-%H-%M-%S).log\"\n umask 077\n /opt/gitlab/bin/gitlab-rake gitlab:db:configure 2>& 1 | tee ${log_file}\n STATUS=${PIPESTATUS[0]}\n echo $STATUS > /var/opt/gitlab/gitlab-rails/upgrade-status/db-migrate-873248b1f0d3a7a5535771a3a1635803-2417795\n exit $STATUS\n"
2019-07-07T06:41:55.551585222Z interpreter "bash"
2019-07-07T06:41:55.551592111Z declared_type :bash
2019-07-07T06:41:55.551598899Z cookbook_name "gitlab"
2019-07-07T06:41:55.551605960Z recipe_name "database_migrations"
2019-07-07T06:41:55.551613929Z not_if "(test -f /var/opt/gitlab/gitlab-rails/upgrade-status/db-migrate-873248b1f0d3a7a5535771a3a1635803-2417795) && (cat /var/opt/gitlab/gitlab-rails/upgrade-status/db-migrate-873248b1f0d3a7a5535771a3a1635803-2417795 | grep -Fx 0)"
2019-07-07T06:41:55.551621987Z only_if { #code block }
2019-07-07T06:41:55.551628745Z end
2019-07-07T06:41:55.551635512Z
2019-07-07T06:41:55.551642067Z Platform:
2019-07-07T06:41:55.551648984Z ---------
2019-07-07T06:41:55.551655607Z x86_64-linux
2019-07-07T06:41:55.551662150Z
2019-07-07T06:41:55.848254714Z
2019-07-07T06:41:56.511076871Z Thank you for using GitLab Docker Image!
2019-07-07T06:41:56.511100642Z Current version: gitlab-ce=10.0.1-ce.0
2019-07-07T06:41:56.511108925Z
2019-07-07T06:41:56.511116141Z Configure GitLab for your system by editing /etc/gitlab/gitlab.rb file
2019-07-07T06:41:56.511127209Z And restart this container to reload settings.
2019-07-07T06:41:56.511134713Z To do it use docker exec:
2019-07-07T06:41:56.511142102Z
2019-07-07T06:41:56.511149225Z docker exec -it gitlab vim /etc/gitlab/gitlab.rb
2019-07-07T06:41:56.511156575Z docker restart gitlab
2019-07-07T06:41:56.511163676Z
2019-07-07T06:41:56.511170924Z For a comprehensive list of configuration options please see the Omnibus GitLab readme
2019-07-07T06:41:56.511178559Z https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
2019-07-07T06:41:56.511186024Z
2019-07-07T06:41:56.511193314Z If this container fails to start due to permission problems try to fix it by executing:
2019-07-07T06:41:56.511200754Z
2019-07-07T06:41:56.511207904Z docker exec -it gitlab update-permissions
2019-07-07T06:41:56.511215825Z docker restart gitlab
2019-07-07T06:41:56.511222915Z
2019-07-07T06:41:59.491428200Z Preparing services...
2019-07-07T06:41:59.503781422Z Starting services...
2019-07-07T06:41:59.503802096Z Configuring GitLab package...
2019-07-07T06:41:59.532943269Z gitlab preinstall:
2019-07-07T06:41:59.532966720Z gitlab preinstall: This node does not appear to be running a database
2019-07-07T06:41:59.532976332Z gitlab preinstall: Skipping version check, if you think this is an error exit now
2019-07-07T06:41:59.532984055Z gitlab preinstall:
2019-07-07T06:41:59.532991213Z Configuring GitLab...
2019-07-07T06:42:30.473224481Z
2019-07-07T06:42:30.473280648Z ================================================================================
2019-07-07T06:42:30.473297529Z Error executing action `run` on resource 'bash[migrate gitlab-rails database]'
2019-07-07T06:42:30.473306989Z ================================================================================
2019-07-07T06:42:30.473315848Z
2019-07-07T06:42:30.473324113Z Mixlib::ShellOut::ShellCommandFailed
2019-07-07T06:42:30.473332934Z ------------------------------------
2019-07-07T06:42:30.473342347Z Expected process to exit with [0], but received '1'
2019-07-07T06:42:30.473350986Z ---- Begin output of "bash" "/tmp/chef-script20190707-31-1gl4grf" ----
2019-07-07T06:42:30.473359983Z STDOUT: rake aborted!
2019-07-07T06:42:30.473368670Z StandardError: An error has occurred, all later migrations canceled:
2019-07-07T06:42:30.473389151Z
2019-07-07T06:42:30.473399008Z PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_user_synced_attributes_metadata_on_user_id"
2019-07-07T06:42:30.473407692Z DETAIL: Key (user_id)=(24) already exists.
2019-07-07T06:42:30.473415829Z : INSERT INTO user_synced_attributes_metadata (user_id, provider, email_synced)
2019-07-07T06:42:30.473424206Z SELECT id, email_provider, external_email
2019-07-07T06:42:30.473432332Z FROM users
2019-07-07T06:42:30.473440325Z WHERE external_email = TRUE
2019-07-07T06:42:30.473448265Z AND NOT EXISTS (
2019-07-07T06:42:30.473456238Z SELECT true
2019-07-07T06:42:30.473464085Z FROM user_synced_attributes_metadata
2019-07-07T06:42:30.473472187Z WHERE user_id = users.id
2019-07-07T06:42:30.473480888Z AND provider = users.email_provider OR (provider IS NULL AND users.email_provider IS NULL)
2019-07-07T06:42:30.473600452Z )
2019-07-07T06:42:30.474318174Z AND id BETWEEN 1 AND 83
2019-07-07T06:42:30.474340776Z /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20170828170502_post_deploy_migrate_user_external_mail_data.rb:27:in `block in up'
2019-07-07T06:42:30.474351364Z /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/each_batch.rb:75:in `block in each_batch'
2019-07-07T06:42:30.474360279Z /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/each_batch.rb:56:in `step'
2019-07-07T06:42:30.474368659Z /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/each_batch.rb:56:in `each_batch'
2019-07-07T06:42:30.474377117Z /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20170828170502_post_deploy_migrate_user_external_mail_data.rb:24:in `up'
2019-07-07T06:42:30.474385991Z /opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:50:in `block (3 levels) in <top (required)>'
2019-07-07T06:42:30.474400932Z /opt/gitlab/embedded/bin/bundle:23:in `load'
2019-07-07T06:42:30.474409233Z /opt/gitlab/embedded/bin/bundle:23:in `<main>'
2019-07-07T06:42:30.474433416Z ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_user_synced_attributes_metadata_on_user_id"
2019-07-07T06:42:30.474444345Z DETAIL: Key (user_id)=(24) already exists.
2019-07-07T06:42:30.474452911Z : INSERT INTO user_synced_attributes_metadata (user_id, provider, email_synced)
2019-07-07T06:42:30.474461247Z SELECT id, email_provider, external_email
2019-07-07T06:42:30.474469630Z FROM users
2019-07-07T06:42:30.474477958Z WHERE external_email = TRUE
2019-07-07T06:42:30.474494442Z AND NOT EXISTS (
2019-07-07T06:42:30.474503441Z SELECT true
2019-07-07T06:42:30.474511760Z FROM user_synced_attributes_metadata
2019-07-07T06:42:30.474519993Z WHERE user_id = users.id
2019-07-07T06:42:30.474528040Z AND provider = users.email_provider OR (provider IS NULL AND users.email_provider IS NULL)
2019-07-07T06:42:30.474536633Z )
2019-07-07T06:42:30.474544735Z AND id BETWEEN 1 AND 83
2019-07-07T06:42:30.474553027Z /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20170828170502_post_deploy_migrate_user_external_mail_data.rb:27:in `block in up'
2019-07-07T06:42:30.474561527Z /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/each_batch.rb:75:in `block in each_batch'
2019-07-07T06:42:30.474570081Z /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/each_batch.rb:56:in `step'
2019-07-07T06:42:30.474578345Z /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/each_batch.rb:56:in `each_batch'
2019-07-07T06:42:30.474586768Z /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20170828170502_post_deploy_migrate_user_external_mail_data.rb:24:in `up'
2019-07-07T06:42:30.474595313Z /opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:50:in `block (3 levels) in <top (required)>'
2019-07-07T06:42:30.474604092Z /opt/gitlab/embedded/bin/bundle:23:in `load'
2019-07-07T06:42:30.474612282Z /opt/gitlab/embedded/bin/bundle:23:in `<main>'
2019-07-07T06:42:30.474620704Z PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_user_synced_attributes_metadata_on_user_id"
2019-07-07T06:42:30.474629332Z DETAIL: Key (user_id)=(24) already exists.
2019-07-07T06:42:30.475435876Z /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20170828170502_post_deploy_migrate_user_external_mail_data.rb:27:in `block in up'
2019-07-07T06:42:30.475458434Z /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/each_batch.rb:75:in `block in each_batch'
2019-07-07T06:42:30.475468390Z /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/each_batch.rb:56:in `step'
2019-07-07T06:42:30.475477177Z /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/each_batch.rb:56:in `each_batch'
2019-07-07T06:42:30.475485656Z /opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20170828170502_post_deploy_migrate_user_external_mail_data.rb:24:in `up'
2019-07-07T06:42:30.475494628Z /opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:50:in `block (3 levels) in <top (required)>'
2019-07-07T06:42:30.475503392Z /opt/gitlab/embedded/bin/bundle:23:in `load'
2019-07-07T06:42:30.475511575Z /opt/gitlab/embedded/bin/bundle:23:in `<main>'
2019-07-07T06:42:30.475519940Z Tasks: TOP => db:migrate
2019-07-07T06:42:30.475536553Z (See full trace by running task with --trace)
2019-07-07T06:42:30.475558923Z == 20170828170502 PostDeployMigrateUserExternalMailData: migrating ============
2019-07-07T06:42:30.475568493Z -- execute(" INSERT INTO user_synced_attributes_metadata (user_id, provider, email_synced)\n SELECT id, email_provider, external_email\n FROM users\n WHERE external_email = TRUE\n AND NOT EXISTS (\n SELECT true\n FROM user_synced_attributes_metadata\n WHERE user_id = users.id\n AND provider = users.email_provider OR (provider IS NULL AND users.email_provider IS NULL)\n )\n AND id BETWEEN 1 AND 83\n")
2019-07-07T06:42:30.475592235Z STDERR:
2019-07-07T06:42:30.475600812Z ---- End output of "bash" "/tmp/chef-script20190707-31-1gl4grf" ----
2019-07-07T06:42:30.475609680Z Ran "bash" "/tmp/chef-script20190707-31-1gl4grf" returned 1
2019-07-07T06:42:30.475618506Z
2019-07-07T06:42:30.475629782Z Resource Declaration:
2019-07-07T06:42:30.475637997Z ---------------------
2019-07-07T06:42:30.475646121Z # In /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/database_migrations.rb
2019-07-07T06:42:30.475654399Z
2019-07-07T06:42:30.475662402Z 51: bash "migrate gitlab-rails database" do
2019-07-07T06:42:30.475670793Z 52: code <<-EOH
2019-07-07T06:42:30.475679168Z 53: set -e
2019-07-07T06:42:30.475687488Z 54: log_file="#{node['gitlab']['gitlab-rails']['log_directory']}/gitlab-rails-db-migrate-$(date +%Y-%m-%d-%H-%M-%S).log"
2019-07-07T06:42:30.475696166Z 55: umask 077
2019-07-07T06:42:30.475704362Z 56: /opt/gitlab/bin/gitlab-rake gitlab:db:configure 2>& 1 | tee ${log_file}
2019-07-07T06:42:30.475712867Z 57: STATUS=${PIPESTATUS[0]}
2019-07-07T06:42:30.475721032Z 58: echo $STATUS > #{db_migrate_status_file}
2019-07-07T06:42:30.475729542Z 59: exit $STATUS
2019-07-07T06:42:30.475737660Z 60: EOH
2019-07-07T06:42:30.475745891Z 61: environment env_variables unless env_variables.empty?
2019-07-07T06:42:30.475754297Z 62: notifies :run, 'execute[enable pg_trgm extension]', :before if omnibus_helper.service_enabled?('postgresql')
2019-07-07T06:42:30.475762886Z 63: notifies :run, "execute[clear the gitlab-rails cache]", :immediately
2019-07-07T06:42:30.475771392Z 64: dependent_services.each do |svc|
2019-07-07T06:42:30.475779439Z 65: notifies :restart, svc, :immediately
2019-07-07T06:42:30.475787645Z 66: end
2019-07-07T06:42:30.476621924Z 67: not_if "(test -f #{db_migrate_status_file}) && (cat #{db_migrate_status_file} | grep -Fx 0)"
2019-07-07T06:42:30.476657408Z 68: only_if { node['gitlab']['gitlab-rails']['auto_migrate'] }
2019-07-07T06:42:30.476675466Z 69: end
2019-07-07T06:42:30.476684535Z
2019-07-07T06:42:30.476692569Z Compiled Resource:
2019-07-07T06:42:30.476700659Z ------------------
2019-07-07T06:42:30.476708930Z # Declared in /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/database_migrations.rb:51:in `from_file'
2019-07-07T06:42:30.476717336Z
2019-07-07T06:42:30.476725399Z bash("migrate gitlab-rails database") do
2019-07-07T06:42:30.476733729Z action [:run]
2019-07-07T06:42:30.476741724Z updated true
2019-07-07T06:42:30.476749891Z retries 0
2019-07-07T06:42:30.476768565Z retry_delay 2
2019-07-07T06:42:30.476778591Z default_guard_interpreter :default
2019-07-07T06:42:30.476786988Z command "migrate gitlab-rails database"
2019-07-07T06:42:30.476795303Z backup 5
2019-07-07T06:42:30.476803218Z returns 0
2019-07-07T06:42:30.476811983Z code " set -e\n log_file=\"/var/log/gitlab/gitlab-rails/gitlab-rails-db-migrate-$(date +%Y-%m-%d-%H-%M-%S).log\"\n umask 077\n /opt/gitlab/bin/gitlab-rake gitlab:db:configure 2>& 1 | tee ${log_file}\n STATUS=${PIPESTATUS[0]}\n echo $STATUS > /var/opt/gitlab/gitlab-rails/upgrade-status/db-migrate-873248b1f0d3a7a5535771a3a1635803-2417795\n exit $STATUS\n"
2019-07-07T06:42:30.476822766Z interpreter "bash"
2019-07-07T06:42:30.476830992Z declared_type :bash
2019-07-07T06:42:30.476839062Z cookbook_name "gitlab"
2019-07-07T06:42:30.476847142Z recipe_name "database_migrations"
2019-07-07T06:42:30.476856177Z not_if "(test -f /var/opt/gitlab/gitlab-rails/upgrade-status/db-migrate-873248b1f0d3a7a5535771a3a1635803-2417795) && (cat /var/opt/gitlab/gitlab-rails/upgrade-status/db-migrate-873248b1f0d3a7a5535771a3a1635803-2417795 | grep -Fx 0)"
2019-07-07T06:42:30.476865517Z only_if { #code block }
2019-07-07T06:42:30.476873656Z end
2019-07-07T06:42:30.476881468Z
2019-07-07T06:42:30.476889514Z Platform:
2019-07-07T06:42:30.476920517Z ---------
2019-07-07T06:42:30.476929000Z x86_64-linux
2019-07-07T06:42:30.476937296Z
[root@sgprojcgit /]#
Edited by sword liu