rspec migration pg12 single-db 5/9
Passed Started
by
@leetickett

Lee Tickett
1Running with gitlab-runner 15.1.0~beta.20.g62206bb2 (62206bb2)2 on blue-2.shared-gitlab-org.runners-manager.gitlab.com/default NL4gfoBe3 feature flags: FF_USE_FASTZIP:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:ac3b8cd6a8b42e839456256bc514d6230b5a2538c738b3d522e1384a2a172b96 for postgres:12 with digest postgres@sha256:e6ffad42c91a4d5a29257a27ac4e160c3ae7196696b37bf2e80410024ed95951 ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:09401fed2a421bf0019f96dcec70c85f82ec7b76beb1ae589547b0dc302d6b76 for redis:6.0-alpine with digest redis@sha256:217a9db40a914cc3f6206a143a4d750da0607500cc013a147a4979e08e40beff ...13Waiting for services to be up and running (timeout 30 seconds)...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 ...16Using docker image sha256:642191311550aaa03aba1d11d8d921042ead8ee5afeb833fc7e4e3f933b7ed04 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12@sha256:f0990c59018be757dd56365bb2cc6791d65f3f4bf99a431c3b26e3df08260f6a ...18Running on runner-nl4gfobe-project-278964-concurrent-0 via runner-nl4gfobe-shared-gitlab-org-1656917435-16439853...20$ eval "$CI_PRE_CLONE_SCRIPT"21Fetching changes with git depth set to 20...22Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/23Created fresh repository.24remote: Enumerating objects: 115982, done. 25remote: Counting objects: 100% (115982/115982), done. 26remote: Compressing objects: 100% (81018/81018), done. 27remote: Total 115982 (delta 48513), reused 75495 (delta 30560), pack-reused 0 28Receiving objects: 100% (115982/115982), 108.44 MiB | 32.91 MiB/s, done.29Resolving deltas: 100% (48513/48513), done.31 * [new ref] refs/pipelines/579176392 -> refs/pipelines/57917639232Checking out 204b4379 as refs/merge-requests/91556/merge...33Skipping Git submodules setup34$ git remote set-url origin "${CI_REPOSITORY_URL}"36Checking cache for ruby-gems-debian-bullseye-ruby-2.7-10...37cache.zip is up to date 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-10...40cache.zip is up to date 41Successfully extracted cache43Downloading artifacts for compile-test-assets (2673336706)...44Downloading artifacts from coordinator... ok id=2673336706 responseStatus=200 OK token=yc_nH_AG45Downloading artifacts for detect-tests (2673336715)...46Downloading artifacts from coordinator... ok id=2673336715 responseStatus=200 OK token=yc_nH_AG47Downloading artifacts for retrieve-tests-metadata (2673336722)...48Downloading artifacts from coordinator... ok id=2673336722 responseStatus=200 OK token=yc_nH_AG49Downloading artifacts for setup-test-env (2673336712)...50Downloading artifacts from coordinator... ok id=2673336712 responseStatus=200 OK token=yc_nH_AG52Using docker image sha256:642191311550aaa03aba1d11d8d921042ead8ee5afeb833fc7e4e3f933b7ed04 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-101-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.17-node-16.14-postgresql-12@sha256:f0990c59018be757dd56365bb2cc6791d65f3f4bf99a431c3b26e3df08260f6a ...53$ echo $FOSS_ONLY54$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb55$ export GOPATH=$CI_PROJECT_DIR/.go56$ mkdir -p $GOPATH57$ source scripts/utils.sh58$ source scripts/prepare_build.sh593.2.3360Bundler version 2.2.3361Successfully installed bundler-2.3.15621 gem installed63production:development64Settings are listed in order of priority. The top value will be used.65clean66Set for your local app (/builds/gitlab-org/gitlab/.bundle/config): true67frozen68Set via BUNDLE_FROZEN: true69install_flags70Set via BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3 --quiet"71path72Set for your local app (/builds/gitlab-org/gitlab/.bundle/config): "/builds/gitlab-org/gitlab/vendor"73without74Set via BUNDLE_WITHOUT: [:production, :development]75$ bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check76Don't run Bundler as root. Bundler can ask for sudo if it is needed, and77installing your bundle as root will break this application for all non-root78users on this machine.79The Gemfile's dependencies are satisfied80==> 'bundle install --jobs=$(nproc) --retry=3 --quiet && bundle check' succeeded in 2 seconds.81$ bundle pristine pg82Installing pg 1.3.5 with native extensions83==> 'bundle pristine pg' succeeded in 9 seconds.84$ setup_db_user_only85CREATE ROLE86GRANT87==> 'setup_db_user_only' succeeded in 0 seconds.88$ bundle exec rake db:drop db:create db:schema:load db:migrate89Dropped database 'gitlabhq_test'90Dropped database 'gitlabhq_geo_test'91Created database 'gitlabhq_test'92Created database 'gitlabhq_geo_test'93==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 31 seconds.94$ setup_db_praefect95SELECT pg_catalog.set_config('search_path', '', false);96CREATE DATABASE praefect_test ENCODING 'UTF8';97==> 'setup_db_praefect' succeeded in 1 seconds.98$ run_timed_command "gem install knapsack --no-document"99$ gem install knapsack --no-document100Successfully installed knapsack-4.0.01011 gem installed102==> 'gem install knapsack --no-document' succeeded in 0 seconds.103$ run_timed_command "scripts/gitaly-test-spawn"104$ scripts/gitaly-test-spawn105find: ‘/builds/gitlab-org/gitlab/tmp/tests/gitaly/cmd’: No such file or directory106Don't run Bundler as root. Bundler can ask for sudo if it is needed, and107installing your bundle as root will break this application for all non-root108users on this machine.109Using abstract_type 0.0.7110Using concurrent-ruby 1.1.10111Using i18n 1.10.0112Using minitest 5.15.0113Using tzinfo 2.0.4114Using zeitwerk 2.5.4115Using activesupport 6.1.4.7116Using builder 3.2.4117Using erubi 1.10.0118Using mini_portile2 2.8.0119Using racc 1.6.0120Using nokogiri 1.13.6 (x86_64-linux)121Using rails-dom-testing 2.0.3122Using crass 1.0.6123Using loofah 2.16.0124Using rails-html-sanitizer 1.4.2125Using actionview 6.1.4.7126Using rack 2.2.3127Using rack-test 1.1.0128Using actionpack 6.1.4.7129Using ice_nine 0.11.2130Using thread_safe 0.3.6131Using memoizable 0.4.2132Using adamantium 0.2.0133Using public_suffix 4.0.6134Using addressable 2.7.0135Using ast 2.4.2136Using binding_ninja 0.2.3137Using bundler 2.3.15138Using charlock_holmes 0.7.7139Using coderay 1.1.2140Using equalizer 0.0.11141Using concord 0.1.5142Using diff-lcs 1.3143Using dotenv 2.7.6144Using escape_utils 1.2.1145Using factory_bot 5.0.2146Using multipart-post 2.1.1147Using faraday 1.0.1148Using ffi 1.15.3149Using json 2.5.1150Using gemojione 3.3.0151Using mini_mime 1.0.2152Using rugged 1.2.0153Using github-linguist 7.12.1154Using github-markup 1.7.0155Using mime-types-data 3.2020.1104156Using mime-types 3.3.1157Using gitlab-gollum-rugged_adapter 0.4.4.4.gitlab.1158Using rouge 3.27.0159Using sanitize 6.0.0160Using stringex 2.8.5161Using gitlab-gollum-lib 4.2.7.10.gitlab.2162Using google-protobuf 3.19.1 (x86_64-linux)163Using googleapis-common-protos-types 1.3.0164Using grpc 1.42.0 (x86_64-linux)165Using opentracing 0.5.0166Using thrift 0.15.0167Using jaeger-client 1.1.0168Using pg_query 2.1.1169Using redis 4.4.0170Using gitlab-labkit 0.23.0171Using rubyzip 2.3.2172Using thor 1.1.0173Using tomlrb 2.0.1174Using with_env 1.1.0175Using rexml 3.2.5176Using xml-simple 1.1.9177Using gitlab-license_finder 6.14.2.1178Using gitlab-markup 1.7.1179Using grpc-tools 1.42.0180Using sawyer 0.8.2181Using octokit 4.20.0182Using reverse_markdown 1.4.0183Using licensee 9.14.1184Using method_source 0.9.2185Using msgpack 1.3.3186Using optimist 3.0.1187Using parallel 1.19.2188Using parser 3.0.3.2189Using procto 0.0.3190Using unparser 0.4.7191Using proc_to_ast 0.1.0192Using pry 0.12.2193Using rainbow 3.0.0194Using rbtrace 0.4.14195Using rdoc 6.3.2196Using regexp_parser 1.8.1197Using rspec-support 3.8.0198Using rspec-core 3.8.0199Using rspec-expectations 3.8.3200Using rspec-mocks 3.8.0201Using rspec 3.8.0202Using rspec-parameterized 0.4.2203Using rubocop-ast 0.2.0204Using ruby-progressbar 1.10.1205Using unicode-display_width 1.7.0206Using rubocop 0.86.0207Using sentry-raven 3.0.4208Using timecop 0.9.1209Bundle complete! 22 Gemfile dependencies, 100 gems now installed.210Gems in the groups 'production' and 'development' were not installed.211Bundled gems are installed into `/builds/gitlab-org/gitlab/vendor/gitaly-ruby`212Checking gitaly-ruby Gemfile...213Checking gitaly-ruby bundle...214The Gemfile's dependencies are satisfied215Trying to connect to gitaly: ......................................... OK216Trying to connect to gitaly2: ...................................................... OK217Starting Praefect with in-memory election strategyTrying to connect to praefect: ....... OK218==> 'scripts/gitaly-test-spawn' succeeded in 11 seconds.219$ source ./scripts/rspec_helpers.sh220$ rspec_paralellized_job "--tag ~quarantine --tag level:migration"221SKIP_FLAKY_TESTS_AUTOMATICALLY: true222RETRY_FAILED_TESTS_IN_NEW_PROCESS: true223KNAPSACK_GENERATE_REPORT: true224FLAKY_RSPEC_GENERATE_REPORT: true225KNAPSACK_TEST_FILE_PATTERN: spec/{migrations,lib/gitlab/background_migration,lib/ee/gitlab/background_migration}{,/**/}*_spec.rb226KNAPSACK_LOG_LEVEL: debug227KNAPSACK_REPORT_PATH: knapsack/rspec_migration_pg12_single-db_5_9_report.json228FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json229FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_migration_pg12_single-db_5_9_report.json230NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_migration_pg12_single-db_5_9_report.json231SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_migration_pg12_single-db_5_9_report.txt232RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_migration_pg12_single-db_5_9_report.txt233CRYSTALBALL: 234Knapsack report generator started!235DEPRECATION WARNING: /builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/activerecord-6.1.4.7/lib/active_record/connection_adapters/postgresql_adapter.rb:78: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call236/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/pg-1.3.5/lib/pg.rb:68: warning: The called method `connect' is defined here237 (called from new_client at /builds/gitlab-org/gitlab/config/initializers/00_connection_logger.rb:21)238Run options:239 include {:level=>"migration"}240 exclude {:quarantine=>true}241Test environment set up in 0.541992613 seconds242Gitlab::BackgroundMigration::LegacyUploadMover243 when no note found for the upload244 behaves like legacy upload deletion245 removes the upload record246 when upload does not belong to a note247 does not remove the upload248 when the upload move fails249 behaves like move error250 does not remove the upload file251 when the upload is in local storage252 when the upload file does not exist on the filesystem253 behaves like legacy upload deletion254/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil255/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil256 removes the upload record257 when an upload belongs to a legacy_diff_note258 when the file does not exist for the upload259 behaves like move error260 does not remove the upload file261 when the file does not exist on expected path262 behaves like move error263 does not remove the upload file264 when the file path does not include system/note/attachment265 behaves like move error266 does not remove the upload file267 when the file move raises an error268 behaves like move error269 does not remove the upload file270 when upload has mount_point nil271 behaves like migrates the file correctly272/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil273/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil274 creates a new upload record correctly, updates the legacy upload note so that it references the file in the markdown, removes the attachment from the note model, removes the file, moves legacy uploads to the correct location, removes the upload record275 when the file can be handled correctly276 behaves like migrates the file correctly277/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil278/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil279 creates a new upload record correctly, updates the legacy upload note so that it references the file in the markdown, removes the attachment from the note model, removes the file, moves legacy uploads to the correct location, removes the upload record280 when object storage is disabled for FileUploader281 when the file belongs to a legacy project282 behaves like migrates the file correctly283/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil284/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil285 creates a new upload record correctly, updates the legacy upload note so that it references the file in the markdown, removes the attachment from the note model, removes the file, moves legacy uploads to the correct location, removes the upload record286 when the file belongs to a hashed project287 behaves like migrates the file correctly288/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil289/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil290 creates a new upload record correctly, updates the legacy upload note so that it references the file in the markdown, removes the attachment from the note model, removes the file, moves legacy uploads to the correct location, removes the upload record291 when object storage is enabled for FileUploader292 when the file belongs to a legacy project293 behaves like migrates the file correctly294/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil295/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil296 creates a new upload record correctly, updates the legacy upload note so that it references the file in the markdown, removes the attachment from the note model, removes the file, moves legacy uploads to the correct location, removes the upload record297 when the file belongs to a hashed project298 behaves like migrates the file correctly299/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil300/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil301 creates a new upload record correctly, updates the legacy upload note so that it references the file in the markdown, removes the attachment from the note model, removes the file, moves legacy uploads to the correct location, removes the upload record302 when legacy uploads are stored in object storage303 when the upload file does not exist on the filesystem304 behaves like legacy upload deletion305/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil306/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil307 removes the upload record308 when the file belongs to a legacy project309 behaves like migrates the file correctly310/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil311/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil312 creates a new upload record correctly, updates the legacy upload note so that it references the file in the markdown, removes the attachment from the note model, removes the file, moves legacy uploads to the correct location, removes the upload record313 when the file belongs to a hashed project314 behaves like migrates the file correctly315/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil316/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil317 creates a new upload record correctly, updates the legacy upload note so that it references the file in the markdown, removes the attachment from the note model, removes the file, moves legacy uploads to the correct location, removes the upload record318ChangeWebHookEventsDefault319== 20210420012444 ChangeWebHookEventsDefault: migrating =======================320-- change_column_default(:web_hooks, :push_events, true)321 -> 0.0064s322-- change_column_default(:web_hooks, :issues_events, false)323 -> 0.0051s324-- change_column_default(:web_hooks, :merge_requests_events, false)325 -> 0.0050s326-- change_column_default(:web_hooks, :tag_push_events, false)327 -> 0.0053s328== 20210420012444 ChangeWebHookEventsDefault: migrated (0.0221s) ==============329 sets default values330CopyAdoptionSnapshotNamespace331== 20210430134202 CopyAdoptionSnapshotNamespace: migrating ====================332-- execute(" UPDATE analytics_devops_adoption_snapshots snapshots\n SET namespace_id = segments.namespace_id\n FROM analytics_devops_adoption_segments segments\n WHERE snapshots.namespace_id IS NULL AND segments.id = snapshots.segment_id\n")333 -> 0.0034s334== 20210430134202 CopyAdoptionSnapshotNamespace: migrated (0.0035s) ===========335 updates all snapshots without namespace set336Gitlab::BackgroundMigration::UpdateUsersWhereTwoFactorAuthRequiredFromGroup337 #perform338 with group members339 updates user when user should be required to establish two factor authentication340 does not update user who is not in current batch341 updates all users in current batch342 updates user when user is member of group in which parent group requires two factor authentication343 updates user when user is member of a group and the subgroup requires two factor authentication344 does not update user when not a member of a group that requires two factor authentication345Gitlab::BackgroundMigration::MoveContainerRegistryEnabledToProjectFeature346 #perform347 copies values to project_features348 when no projects exist in range349 does not fail350 when projects in range all have nil container_registry_enabled351 does not fail352Gitlab::BackgroundMigration::UpdateJiraTrackerDataDeploymentTypeBasedOnUrl353 changes unknown deployment_types based on URL354ScheduleUpdateTimelogsProjectId355== 20210427212034 ScheduleUpdateTimelogsProjectId: migrating ==================356-- Scheduled 2 UpdateTimelogsProjectId jobs with a maximum of 2 records per batch and an interval of 120 seconds.357The migration is expected to take at least 240 seconds. Expect all jobs to have completed after 2022-07-04 07:19:43 UTC."358== 20210427212034 ScheduleUpdateTimelogsProjectId: migrated (0.0179s) =========359 correctly schedules background migrations360DropTemporaryColumnsAndTriggersForCiBuildTraceChunks361main: == 20210906100316 DropTemporaryColumnsAndTriggersForCiBuildTraceChunks: migrating 362main: -- remove_column("ci_build_trace_chunks", "build_id_convert_to_bigint")363main: -> 0.0012s364main: == 20210906100316 DropTemporaryColumnsAndTriggersForCiBuildTraceChunks: migrated (0.0067s) 365 correctly migrates up and down366The application_settings (main) table has 1246 columns.367Recreating the database368Dropped database 'gitlabhq_test'369Dropped database 'gitlabhq_geo_test'370Created database 'gitlabhq_test'371Created database 'gitlabhq_geo_test'372Databases re-creation done in 5.520172844000172373ScheduleCopyCiBuildsColumnsToSecurityScans2374== 20210816183304 ScheduleCopyCiBuildsColumnsToSecurityScans2: migrating ======375-- Scheduled 2 CopyCiBuildsColumnsToSecurityScans jobs with a maximum of 2 records per batch and an interval of 120 seconds.376The migration is expected to take at least 240 seconds. Expect all jobs to have completed after 2022-07-04 07:21:08 UTC."377== 20210816183304 ScheduleCopyCiBuildsColumnsToSecurityScans2: migrated (0.0788s) 378 schedules background migrations379DropInt4ColumnForEvents380main: == 20210922082019 DropInt4ColumnForEvents: migrating ==========================381main: -- remove_column(:events, :id_convert_to_bigint, :integer, {:null=>false, :default=>0})382main: -> 0.0015s383main: == 20210922082019 DropInt4ColumnForEvents: migrated (0.0017s) =================384 correctly migrates up and down385SliceMergeRequestDiffCommitMigrations386 #up387 when there are no jobs to process388 does nothing389 when there are pending jobs390-- transaction()391 -> 0.0287s392 marks the old jobs as finished393-- transaction()394 -> 0.0340s395 the jobs are slices into smaller ranges396-- transaction()397 -> 0.0322s398 schedules a background migration for the first job399UpdateApplicationSettingsProtectedPaths400 #up401main: == 20211215182006 UpdateApplicationSettingsProtectedPaths: migrating ==========402main: -- change_column_default(:application_settings, :protected_paths, ["/users/password", "/users/sign_in", "/api/v3/session.json", "/api/v3/session", "/api/v4/session.json", "/api/v4/session", "/users", "/users/confirmation", "/unsubscribes/", "/import/github/personal_access_token", "/admin/session"])403main: -> 0.2541s404main: == 20211215182006 UpdateApplicationSettingsProtectedPaths: migrated (0.9282s) =405 removes the OAuth paths from the default value and persisted records406 #down407main: == 20211215182006 UpdateApplicationSettingsProtectedPaths: migrating ==========408main: -- change_column_default(:application_settings, :protected_paths, ["/users/password", "/users/sign_in", "/api/v3/session.json", "/api/v3/session", "/api/v4/session.json", "/api/v4/session", "/users", "/users/confirmation", "/unsubscribes/", "/import/github/personal_access_token", "/admin/session"])409main: -> 0.1296s410main: == 20211215182006 UpdateApplicationSettingsProtectedPaths: migrated (0.6674s) =411 adds the OAuth paths to the default value and persisted records412Gitlab::BackgroundMigration::ExtractProjectTopicsIntoSeparateTable413 correctly extracts project topics into separate table414AddInsertOrUpdateVulnerabilityReadsTrigger415 #up416 UPDATE trigger417 when vulnerability_id is updated418main: == 20220106111958 AddInsertOrUpdateVulnerabilityReadsTrigger: migrating =======419main: -- execute("CREATE OR REPLACE FUNCTION insert_or_update_vulnerability_reads()\nRETURNS TRIGGER\nLANGUAGE plpgsql\nAS $$\nDECLARE\n severity smallint;\n state smallint;\n report_type smallint;\n resolved_on_default_branch boolean;\nBEGIN\n IF (NEW.vulnerability_id IS NULL AND (TG_OP = 'INSERT' OR TG_OP = 'UPDATE')) THEN\n RETURN NULL;\n END IF;\n\n IF (TG_OP = 'UPDATE' AND OLD.vulnerability_id IS NOT NULL AND NEW.vulnerability_id IS NOT NULL) THEN\n RETURN NULL;\n END IF;\n\n SELECT\n vulnerabilities.severity, vulnerabilities.state, vulnerabilities.report_type, vulnerabilities.resolved_on_default_branch\n INTO\n severity, state, report_type, resolved_on_default_branch\n FROM\n vulnerabilities\n WHERE\n vulnerabilities.id = NEW.vulnerability_id;\n\n INSERT INTO vulnerability_reads (vulnerability_id, project_id, scanner_id, report_type, severity, state, resolved_on_default_branch, uuid, location_image, cluster_agent_id)\n VALUES (NEW.vulnerability_id, NEW.project_id, NEW.scanner_id, report_type, severity, state, resolved_on_default_branch, NEW.uuid::uuid, NEW.location->>'image', NEW.location->'kubernetes_resource'->>'agent_id')\n ON CONFLICT(vulnerability_id) DO NOTHING;\n RETURN NULL;\nEND\n$$;\n")420main: -> 0.0020s421main: -- execute("CREATE TRIGGER trigger_insert_or_update_vulnerability_reads_from_occurrences\nAFTER INSERT OR UPDATE ON vulnerability_occurrences\nFOR EACH ROW\nEXECUTE PROCEDURE insert_or_update_vulnerability_reads();\n")422main: -> 0.0012s423main: == 20220106111958 AddInsertOrUpdateVulnerabilityReadsTrigger: migrated (0.0035s) 424 creates a new vulnerability_reads row425 when vulnerability_id is not updated426main: == 20220106111958 AddInsertOrUpdateVulnerabilityReadsTrigger: migrating =======427main: -- execute("CREATE OR REPLACE FUNCTION insert_or_update_vulnerability_reads()\nRETURNS TRIGGER\nLANGUAGE plpgsql\nAS $$\nDECLARE\n severity smallint;\n state smallint;\n report_type smallint;\n resolved_on_default_branch boolean;\nBEGIN\n IF (NEW.vulnerability_id IS NULL AND (TG_OP = 'INSERT' OR TG_OP = 'UPDATE')) THEN\n RETURN NULL;\n END IF;\n\n IF (TG_OP = 'UPDATE' AND OLD.vulnerability_id IS NOT NULL AND NEW.vulnerability_id IS NOT NULL) THEN\n RETURN NULL;\n END IF;\n\n SELECT\n vulnerabilities.severity, vulnerabilities.state, vulnerabilities.report_type, vulnerabilities.resolved_on_default_branch\n INTO\n severity, state, report_type, resolved_on_default_branch\n FROM\n vulnerabilities\n WHERE\n vulnerabilities.id = NEW.vulnerability_id;\n\n INSERT INTO vulnerability_reads (vulnerability_id, project_id, scanner_id, report_type, severity, state, resolved_on_default_branch, uuid, location_image, cluster_agent_id)\n VALUES (NEW.vulnerability_id, NEW.project_id, NEW.scanner_id, report_type, severity, state, resolved_on_default_branch, NEW.uuid::uuid, NEW.location->>'image', NEW.location->'kubernetes_resource'->>'agent_id')\n ON CONFLICT(vulnerability_id) DO NOTHING;\n RETURN NULL;\nEND\n$$;\n")428main: -> 0.0034s429main: -- execute("CREATE TRIGGER trigger_insert_or_update_vulnerability_reads_from_occurrences\nAFTER INSERT OR UPDATE ON vulnerability_occurrences\nFOR EACH ROW\nEXECUTE PROCEDURE insert_or_update_vulnerability_reads();\n")430main: -> 0.0017s431main: == 20220106111958 AddInsertOrUpdateVulnerabilityReadsTrigger: migrated (0.0057s) 432 does not create a new vulnerability_reads row433 INSERT trigger434 when vulnerability_id is set435main: == 20220106111958 AddInsertOrUpdateVulnerabilityReadsTrigger: migrating =======436main: -- execute("CREATE OR REPLACE FUNCTION insert_or_update_vulnerability_reads()\nRETURNS TRIGGER\nLANGUAGE plpgsql\nAS $$\nDECLARE\n severity smallint;\n state smallint;\n report_type smallint;\n resolved_on_default_branch boolean;\nBEGIN\n IF (NEW.vulnerability_id IS NULL AND (TG_OP = 'INSERT' OR TG_OP = 'UPDATE')) THEN\n RETURN NULL;\n END IF;\n\n IF (TG_OP = 'UPDATE' AND OLD.vulnerability_id IS NOT NULL AND NEW.vulnerability_id IS NOT NULL) THEN\n RETURN NULL;\n END IF;\n\n SELECT\n vulnerabilities.severity, vulnerabilities.state, vulnerabilities.report_type, vulnerabilities.resolved_on_default_branch\n INTO\n severity, state, report_type, resolved_on_default_branch\n FROM\n vulnerabilities\n WHERE\n vulnerabilities.id = NEW.vulnerability_id;\n\n INSERT INTO vulnerability_reads (vulnerability_id, project_id, scanner_id, report_type, severity, state, resolved_on_default_branch, uuid, location_image, cluster_agent_id)\n VALUES (NEW.vulnerability_id, NEW.project_id, NEW.scanner_id, report_type, severity, state, resolved_on_default_branch, NEW.uuid::uuid, NEW.location->>'image', NEW.location->'kubernetes_resource'->>'agent_id')\n ON CONFLICT(vulnerability_id) DO NOTHING;\n RETURN NULL;\nEND\n$$;\n")437main: -> 0.0024s438main: -- execute("CREATE TRIGGER trigger_insert_or_update_vulnerability_reads_from_occurrences\nAFTER INSERT OR UPDATE ON vulnerability_occurrences\nFOR EACH ROW\nEXECUTE PROCEDURE insert_or_update_vulnerability_reads();\n")439main: -> 0.0012s440main: == 20220106111958 AddInsertOrUpdateVulnerabilityReadsTrigger: migrated (0.0037s) 441 creates a new vulnerability_reads row442 when vulnerability_id is not set443main: == 20220106111958 AddInsertOrUpdateVulnerabilityReadsTrigger: migrating =======444main: -- execute("CREATE OR REPLACE FUNCTION insert_or_update_vulnerability_reads()\nRETURNS TRIGGER\nLANGUAGE plpgsql\nAS $$\nDECLARE\n severity smallint;\n state smallint;\n report_type smallint;\n resolved_on_default_branch boolean;\nBEGIN\n IF (NEW.vulnerability_id IS NULL AND (TG_OP = 'INSERT' OR TG_OP = 'UPDATE')) THEN\n RETURN NULL;\n END IF;\n\n IF (TG_OP = 'UPDATE' AND OLD.vulnerability_id IS NOT NULL AND NEW.vulnerability_id IS NOT NULL) THEN\n RETURN NULL;\n END IF;\n\n SELECT\n vulnerabilities.severity, vulnerabilities.state, vulnerabilities.report_type, vulnerabilities.resolved_on_default_branch\n INTO\n severity, state, report_type, resolved_on_default_branch\n FROM\n vulnerabilities\n WHERE\n vulnerabilities.id = NEW.vulnerability_id;\n\n INSERT INTO vulnerability_reads (vulnerability_id, project_id, scanner_id, report_type, severity, state, resolved_on_default_branch, uuid, location_image, cluster_agent_id)\n VALUES (NEW.vulnerability_id, NEW.project_id, NEW.scanner_id, report_type, severity, state, resolved_on_default_branch, NEW.uuid::uuid, NEW.location->>'image', NEW.location->'kubernetes_resource'->>'agent_id')\n ON CONFLICT(vulnerability_id) DO NOTHING;\n RETURN NULL;\nEND\n$$;\n")445main: -> 0.0031s446main: -- execute("CREATE TRIGGER trigger_insert_or_update_vulnerability_reads_from_occurrences\nAFTER INSERT OR UPDATE ON vulnerability_occurrences\nFOR EACH ROW\nEXECUTE PROCEDURE insert_or_update_vulnerability_reads();\n")447main: -> 0.0017s448main: == 20220106111958 AddInsertOrUpdateVulnerabilityReadsTrigger: migrated (0.0054s) 449 does not create a new vulnerability_reads row450 #down451main: -- execute("CREATE OR REPLACE FUNCTION insert_or_update_vulnerability_reads()\nRETURNS TRIGGER\nLANGUAGE plpgsql\nAS $$\nDECLARE\n severity smallint;\n state smallint;\n report_type smallint;\n resolved_on_default_branch boolean;\nBEGIN\n IF (NEW.vulnerability_id IS NULL AND (TG_OP = 'INSERT' OR TG_OP = 'UPDATE')) THEN\n RETURN NULL;\n END IF;\n\n IF (TG_OP = 'UPDATE' AND OLD.vulnerability_id IS NOT NULL AND NEW.vulnerability_id IS NOT NULL) THEN\n RETURN NULL;\n END IF;\n\n SELECT\n vulnerabilities.severity, vulnerabilities.state, vulnerabilities.report_type, vulnerabilities.resolved_on_default_branch\n INTO\n severity, state, report_type, resolved_on_default_branch\n FROM\n vulnerabilities\n WHERE\n vulnerabilities.id = NEW.vulnerability_id;\n\n INSERT INTO vulnerability_reads (vulnerability_id, project_id, scanner_id, report_type, severity, state, resolved_on_default_branch, uuid, location_image, cluster_agent_id)\n VALUES (NEW.vulnerability_id, NEW.project_id, NEW.scanner_id, report_type, severity, state, resolved_on_default_branch, NEW.uuid::uuid, NEW.location->>'image', NEW.location->'kubernetes_resource'->>'agent_id')\n ON CONFLICT(vulnerability_id) DO NOTHING;\n RETURN NULL;\nEND\n$$;\n")452main: -> 0.0024s453main: -- execute("CREATE TRIGGER trigger_insert_or_update_vulnerability_reads_from_occurrences\nAFTER INSERT OR UPDATE ON vulnerability_occurrences\nFOR EACH ROW\nEXECUTE PROCEDURE insert_or_update_vulnerability_reads();\n")454main: -> 0.0016s455main: -- execute("DROP TRIGGER IF EXISTS trigger_insert_or_update_vulnerability_reads_from_occurrences ON vulnerability_occurrences")456main: -> 0.0015s457main: -- execute("DROP FUNCTION IF EXISTS insert_or_update_vulnerability_reads()")458main: -> 0.0013s459 drops the trigger460SchedulePopulateStatusColumnOfSecurityScans461 when the Gitlab instance is CE462main: == 20211007155221 SchedulePopulateStatusColumnOfSecurityScans: migrating ======463main: == 20211007155221 SchedulePopulateStatusColumnOfSecurityScans: migrated (0.0002s) 464 does not run the migration465 when the Gitlab instance is EE466main: == 20211007155221 SchedulePopulateStatusColumnOfSecurityScans: migrating ======467main: -- Scheduled 2 PopulateStatusColumnOfSecurityScans jobs with a maximum of 1 records per batch and an interval of 120 seconds.468The migration is expected to take at least 240 seconds. Expect all jobs to have completed after 2022-07-04 07:24:31 UTC."469main: == 20211007155221 SchedulePopulateStatusColumnOfSecurityScans: migrated (0.0336s) 470 schedules the background jobs471ScheduleFixIncorrectMaxSeatsUsed472 #up473main: -- transaction_open?()474main: -> 0.0001s475main: -- index_exists?(:gitlab_subscriptions, :id, {:where=>"start_date >= '2021-08-02' AND start_date <= '2021-11-20' AND max_seats_used != 0 AND max_seats_used > seats_in_use AND max_seats_used > seats", :name=>"tmp_gitlab_subscriptions_max_seats_used_migration", :algorithm=>:concurrently})476main: -> 0.0065s477main: -- add_index(:gitlab_subscriptions, :id, {:where=>"start_date >= '2021-08-02' AND start_date <= '2021-11-20' AND max_seats_used != 0 AND max_seats_used > seats_in_use AND max_seats_used > seats", :name=>"tmp_gitlab_subscriptions_max_seats_used_migration", :algorithm=>:concurrently})478main: -> 0.0021s479 schedules a job on Gitlab.com480main: -- transaction_open?()481main: -> 0.0003s482main: -- index_exists?(:gitlab_subscriptions, :id, {:where=>"start_date >= '2021-08-02' AND start_date <= '2021-11-20' AND max_seats_used != 0 AND max_seats_used > seats_in_use AND max_seats_used > seats", :name=>"tmp_gitlab_subscriptions_max_seats_used_migration", :algorithm=>:concurrently})483main: -> 0.0083s484main: -- Index not created because it already exists (this may be due to an aborted migration or similar): table_name: gitlab_subscriptions, column_name: id485 does not schedule any jobs when not Gitlab.com486ScheduleAddPrimaryEmailToEmailsIfUserConfirmed487main: -- transaction_open?()488main: -> 0.0001s489main: -- Scheduled 2 AddPrimaryEmailToEmailsIfUserConfirmed jobs with a maximum of 2 records per batch and an interval of 120 seconds.490The migration is expected to take at least 240 seconds. Expect all jobs to have completed after 2022-07-04 07:25:25 UTC."491 schedules addition of primary email to emails in delayed batches492Gitlab::BackgroundMigration::BackfillCiProjectMirrors493 #perform494 creates ci_project_mirrors for all projects in range495 handles existing ci_project_mirrors gracefully496The application_settings (main) table has 1209 columns.497Recreating the database498Dropped database 'gitlabhq_test'499Dropped database 'gitlabhq_geo_test'500Created database 'gitlabhq_test'501Created database 'gitlabhq_geo_test'502Databases re-creation done in 5.5907388150001225503UpdateApplicationSettingsContainerRegistryExpPolWorkerCapacityDefault504 with no rows in the application_settings table505main: == 20220215164709 UpdateApplicationSettingsContainerRegistryExpPolWorkerCapacityDefault: migrating 506main: -- change_column_default(:application_settings, :container_registry_expiration_policies_worker_capacity, {:from=>0, :to=>4})507main: -> 0.2671s508main: == 20220215164709 UpdateApplicationSettingsContainerRegistryExpPolWorkerCapacityDefault: migrated (0.2934s) 509 does not insert a row510 with a row in the application_settings table511 with container_registry_expiration_policy_worker_capacity set to a value different than 0512main: == 20220215164709 UpdateApplicationSettingsContainerRegistryExpPolWorkerCapacityDefault: migrating 513main: -- change_column_default(:application_settings, :container_registry_expiration_policies_worker_capacity, {:from=>0, :to=>4})514main: -> 0.2707s515main: == 20220215164709 UpdateApplicationSettingsContainerRegistryExpPolWorkerCapacityDefault: migrated (0.4679s) 516 does not update the row517 with container_registry_expiration_policy_worker_capacity set to 0518main: == 20220215164709 UpdateApplicationSettingsContainerRegistryExpPolWorkerCapacityDefault: migrating 519main: -- change_column_default(:application_settings, :container_registry_expiration_policies_worker_capacity, {:from=>0, :to=>4})520main: -> 0.1317s521main: == 20220215164709 UpdateApplicationSettingsContainerRegistryExpPolWorkerCapacityDefault: migrated (0.5526s) 522 updates the existing row523BackfillIncidentIssueEscalationStatuses524main: == 20211214012507 BackfillIncidentIssueEscalationStatuses: migrating ==========525main: == 20211214012507 BackfillIncidentIssueEscalationStatuses: migrated (0.0000s) =526 does nothing527FinalizeRoutesBackfillingForProjects528 #up529 when routes backfilling migration is missing530main: == 20220516103353 FinalizeRoutesBackfillingForProjects: migrating =============531main: == 20220516103353 FinalizeRoutesBackfillingForProjects: migrated (0.0116s) ====532 warns migration not found533 with backfilling migration present534 when backfilling migration finished successfully535main: == 20220516103353 FinalizeRoutesBackfillingForProjects: migrating =============536main: == 20220516103353 FinalizeRoutesBackfillingForProjects: migrated (0.0341s) ====537 does not raise exception538 with different backfilling migration statuses539 status: 0, description: "paused"540 behaves like finalizes the migration541 finalizes the migration542 status: 1, description: "active"543 behaves like finalizes the migration544 finalizes the migration545 status: 4, description: "failed"546 behaves like finalizes the migration547 finalizes the migration548 status: 5, description: "finalizing"549 behaves like finalizes the migration550 finalizes the migration551UpdateIntegrationsTriggerTypeNewOnInsertNullSafe552main: == 20220211214605 UpdateIntegrationsTriggerTypeNewOnInsertNullSafe: migrating =553main: -- execute("CREATE OR REPLACE FUNCTION integrations_set_type_new()\nRETURNS TRIGGER AS\n$$\nBEGIN\nUPDATE integrations SET type_new = COALESCE(NEW.type_new, regexp_replace(NEW.type, '\\A(.+)Service\\Z', 'Integrations::\\1')) , type = COALESCE(NEW.type, regexp_replace(NEW.type_new, '\\AIntegrations::(.+)\\Z', '\\1Service')) WHERE integrations.id = NEW.id; RETURN NULL;\nEND\n$$ LANGUAGE PLPGSQL\n")554main: -> 0.0027s555main: == 20220211214605 UpdateIntegrationsTriggerTypeNewOnInsertNullSafe: migrated (0.0030s) 556 leaves defined values alone557main: == 20220211214605 UpdateIntegrationsTriggerTypeNewOnInsertNullSafe: migrating =558main: -- execute("CREATE OR REPLACE FUNCTION integrations_set_type_new()\nRETURNS TRIGGER AS\n$$\nBEGIN\nUPDATE integrations SET type_new = COALESCE(NEW.type_new, regexp_replace(NEW.type, '\\A(.+)Service\\Z', 'Integrations::\\1')) , type = COALESCE(NEW.type, regexp_replace(NEW.type_new, '\\AIntegrations::(.+)\\Z', '\\1Service')) WHERE integrations.id = NEW.id; RETURN NULL;\nEND\n$$ LANGUAGE PLPGSQL\n")559main: -> 0.0026s560main: == 20220211214605 UpdateIntegrationsTriggerTypeNewOnInsertNullSafe: migrated (0.0030s) 561 keeps type_new synchronized with type562main: == 20220211214605 UpdateIntegrationsTriggerTypeNewOnInsertNullSafe: migrating =563main: -- execute("CREATE OR REPLACE FUNCTION integrations_set_type_new()\nRETURNS TRIGGER AS\n$$\nBEGIN\nUPDATE integrations SET type_new = COALESCE(NEW.type_new, regexp_replace(NEW.type, '\\A(.+)Service\\Z', 'Integrations::\\1')) , type = COALESCE(NEW.type, regexp_replace(NEW.type_new, '\\AIntegrations::(.+)\\Z', '\\1Service')) WHERE integrations.id = NEW.id; RETURN NULL;\nEND\n$$ LANGUAGE PLPGSQL\n")564main: -> 0.0027s565main: == 20220211214605 UpdateIntegrationsTriggerTypeNewOnInsertNullSafe: migrated (0.0032s) 566 keeps type synchronized with type_new567BackfillNamespaceStatisticsWithDependencyProxySize568 #up569main: == 20220204095121 BackfillNamespaceStatisticsWithDependencyProxySize: migrating 570main: -- exec_query("SELECT dependency_proxy_manifests.group_id FROM dependency_proxy_manifests\nUNION\nSELECT dependency_proxy_blobs.group_id from dependency_proxy_blobs\n")571main: -> 0.0018s572main: == 20220204095121 BackfillNamespaceStatisticsWithDependencyProxySize: migrated (0.0096s) 573 correctly schedules background migrations574RemoveIntegrationsType575main: == 20220213103859 RemoveIntegrationsType: migrating ===========================576main: -- index_exists?(:integrations, :id, {:where=>"type_new is null", :name=>"tmp_idx_integrations_unmigrated_type_new", :algorithm=>:concurrently})577main: -> 0.0122s578main: -- add_index(:integrations, :id, {:where=>"type_new is null", :name=>"tmp_idx_integrations_unmigrated_type_new", :algorithm=>:concurrently})579main: -> 0.0026s580main: -- indexes(:integrations)581main: -> 0.0130s582main: -- remove_index(:integrations, {:algorithm=>:concurrently, :name=>"tmp_idx_integrations_unmigrated_type_new"})583main: -> 0.0022s584main: -- remove_column(:integrations, :type, :text)585main: -> 0.0025s586main: == 20220213103859 RemoveIntegrationsType: migrated (0.1157s) ==================587 performs remaining background migrations588Gitlab::BackgroundMigration::BackfillIntegrationsTypeNew589 backfills `type_new` for the selected records590BulkInsertClusterEnabledGrants591 with namespaces, cluster_groups and cluster_projects592main: == 20220519045133 BulkInsertClusterEnabledGrants: migrating ===================593main: == 20220519045133 BulkInsertClusterEnabledGrants: migrated (0.0338s) ==========594 creates unique cluster_enabled_grants for root_namespaces with clusters595 without namespaces, cluster_groups or cluster_projects596main: == 20220519045133 BulkInsertClusterEnabledGrants: migrating ===================597main: == 20220519045133 BulkInsertClusterEnabledGrants: migrated (0.0605s) ==========598 does nothing599RemoveDuplicateProjectTagReleases600 #up601main: == 20220307192610 RemoveDuplicateProjectTagReleases: migrating ================602main: == 20220307192610 RemoveDuplicateProjectTagReleases: migrated (0.0160s) =======603 correctly removes duplicate tags from the same project604UpdateBatchedBackgroundMigrationArguments605 #up606main: == 20220420135946 UpdateBatchedBackgroundMigrationArguments: migrating ========607main: -- execute("UPDATE batched_background_migrations\nSET job_arguments = '[]'\nWHERE job_arguments = '\"[]\"';\n")608main: -> 0.0034s609main: == 20220420135946 UpdateBatchedBackgroundMigrationArguments: migrated (0.0035s) 610 updates batched migration arguments to have an empty jsonb array611 #down612main: == 20220420135946 UpdateBatchedBackgroundMigrationArguments: migrating ========613main: -- execute("UPDATE batched_background_migrations\nSET job_arguments = '[]'\nWHERE job_arguments = '\"[]\"';\n")614main: -> 0.0029s615main: == 20220420135946 UpdateBatchedBackgroundMigrationArguments: migrated (0.0031s) 616 reverts batched migration arguments to have the previous default617CleanupAfterFixingRegressionWithNewUsersEmails618 adds primary email to emails for confirmed users that do not have their primary email in emails table619 continues in case of errors with one email620Gitlab::BackgroundMigration::PopulateNamespaceStatistics621 creates/updates all namespace_statistics and updates root storage statistics622 when just a stat is passed623 calls the statistics update service with just that stat624 when a statistics update fails625 logs an error626ScheduleBackfillDraftStatusOnMergeRequestsCorrectedRegex627main: == 20220420214703 ScheduleBackfillDraftStatusOnMergeRequestsCorrectedRegex: migrating 628main: -- index_exists?(:merge_requests, :id, {:where=>"draft = false AND state_id = 1 AND ((title)::text ~* '^(\\[draft\\]|\\(draft\\)|draft:|draft|\\[WIP\\]|WIP:|WIP)'::text)", :name=>"tmp_index_merge_requests_draft_and_status", :algorithm=>:concurrently})629main: -> 0.0354s630main: -- add_index(:merge_requests, :id, {:where=>"draft = false AND state_id = 1 AND ((title)::text ~* '^(\\[draft\\]|\\(draft\\)|draft:|draft|\\[WIP\\]|WIP:|WIP)'::text)", :name=>"tmp_index_merge_requests_draft_and_status", :algorithm=>:concurrently})631main: -> 0.0025s632main: -- Scheduled 7 BackfillDraftStatusOnMergeRequestsWithCorrectedRegex jobs with a maximum of 1 records per batch and an interval of 120 seconds.633The migration is expected to take at least 840 seconds. Expect all jobs to have completed after 2022-07-04 07:39:22 UTC."634main: == 20220420214703 ScheduleBackfillDraftStatusOnMergeRequestsCorrectedRegex: migrated (0.1528s) 635 schedules BackfillDraftStatusOnMergeRequests background jobs636Gitlab::BackgroundMigration::BackfillProjectFeaturePackageRegistryAccessLevel637 backfills project_features.package_registry_access_level638Gitlab::BackgroundMigration::Mailers::UnconfirmMailer639 contains abuse report url640Knapsack report was generated. Preview:641{642 "spec/lib/gitlab/background_migration/legacy_upload_mover_spec.rb": 62.01340829300011,643 "spec/migrations/change_web_hook_events_default_spec.rb": 48.24699113199995,644 "spec/migrations/20210430134202_copy_adoption_snapshot_namespace_spec.rb": 45.66584070700014,645 "spec/lib/gitlab/background_migration/update_users_where_two_factor_auth_required_from_group_spec.rb": 50.29465664899999,646 "spec/lib/gitlab/background_migration/move_container_registry_enabled_to_project_feature_spec.rb": 54.1998340130001,647 "spec/lib/gitlab/background_migration/update_jira_tracker_data_deployment_type_based_on_url_spec.rb": 47.41903775599985,648 "spec/migrations/schedule_update_timelogs_project_id_spec.rb": 46.93936317299995,649 "spec/migrations/20210906100316_drop_temporary_columns_and_triggers_for_ci_build_trace_chunks_spec.rb": 35.49730135599998,650 "spec/migrations/schedule_copy_ci_builds_columns_to_security_scans2_spec.rb": 35.85993972899996,651 "spec/migrations/20210922082019_drop_int4_column_for_events_spec.rb": 32.67382220600007,652 "spec/migrations/slice_merge_request_diff_commit_migrations_spec.rb": 37.995510988000206,653 "spec/migrations/update_application_settings_protected_paths_spec.rb": 29.005266591999998,654 "spec/lib/gitlab/background_migration/extract_project_topics_into_separate_table_spec.rb": 36.84773169499999,655 "spec/migrations/20220106111958_add_insert_or_update_vulnerability_reads_trigger_spec.rb": 27.516144769999983,656 "spec/migrations/schedule_populate_status_column_of_security_scans_spec.rb": 31.905512012000145,657 "spec/migrations/schedule_fix_incorrect_max_seats_used_spec.rb": 20.835923989000094,658 "spec/migrations/schedule_add_primary_email_to_emails_if_user_confirmed_spec.rb": 30.983671307000122,659 "spec/lib/gitlab/background_migration/backfill_ci_project_mirrors_spec.rb": 24.701372211000034,660 "spec/migrations/update_application_settings_container_registry_exp_pol_worker_capacity_default_spec.rb": 20.23061011300001,661 "spec/migrations/20211214012507_backfill_incident_issue_escalation_statuses_spec.rb": 21.62412821099997,662 "spec/migrations/finalize_routes_backfilling_for_projects_spec.rb": 12.820586348000006,663 "spec/migrations/20220211214605_update_integrations_trigger_type_new_on_insert_null_safe_spec.rb": 19.194774913000174,664 "spec/migrations/20220204095121_backfill_namespace_statistics_with_dependency_proxy_size_spec.rb": 16.908587920000173,665 "spec/migrations/20220213103859_remove_integrations_type_spec.rb": 16.33198219199994,666 "spec/lib/gitlab/background_migration/backfill_integrations_type_new_spec.rb": 16.06533707499989,667 "spec/migrations/bulk_insert_cluster_enabled_grants_spec.rb": 8.220364257000028,668 "spec/migrations/20220307192610_remove_duplicate_project_tag_releases_spec.rb": 14.871099490999995,669 "spec/migrations/20220420135946_update_batched_background_migration_arguments_spec.rb": 11.545229394999751,670 "spec/migrations/cleanup_after_fixing_regression_with_new_users_emails_spec.rb": 10.445961767999961,671 "spec/lib/gitlab/background_migration/populate_namespace_statistics_spec.rb": 5.801927690999946,672 "spec/migrations/schedule_backfill_draft_status_on_merge_requests_corrected_regex_spec.rb": 10.143438847000198,673 "spec/lib/gitlab/background_migration/backfill_project_feature_package_registry_access_level_spec.rb": 3.2457085589999224,674 "spec/lib/gitlab/background_migration/mailers/unconfirm_mailer_spec.rb": 2.501808887000152675}676Knapsack global time execution for tests: 14m 48s677Finished in 15 minutes 26 seconds (files took 47.17 seconds to load)67881 examples, 0 failures679RSpec exited with 0.680No examples to retry, congrats!682Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-10 due to policy683Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-10 due to policy685Uploading artifacts...686coverage/: found 5 matching files and directories 687crystalball/: found 2 matching files and directories 688WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory 689knapsack/: found 3 matching files and directories 690rspec/: found 8 matching files and directories 691WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 692log/*.log: found 15 matching files and directories 693WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2673336921/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com694WARNING: Retrying... context=artifacts-uploader error=request redirected695Uploading artifacts as "archive" to coordinator... 201 Created id=2673336921 responseStatus=201 Created token=yc_nH_AG696Uploading artifacts...697rspec/junit_rspec.xml: found 1 matching files and directories 698WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/2673336921/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com699WARNING: Retrying... context=artifacts-uploader error=request redirected700Uploading artifacts as "junit" to coordinator... 201 Created id=2673336921 responseStatus=201 Created token=yc_nH_AG702Job succeeded