From 0ededd803cb41d1b77ebb20827609939cf095d65 Mon Sep 17 00:00:00 2001 From: Lucas Charles Date: Tue, 22 Apr 2025 12:30:11 -0700 Subject: [PATCH 1/6] feat: Add gitlab_sec DB support Relates to https://gitlab.com/gitlab-org/database-team/gitlab-com-database-testing/-/issues/158 --- db-testing.yml | 51 ++++++++++++++++++- docker/gitlab/clone_details.yml | 4 ++ docker/gitlab/prepare.sh | 10 ++++ docker/gitlab/table_size.rb | 7 ++- .../spec/migration_failure_notice_spec.rb | 5 +- 5 files changed, 74 insertions(+), 3 deletions(-) diff --git a/db-testing.yml b/db-testing.yml index 937c158e..53db99e6 100644 --- a/db-testing.yml +++ b/db-testing.yml @@ -24,15 +24,18 @@ variables: DBLAB_SSH_HOST: $DBLAB_SSH_HOST_MAIN DBLAB_SSH_HOST_MAIN: $DBLAB_SSH_HOST_MAIN DBLAB_SSH_HOST_CI: $DBLAB_SSH_HOST_CI + DBLAB_SSH_HOST_SEC: $DBLAB_SSH_HOST_SEC DBLAB_TOKEN: $DBLAB_TOKEN DBLAB_USER: $DBLAB_USER DBLAB_PASSWORD: $DBLAB_PASSWORD DBLAB_SSH_BASTION: $DBLAB_SSH_BASTION_NEW DBLAB_API_PORT: $DBLAB_API_PORT_NEW DBLAB_API_PORT_CI: $DBLAB_API_PORT_NEW_CI + DBLAB_API_PORT_SEC: $DBLAB_API_PORT_NEW_SEC DBLAB_ENVIRONMENT: $DBLAB_ENVIRONMENT DBLAB_ENVIRONMENT_CI: $DBLAB_ENVIRONMENT_CI - ALL_DB_HOSTS: "postgres-main,postgres-ci" + DBLAB_ENVIRONMENT_SEC: $DBLAB_ENVIRONMENT_SEC + ALL_DB_HOSTS: "postgres-main,postgres-ci,postgres-sec" DBLAB_CLONE_ID: "database-testing-${CI_PIPELINE_ID}-${CI_JOB_ID}" .notifier-variables: ¬ifier-variables @@ -65,6 +68,13 @@ variables: DBLAB_SSH_HOST: $DBLAB_SSH_HOST_CI DBLAB_ENVIRONMENT: $DBLAB_ENVIRONMENT_CI DBLAB_API_PORT: $DBLAB_API_PORT_CI + - name: ${DOCKER_REGISTRY}/gitlab-com-database-testing-dblab-ssh:latest + alias: postgres-sec + variables: + DBLAB_CLONE_ID: "database-testing-${CI_PIPELINE_ID}-${CI_JOB_ID}-sec" + DBLAB_SSH_HOST: $DBLAB_SSH_HOST_SEC + DBLAB_ENVIRONMENT: $DBLAB_ENVIRONMENT_SEC + DBLAB_API_PORT: $DBLAB_API_PORT_SEC - name: ${DOCKER_REGISTRY}/redis:7.0-alpine alias: redis artifacts: @@ -129,6 +139,13 @@ db:migrations: DBLAB_SSH_HOST: $DBLAB_SSH_HOST_CI DBLAB_ENVIRONMENT: $DBLAB_ENVIRONMENT_CI DBLAB_API_PORT: $DBLAB_API_PORT_CI + - name: ${DOCKER_REGISTRY}/gitlab-com-database-testing-dblab-ssh:latest + alias: postgres-sec + variables: + DBLAB_CLONE_ID: "database-testing-${CI_PIPELINE_ID}-${CI_JOB_ID}-sec" + DBLAB_SSH_HOST: $DBLAB_SSH_HOST_SEC + DBLAB_ENVIRONMENT: $DBLAB_ENVIRONMENT_SEC + DBLAB_API_PORT: $DBLAB_API_PORT_SEC - name: ${DOCKER_REGISTRY}/redis:7.0-alpine alias: redis artifacts: @@ -142,12 +159,16 @@ db:migrations: - ./prepare.sh - mkdir -p tmp/migration-testing/main/up - mkdir -p tmp/migration-testing/ci/up + - mkdir -p tmp/migration-testing/sec/up - mkdir -p tmp/migration-testing/main/background_migrations - mkdir -p tmp/migration-testing/ci/background_migrations + - mkdir -p tmp/migration-testing/sec/background_migrations - bundle exec rake gitlab:db:migration_testing:up:main |& tee tmp/migration-testing/main/up/full-migration-output.log || true - bundle exec rake gitlab:db:migration_testing:up:ci |& tee tmp/migration-testing/ci/up/full-migration-output.log || true + - bundle exec rake gitlab:db:migration_testing:up:sec |& tee tmp/migration-testing/sec/up/full-migration-output.log || true - bundle exec rake gitlab:db:migration_testing:sample_batched_background_migrations:main |& tee tmp/migration-testing/main/background_migrations/full-batched-migration-output.log || true - bundle exec rake gitlab:db:migration_testing:sample_batched_background_migrations:ci |& tee tmp/migration-testing/ci/background_migrations/full-batched-migration-output.log || true + - bundle exec rake gitlab:db:migration_testing:sample_batched_background_migrations:sec |& tee tmp/migration-testing/sec/background_migrations/full-batched-migration-output.log || true - mv tmp/migration-testing/ ${CI_PROJECT_DIR} - bundle exec ruby list_migrations.rb > ${CI_PROJECT_DIR}/migration-testing/migrations.json @@ -325,6 +346,13 @@ schema-validation: DBLAB_SSH_HOST: $DBLAB_SSH_HOST_CI DBLAB_ENVIRONMENT: $DBLAB_ENVIRONMENT_CI DBLAB_API_PORT: $DBLAB_API_PORT_CI + - name: ${DOCKER_REGISTRY}/gitlab-com-database-testing-dblab-ssh:latest + alias: postgres-sec + variables: + DBLAB_CLONE_ID: "database-testing-${CI_PIPELINE_ID}-${CI_JOB_ID}-sec" + DBLAB_SSH_HOST: $DBLAB_SSH_HOST_SEC + DBLAB_ENVIRONMENT: $DBLAB_ENVIRONMENT_SEC + DBLAB_API_PORT: $DBLAB_API_PORT_SEC - name: ${DOCKER_REGISTRY}/redis:7.0-alpine alias: redis artifacts: @@ -361,6 +389,13 @@ table-size: DBLAB_SSH_HOST: $DBLAB_SSH_HOST_CI DBLAB_ENVIRONMENT: $DBLAB_ENVIRONMENT_CI DBLAB_API_PORT: $DBLAB_API_PORT_CI + - name: ${DOCKER_REGISTRY}/gitlab-com-database-testing-dblab-ssh:latest + alias: postgres-sec + variables: + DBLAB_CLONE_ID: "database-testing-${CI_PIPELINE_ID}-${CI_JOB_ID}-sec" + DBLAB_SSH_HOST: $DBLAB_SSH_HOST_SEC + DBLAB_ENVIRONMENT: $DBLAB_ENVIRONMENT_SEC + DBLAB_API_PORT: $DBLAB_API_PORT_SEC - name: ${DOCKER_REGISTRY}/redis:7.0-alpine alias: redis artifacts: @@ -397,6 +432,13 @@ unfinalized-batched-background-migration-checker: DBLAB_SSH_HOST: $DBLAB_SSH_HOST_CI DBLAB_ENVIRONMENT: $DBLAB_ENVIRONMENT_CI DBLAB_API_PORT: $DBLAB_API_PORT_CI + - name: ${DOCKER_REGISTRY}/gitlab-com-database-testing-dblab-ssh:latest + alias: postgres-sec + variables: + DBLAB_CLONE_ID: "database-testing-${CI_PIPELINE_ID}-${CI_JOB_ID}-sec" + DBLAB_SSH_HOST: $DBLAB_SSH_HOST_SEC + DBLAB_ENVIRONMENT: $DBLAB_ENVIRONMENT_SEC + DBLAB_API_PORT: $DBLAB_API_PORT_SEC - name: ${DOCKER_REGISTRY}/redis:7.0-alpine alias: redis artifacts: @@ -477,6 +519,13 @@ gitlab-housekeeper-database-keeps: DBLAB_SSH_HOST: $DBLAB_SSH_HOST_CI DBLAB_ENVIRONMENT: $DBLAB_ENVIRONMENT_CI DBLAB_API_PORT: $DBLAB_API_PORT_CI + - name: registry.gitlab.com/gitlab-org/database-team/dblab-ssh:latest + alias: postgres-sec + variables: + DBLAB_CLONE_ID: "database-testing-${CI_PIPELINE_ID}-${CI_JOB_ID}-sec" + DBLAB_SSH_HOST: $DBLAB_SSH_HOST_SEC + DBLAB_ENVIRONMENT: $DBLAB_ENVIRONMENT_SEC + DBLAB_API_PORT: $DBLAB_API_PORT_SEC allow_failure: true script: - cd ${GITLAB_PATH} diff --git a/docker/gitlab/clone_details.yml b/docker/gitlab/clone_details.yml index aa127ca3..99db8c6c 100644 --- a/docker/gitlab/clone_details.yml +++ b/docker/gitlab/clone_details.yml @@ -6,3 +6,7 @@ clones: - host: postgres-ci project-name: gitlab-production-ci instance-id: 844 + + - host: postgres-sec + project-name: gitlab-production-sec + instance-id: 845 diff --git a/docker/gitlab/prepare.sh b/docker/gitlab/prepare.sh index e54b8735..d8c5554c 100755 --- a/docker/gitlab/prepare.sh +++ b/docker/gitlab/prepare.sh @@ -29,6 +29,16 @@ test: &test prepared_statements: false variables: statement_timeout: 120s + sec: + adapter: postgresql + encoding: unicode + database: gitlabhq_dblab + username: gitlab + password: ${DBLAB_PASSWORD} + host: postgres-sec + prepared_statements: false + variables: + statement_timeout: 120s EOF if test "$VALIDATION_PIPELINE"; then diff --git a/docker/gitlab/table_size.rb b/docker/gitlab/table_size.rb index 56d1e152..31bc7910 100644 --- a/docker/gitlab/table_size.rb +++ b/docker/gitlab/table_size.rb @@ -78,7 +78,12 @@ main_table_sizes = TableSize.new(main_connection).run.to_a db_config_ci = YAML.load_file('config/database.yml', aliases: true)['test']['ci'] ci_connection = ActiveRecord::Base.establish_connection(db_config_ci).connection ci_table_sizes = TableSize.new(ci_connection).run.to_a -table_sizes = main_table_sizes + ci_table_sizes + +db_config_sec = YAML.load_file('config/database.yml', aliases: true)['test']['sec'] +sec_connection = ActiveRecord::Base.establish_connection(db_config_sec).connection +sec_table_sizes = TableSize.new(sec_connection).run.to_a + +table_sizes = main_table_sizes + ci_table_sizes + sec_table_sizes tmpdir = Pathname.new(Dir.pwd) + OUTPUT_DIR tmpdir.mkdir unless tmpdir.exist? diff --git a/notifier/spec/migration_failure_notice_spec.rb b/notifier/spec/migration_failure_notice_spec.rb index c34f57da..5c098abf 100644 --- a/notifier/spec/migration_failure_notice_spec.rb +++ b/notifier/spec/migration_failure_notice_spec.rb @@ -43,9 +43,12 @@ RSpec.describe MigrationFailureNotice do context 'when there are no failures' do let(:main_db_result) { instance_double('Result', migrations: [], background_migrations: []) } let(:ci_db_result) { instance_double('Result', migrations: [], background_migrations: []) } + let(:sec_db_result) { instance_double('Result', migrations: [], background_migrations: []) } let(:result) do - instance_double('MultiDbResult', per_db_results: { 'main' => main_db_result, 'ci' => ci_db_result }) + instance_double( + 'MultiDbResult', + per_db_results: { 'main' => main_db_result, 'ci' => ci_db_result, 'sec' => sec_db_result }) end describe '#render' do -- GitLab From d9fe441260064ae62674b0b14a5b8645e65d6db2 Mon Sep 17 00:00:00 2001 From: Lucas Charles Date: Wed, 7 May 2025 06:53:52 -0700 Subject: [PATCH 2/6] Apply 1 suggestion(s) to 1 file(s) --- docker/gitlab/clone_details.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/gitlab/clone_details.yml b/docker/gitlab/clone_details.yml index 99db8c6c..911f78f3 100644 --- a/docker/gitlab/clone_details.yml +++ b/docker/gitlab/clone_details.yml @@ -9,4 +9,4 @@ clones: - host: postgres-sec project-name: gitlab-production-sec - instance-id: 845 + instance-id: 1366 -- GitLab From 75b3b9a796044dfdd29de5d2d56f2b2c39fecc47 Mon Sep 17 00:00:00 2001 From: Jon Jenkins Date: Thu, 8 May 2025 09:51:20 -0500 Subject: [PATCH 3/6] Add trace/debug to dblab entrypoint --- docker/dblab-ssh/entrypoint.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docker/dblab-ssh/entrypoint.sh b/docker/dblab-ssh/entrypoint.sh index 8cb25276..92700525 100644 --- a/docker/dblab-ssh/entrypoint.sh +++ b/docker/dblab-ssh/entrypoint.sh @@ -1,12 +1,15 @@ #!/bin/bash -set -e +set -euo pipefail +IFS=$'\n\t' if [ -z "${DBLAB_SSH_KEY}" ] || [ "${DBLAB_SSH_KEY}" = "unset" ]; then echo "DBLAB_SSH_KEY not set" exit 1 fi +set -x + function dblab_ssh { ssh_opts=( -i ~/.ssh/id_rsa ) -- GitLab From 7a058f5d567585531730dfc3f8c7465b4c85165c Mon Sep 17 00:00:00 2001 From: Jon Jenkins Date: Thu, 8 May 2025 10:17:33 -0500 Subject: [PATCH 4/6] Revert "Add trace/debug to dblab entrypoint" This reverts commit 75b3b9a796044dfdd29de5d2d56f2b2c39fecc47. --- docker/dblab-ssh/entrypoint.sh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docker/dblab-ssh/entrypoint.sh b/docker/dblab-ssh/entrypoint.sh index 92700525..8cb25276 100644 --- a/docker/dblab-ssh/entrypoint.sh +++ b/docker/dblab-ssh/entrypoint.sh @@ -1,15 +1,12 @@ #!/bin/bash -set -euo pipefail -IFS=$'\n\t' +set -e if [ -z "${DBLAB_SSH_KEY}" ] || [ "${DBLAB_SSH_KEY}" = "unset" ]; then echo "DBLAB_SSH_KEY not set" exit 1 fi -set -x - function dblab_ssh { ssh_opts=( -i ~/.ssh/id_rsa ) -- GitLab From 9af3af87f49cacd69aa433d93c7c82e2fbbd885d Mon Sep 17 00:00:00 2001 From: Jon Jenkins Date: Thu, 8 May 2025 13:47:41 -0500 Subject: [PATCH 5/6] Add proper DB result ordering --- notifier/multi_db_result.rb | 12 +- .../migration-testing/v4/expected-comment.txt | 430 ++++++++++++++++++ .../v4/expected-migration-failure-notice.txt | 2 + .../batch_1/batch-details.json | 8 + .../batch_1/migration-stats.json | 1 + .../batch_1/migration.log | 5 + .../batch_1/query-details.json | 1 + .../batch_1/transaction-duration.json | 1 + .../batch_2/batch-details.json | 8 + .../batch_2/migration-stats.json | 1 + .../batch_2/migration.log | 5 + .../batch_2/query-details.json | 1 + .../batch_2/transaction-duration.json | 1 + .../batch_3/batch-details.json | 8 + .../batch_3/migration-stats.json | 1 + .../batch_3/migration.log | 5 + .../batch_3/query-details.json | 1 + .../batch_3/transaction-duration.json | 1 + .../batch_4/batch-details.json | 8 + .../batch_4/migration-stats.json | 1 + .../batch_4/migration.log | 5 + .../batch_4/query-details.json | 1 + .../batch_4/transaction-duration.json | 1 + .../batch_5/batch-details.json | 8 + .../batch_5/migration-stats.json | 1 + .../batch_5/migration.log | 5 + .../batch_5/query-details.json | 1 + .../batch_5/transaction-duration.json | 1 + .../batch_6/batch-details.json | 1 + .../batch_6/migration-stats.json | 1 + .../batch_6/migration.log | 59 +++ .../batch_6/query-details.json | 1 + .../batch_6/transaction-duration.json | 1 + .../TestBackgroundMigration/details.json | 5 + .../full-batched-migration-output.log | 0 .../migration-stats.json | 1 + .../migration.log | 20 + .../query-details.json | 1 + .../transaction-duration.json | 1 + .../migration-stats.json | 1 + .../migration.log | 20 + .../query-details.json | 1 + .../transaction-duration.json | 1 + .../migration-stats.json | 265 +++++++++++ .../CreateLongRunningSyncIndex/migration.log | 28 ++ .../query-details.json | 260 +++++++++++ .../transaction-duration.json | 1 + .../up/CreateTestTable/migration-stats.json | 1 + .../v4/sec/up/CreateTestTable/migration.log | 39 ++ .../sec/up/CreateTestTable/query-details.json | 1 + .../CreateTestTable/transaction-duration.json | 1 + .../sec/up/DropTestTable/migration-stats.json | 1 + .../v4/sec/up/DropTestTable/migration.log | 20 + .../sec/up/DropTestTable/query-details.json | 1 + .../DropTestTable/transaction-duration.json | 1 + .../migration-stats.json | 1 + .../EnsureGitlabComInMigrations/migration.log | 18 + .../query-details.json | 1 + .../transaction-duration.json | 1 + .../migration-stats.json | 1 + .../migration.log | 16 + .../query-details.json | 1 + .../transaction-duration.json | 1 + .../migration-stats.json | 1 + .../migration.log | 20 + .../query-details.json | 1 + .../transaction-duration.json | 1 + .../migration-stats.json | 1 + .../up/MigrationThrowsException/migration.log | 10 + .../query-details.json | 1 + .../transaction-duration.json | 1 + .../migration-stats.json | 1 + .../migration.log | 18 + .../query-details.json | 1 + .../transaction-duration.json | 1 + .../migration-stats.json | 1 + .../migration.log | 20 + .../query-details.json | 1 + .../transaction-duration.json | 1 + .../migration-stats.json | 1 + .../TmpIdxNullMemberNamespaceId/migration.log | 28 ++ .../query-details.json | 1 + .../transaction-duration.json | 1 + .../v4/sec/up/full-migration-output.log | 89 ++++ .../migration-testing/v4/sec/up/metadata.json | 1 + .../spec/migration_failure_notice_spec.rb | 2 +- 86 files changed, 1495 insertions(+), 5 deletions(-) create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_1/batch-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_1/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_1/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_1/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_1/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_2/batch-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_2/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_2/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_2/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_2/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_3/batch-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_3/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_3/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_3/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_3/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_4/batch-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_4/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_4/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_4/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_4/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_5/batch-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_5/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_5/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_5/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_5/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_6/batch-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_6/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_6/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_6/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_6/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/full-batched-migration-output.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/CreateEfficientlyOrderedColumnsTable/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/CreateEfficientlyOrderedColumnsTable/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/CreateEfficientlyOrderedColumnsTable/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/CreateEfficientlyOrderedColumnsTable/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/CreateInefficientlyOrderedColumnsTable/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/CreateInefficientlyOrderedColumnsTable/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/CreateInefficientlyOrderedColumnsTable/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/CreateInefficientlyOrderedColumnsTable/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/CreateLongRunningSyncIndex/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/CreateLongRunningSyncIndex/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/CreateLongRunningSyncIndex/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/CreateLongRunningSyncIndex/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/CreateTestTable/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/CreateTestTable/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/CreateTestTable/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/CreateTestTable/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/DropTestTable/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/DropTestTable/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/DropTestTable/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/DropTestTable/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/EnsureGitlabComInMigrations/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/EnsureGitlabComInMigrations/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/EnsureGitlabComInMigrations/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/EnsureGitlabComInMigrations/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/FinalizeTestBatchedBackgroundMigrationMain/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/FinalizeTestBatchedBackgroundMigrationMain/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/FinalizeTestBatchedBackgroundMigrationMain/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/FinalizeTestBatchedBackgroundMigrationMain/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationInheritsGitlabDatabaseMigration/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationInheritsGitlabDatabaseMigration/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationInheritsGitlabDatabaseMigration/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationInheritsGitlabDatabaseMigration/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationThrowsException/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationThrowsException/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationThrowsException/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationThrowsException/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/QueueTestBackgroundMigration/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/QueueTestBackgroundMigration/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/QueueTestBackgroundMigration/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/QueueTestBackgroundMigration/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/RegularMigrationWithFiveSecondQuery/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/RegularMigrationWithFiveSecondQuery/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/RegularMigrationWithFiveSecondQuery/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/RegularMigrationWithFiveSecondQuery/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/TmpIdxNullMemberNamespaceId/migration-stats.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/TmpIdxNullMemberNamespaceId/migration.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/TmpIdxNullMemberNamespaceId/query-details.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/TmpIdxNullMemberNamespaceId/transaction-duration.json create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/full-migration-output.log create mode 100644 notifier/spec/fixtures/migration-testing/v4/sec/up/metadata.json diff --git a/notifier/multi_db_result.rb b/notifier/multi_db_result.rb index e348714e..17ad0799 100644 --- a/notifier/multi_db_result.rb +++ b/notifier/multi_db_result.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class MultiDbResult + DB_DISPLAY_ORDER = ["main", "ci", "sec"] + def self.from_directory(database_testing_path) migrations_file = File.join(database_testing_path, 'migrations.json') clone_details_file = File.join(database_testing_path, 'clone-details.json') @@ -13,10 +15,12 @@ class MultiDbResult Result.from_directory(path, global_migration_data, clone_details) end - # main is alphabetically after CI and we want it to come first, so reverse the order - # ruby's hash is order-preserving once we sort it - per_db_results = per_db_results.sort.reverse.to_h - + # We want the results to appear per DB in the specified order on the comment, + # and if any unknown ones are present, we raise an error. + if DB_DISPLAY_ORDER.sort != per_db_results.keys.sort + raise "unknown database in per_db_results" + end + per_db_results = DB_DISPLAY_ORDER.map { |k| [k, per_db_results[k]] }.to_h MultiDbResult.new(per_db_results) end diff --git a/notifier/spec/fixtures/migration-testing/v4/expected-comment.txt b/notifier/spec/fixtures/migration-testing/v4/expected-comment.txt index 5b24753e..e1b770bf 100644 --- a/notifier/spec/fixtures/migration-testing/v4/expected-comment.txt +++ b/notifier/spec/fixtures/migration-testing/v4/expected-comment.txt @@ -721,3 +721,433 @@ cCI6MjA5OTA2MDQyMzMxNTd9LCJ3YWxsdGltZSI6MS4wNTMxMzgyMzM3MjEy NTYzLCJ0b3RhbF9kYXRhYmFzZV9zaXplX2NoYW5nZSI6ODE5Miwic3VjY2Vz cyI6ZmFsc2V9XX0= --> + +### Database migrations (on the sec database) + +*Commit SHA:* 20c0da84ee54eee5ccfdd1720dbda853d1dfa8ba + +| | 8 Warnings | +| --------- | -------------------- | +| :warning: | 20210602144718 - CreateTestTable had a query that [exceeded timing guidelines](https://docs.gitlab.com/ee/development/database/query_performance.html#timing-guidelines-for-queries). Run time should not
exceed 100ms, but it was 192.8ms. Please consider possible options to improve the query performance.

CREATE TABLE "test_tables" ("id" bigserial primary key, "stars" bigint DEFAULT 0 NOT NULL,
"created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "title" text, "notes"
text)
| +| :warning: | 20210603233011 - RegularMigrationWithFiveSecondQuery had a query that [exceeded timing guidelines](https://docs.gitlab.com/ee/development/database/query_performance.html#timing-guidelines-for-queries).
Run time should not exceed 100ms, but it was 5005.1ms. Please consider possible options to improve
the query performance.
SELECT pg_sleep($1)
| +| :warning: | 20221012000000 - FinalizeTestBatchedBackgroundMigrationMain did not complete successfully, check the
job log for details | +| :warning: | 20221012000000 - FinalizeTestBatchedBackgroundMigrationMain attempted to finalize a batched
background migration that is still running. | +| :warning: | 20221012000001 - CreateLongRunningSyncIndex had a query that [exceeded timing guidelines](https://docs.gitlab.com/ee/development/database/query_performance.html#timing-guidelines-for-queries). Run time
should not exceed 300000ms, but it was 5377900.06ms. Please consider possible options to improve the
query performance.
CREATE INDEX CONCURRENTLY "tmp_index_for_null_member_namespace_id" ON
"members" ("member_namespace_id")
WHERE member_namespace_id IS NULL
| +| :warning: | 20221012000001 - CreateLongRunningSyncIndex took 93.33min. Please add a comment that mentions
Release Managers (`@gitlab-org/release/managers`) so they are informed. | +| :warning: | 20221012000001 - CreateLongRunningSyncIndex may need a [batched background migration](https://docs.gitlab.com/ee/development/database/batched_background_migrations.html) to comply with
[timing guidelines](https://docs.gitlab.com/ee/development/migration_style_guide.html#how-long-a-migration-should-take). It took 93.33min, but should not exceed 3.0min | +| :warning: | 20990604233157 - MigrationThrowsException did not complete successfully, check the job log for
details | + +Migrations included in this change have been executed on gitlab.com data for testing purposes. For details, please see the [migration testing pipeline](https://gitlab.com/gitlab-org/database-team/gitlab-com-database-testing/-/pipelines/4711) (limited access). + +| Migration | Type | Total runtime | Result | DB size change | +| --------- | ---- | ------------- | ------ | -------------- | +| 20210602144718 - CreateTestTable | Regular | 2.2 s | :warning: | +24.00 KiB | +| 20210603233011 - RegularMigrationWithFiveSecondQuery | Regular | 6.5 s | :warning: | +0.00 B | +| 20210915152743 - MigrationInheritsGitlabDatabaseMigration | Regular | 1.2 s | :white_check_mark: | +0.00 B | +| 20220223163519 - EnsureGitlabComInMigrations | Regular | 1.2 s | :white_check_mark: | +0.00 B | +| 20220318174439 - QueueTestBackgroundMigration | Regular | 1.8 s | :white_check_mark: | +0.00 B | +| 20221012000000 - FinalizeTestBatchedBackgroundMigrationMain | Regular | 1.4 s | :boom: | +0.00 B | +| 20221012000001 - CreateLongRunningSyncIndex | Regular | 5600.3 s | :warning: | +32.00 KiB | +| 20221130142531 - CreateEfficientlyOrderedColumnsTable | Regular | 1.2 s | :white_check_mark: | +32.00 KiB | +| 20221130142617 - CreateInefficientlyOrderedColumnsTable | Regular | 1.2 s | :white_check_mark: | +40.00 KiB | +| 20210604232017 - DropTestTable | Post deploy | 1.3 s | :white_check_mark: | -24.00 KiB | +| 20990604233157 - MigrationThrowsException | Post deploy | 1.1 s | :boom: | +0.00 B | + +
+Runtime Histogram for all migrations + +| Query Runtime | Count | +|---------------|-------| +|0 seconds - 0.01 seconds | 0 | +|0.01 seconds - 0.1 seconds | 8 | +|0.1 seconds - 1 second | 1 | +|1 second - 5 seconds | 0 | +|5 seconds - 15 seconds | 1 | +|15 seconds - 5 minutes | 0 | +|5 minutes + | 1 | + +
+ + +
+ :warning:

Migration: 20210602144718 - CreateTestTable

+* Type: Regular
+* Duration: 2.2 s
+* Database size change: +24.00 KiB + +| Calls | Total Time | Max Time | Mean Time | Rows | Query | +| ----- | ---------- | -------- | --------- | ---- | ----- | +| 1 | 192.8 ms | 192.8 ms | 192.8 ms | 0 |
CREATE TABLE "test_tables" ("id" bigserial primary key, "stars" bigint DEFAULT 0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "title" text, "notes" text)
| +| 1 | 6.6 ms | 6.6 ms | 6.6 ms | 0 |
ALTER TABLE "test_tables" ADD CONSTRAINT "check_0770ba173a" CHECK (char_length("title") <= 128), ADD CONSTRAINT "check_9cfc473dbc" CHECK (char_length("notes") <= 1024)
| +| 1 | 0.0 ms | 0.0 ms | 0.0 ms | 1 |
SELECT $1::regtype::oid
| + + + +
+Histogram for CreateTestTable + +| Query Runtime | Count | +|---------------|-------| +|0 seconds - 0.01 seconds | 0 | +|0.01 seconds - 0.1 seconds | 2 | +|0.1 seconds - 1 second | 1 | +|1 second - 5 seconds | 0 | +|5 seconds - 15 seconds | 0 | +|15 seconds - 5 minutes | 0 | +|5 minutes + | 0 | + +
+ + +
+ :warning:

Migration: 20210603233011 - RegularMigrationWithFiveSecondQuery

+* Type: Regular
+* Duration: 6.5 s
+* Database size change: +0.00 B + +| Calls | Total Time | Max Time | Mean Time | Rows | Query | +| ----- | ---------- | -------- | --------- | ---- | ----- | +| 1 | 5005.1 ms | 5005.1 ms | 5005.1 ms | 1 |
SELECT pg_sleep($1)
| + + +
+Histogram for RegularMigrationWithFiveSecondQuery + +| Query Runtime | Count | +|---------------|-------| +|0 seconds - 0.01 seconds | 0 | +|0.01 seconds - 0.1 seconds | 0 | +|0.1 seconds - 1 second | 0 | +|1 second - 5 seconds | 0 | +|5 seconds - 15 seconds | 1 | +|15 seconds - 5 minutes | 0 | +|5 minutes + | 0 | + +
+ + +
+

Migration: 20210915152743 - MigrationInheritsGitlabDatabaseMigration

+* Type: Regular
+* Duration: 1.2 s
+* Database size change: +0.00 B + + + +No histogram available for visualization + + +
+

Migration: 20220223163519 - EnsureGitlabComInMigrations

+* Type: Regular
+* Duration: 1.2 s
+* Database size change: +0.00 B + + + +No histogram available for visualization + + +
+

Migration: 20220318174439 - QueueTestBackgroundMigration

+* Type: Regular
+* Duration: 1.8 s
+* Database size change: +0.00 B + + + +No histogram available for visualization + + +
+ :boom:

Migration: 20221012000000 - FinalizeTestBatchedBackgroundMigrationMain

+* Type: Regular
+* Duration: 1.4 s
+* Database size change: +0.00 B + +| Calls | Total Time | Max Time | Mean Time | Rows | Query | +| ----- | ---------- | -------- | --------- | ---- | ----- | +| 1 | 0.1 ms | 0.1 ms | 0.1 ms | 1 |
SELECT "batched_background_migrations".*
FROM "batched_background_migrations" WHERE "batched_background_migrations"."job_class_name" = $1 AND "batched_background_migrations"."table_name" = $2 AND "batched_background_migrations"."column_name" = $3 AND (job_arguments = $4) AND "batched_background_migrations"."gitlab_schema" = $5
ORDER BY "batched_background_migrations"."id" ASC
LIMIT $6
| +| 2 | 0.0 ms | 0.0 ms | 0.0 ms | 2 |
SELECT pg_backend_pid()
| + + +
+Histogram for FinalizeTestBatchedBackgroundMigrationMain + +| Query Runtime | Count | +|---------------|-------| +|0 seconds - 0.01 seconds | 0 | +|0.01 seconds - 0.1 seconds | 3 | +|0.1 seconds - 1 second | 0 | +|1 second - 5 seconds | 0 | +|5 seconds - 15 seconds | 0 | +|15 seconds - 5 minutes | 0 | +|5 minutes + | 0 | + +
+ + +
+ :warning:

Migration: 20221012000001 - CreateLongRunningSyncIndex

+* Type: Regular
+* Duration: 5600.3 s
+* Database size change: +32.00 KiB + +| Calls | Total Time | Max Time | Mean Time | Rows | Query | +| ----- | ---------- | -------- | --------- | ---- | ----- | +| 1 | 5377900.1 ms | 5377900.1 ms | 5377900.1 ms | 0 |
CREATE INDEX CONCURRENTLY "tmp_index_for_null_member_namespace_id" ON "members" ("member_namespace_id")
WHERE member_namespace_id IS NULL
| + + #### :warning: Index creation timing exceeded + +This index creation query might have caused your migration to exceed timing guidelines. +Please examine the timing data on this query and consider if the [asynchronous index creation](https://docs.gitlab.com/ee/development/database/adding_database_indexes.html#create-indexes-asynchronously) process is appropriate. + + +
+Histogram for CreateLongRunningSyncIndex + +| Query Runtime | Count | +|---------------|-------| +|0 seconds - 0.01 seconds | 0 | +|0.01 seconds - 0.1 seconds | 0 | +|0.1 seconds - 1 second | 0 | +|1 second - 5 seconds | 0 | +|5 seconds - 15 seconds | 0 | +|15 seconds - 5 minutes | 0 | +|5 minutes + | 1 | + +
+ + +
+

Migration: 20221130142531 - CreateEfficientlyOrderedColumnsTable

+* Type: Regular
+* Duration: 1.2 s
+* Database size change: +32.00 KiB + +| Calls | Total Time | Max Time | Mean Time | Rows | Query | +| ----- | ---------- | -------- | --------- | ---- | ----- | +| 1 | 9.4 ms | 9.4 ms | 9.4 ms | 0 |
CREATE TABLE "efficiently_ordered_columns_tables" ("line_attr" line, "circle_attr" circle, "uuid_attr" uuid, "point_attr" point, "id" bigserial primary key, "bigserial_attr" bigserial, "bigint_attr" bigint, "float_attr" float, "time_attr" time, "timestamp_attr" timestamp, "date_attr" date, "integer_attr" integer, "oid_attr" oid, "smallint_attr" smallint, "boolean_attr" boolean, "inet_attr" inet, "jsonb_attr" jsonb, "text_attr" text)
| + + + +
+Histogram for CreateEfficientlyOrderedColumnsTable + +| Query Runtime | Count | +|---------------|-------| +|0 seconds - 0.01 seconds | 0 | +|0.01 seconds - 0.1 seconds | 1 | +|0.1 seconds - 1 second | 0 | +|1 second - 5 seconds | 0 | +|5 seconds - 15 seconds | 0 | +|15 seconds - 5 minutes | 0 | +|5 minutes + | 0 | + +
+ + +
+

Migration: 20221130142617 - CreateInefficientlyOrderedColumnsTable

+* Type: Regular
+* Duration: 1.2 s
+* Database size change: +40.00 KiB + +| Calls | Total Time | Max Time | Mean Time | Rows | Query | +| ----- | ---------- | -------- | --------- | ---- | ----- | +| 1 | 5.7 ms | 5.7 ms | 5.7 ms | 0 |
CREATE TABLE "inefficiently_ordered_columns_tables" ("id" bigserial primary key, "text_attr" text, "boolean_attr" boolean, "smallint_attr" smallint, "integer_attr" integer, "point_attr" point, "circle_attr" circle, "line_attr" line)
| + + :warning: Column ordering suggestions + +Ordering columns efficiently (as in below tables) will help us save more space, further details can be found here. + + +
 CREATE TABLE "inefficiently_ordered_columns_tables" ("id" bigserial primary key, "text_attr" text, "boolean_attr" boolean, "smallint_attr" smallint, "integer_attr" integer, "point_attr" point, "circle_attr" circle, "line_attr" line) 
+ +| Column name | Data Type | +| ----------- | --------- | +| line_attr | line | +| circle_attr | circle | +| point_attr | point | +| id | bigserial | +| integer_attr | int4 | +| smallint_attr | int2 | +| boolean_attr | bool | +| text_attr | text | + + +
+Histogram for CreateInefficientlyOrderedColumnsTable + +| Query Runtime | Count | +|---------------|-------| +|0 seconds - 0.01 seconds | 0 | +|0.01 seconds - 0.1 seconds | 1 | +|0.1 seconds - 1 second | 0 | +|1 second - 5 seconds | 0 | +|5 seconds - 15 seconds | 0 | +|15 seconds - 5 minutes | 0 | +|5 minutes + | 0 | + +
+ + +
+

Migration: 20210604232017 - DropTestTable

+* Type: Post deploy
+* Duration: 1.3 s
+* Database size change: -24.00 KiB + +| Calls | Total Time | Max Time | Mean Time | Rows | Query | +| ----- | ---------- | -------- | --------- | ---- | ----- | +| 1 | 2.6 ms | 2.6 ms | 2.6 ms | 0 |
DROP TABLE "test_tables"
| + + +
+Histogram for DropTestTable + +| Query Runtime | Count | +|---------------|-------| +|0 seconds - 0.01 seconds | 0 | +|0.01 seconds - 0.1 seconds | 1 | +|0.1 seconds - 1 second | 0 | +|1 second - 5 seconds | 0 | +|5 seconds - 15 seconds | 0 | +|15 seconds - 5 minutes | 0 | +|5 minutes + | 0 | + +
+ + +
+ :boom:

Migration: 20990604233157 - MigrationThrowsException

+* Type: Post deploy
+* Duration: 1.1 s
+* Database size change: +0.00 B + + + +No histogram available for visualization + + +
+ +
+ :boom:

Background Migration: TestBackgroundMigration

+ +
+Sampled 6 batches. Estimated Time to complete: 1 hour and 36 minutes + + - Interval: 120s + - Max batch size: 750 + - Estimated seconds to complete: 5760s + - Average batch time: 1.08s + - Batch size: 150 + - N. of batches sampled: 6 + - N. of failed batches: 1 + - Failed batches: batch_5 + + Time estimation is conservative and based on sampling production data in a test environment. It represents the max time that migration could take. The actual time may differ from this estimation. +
+ +_Consider changing max_batch_size and interval if this estimate is unacceptable._ + + +| Calls | Total Time | Max Time | Mean Time | Rows | Collapsed |Query | +| ----- | ---------- | -------- | --------- | ---- | --------- |----- | +| 5 | 15012.1 ms | 5004.0 ms | 3002.4 ms | 5 | No |
SELECT pg_sleep($1)
| +| 5 | 901.4 ms | 616.5 ms | 180.3 ms | 72 | Yes |
UPDATE sent_notifications
SET recipient_id = $1
WHERE sent_notifications.id IN ($2)
| +| 2 | 34.4 ms | 34.1 ms | 17.2 ms | 2 | No |
INSERT INTO batched_background_migration_job_transition_logs (batched_background_migration_job_id, created_at, updated_at, previous_status, next_status) VALUES ($1, $2, $3, $4, $5) RETURNING id
| +| 1 | 6.9 ms | 6.9 ms | 6.9 ms | 1 | No |
UPDATE batched_background_migration_jobs
SET updated_at = $1, finished_at = $2, status = $3, metrics = $4
WHERE batched_background_migration_jobs.id = $5
| +| 4 | 7.5 ms | 5.0 ms | 1.9 ms | 80 | No |
SELECT sent_notifications.*
FROM sent_notifications
WHERE sent_notifications.id BETWEEN $1 AND $2 AND sent_notifications.id >= $3 AND sent_notifications.id < $4
| +| 1 | 3.9 ms | 3.9 ms | 3.9 ms | 1 | No |
UPDATE batched_background_migration_jobs
SET updated_at = $1, started_at = $2, status = $3, attempts = $4
WHERE batched_background_migration_jobs.id = $5
| +| 5 | 0.2 ms | 0.1 ms | 0.0 ms | 4 | No |
SELECT sent_notifications.id
FROM sent_notifications
WHERE sent_notifications.id BETWEEN $1 AND $2 AND sent_notifications.id >= $3
ORDER BY sent_notifications.id ASC
LIMIT $4
OFFSET $5
| +| 2 | 0.1 ms | 0.1 ms | 0.1 ms | 2 | No |
SELECT batched_background_migration_jobs.*
FROM batched_background_migration_jobs
WHERE batched_background_migration_jobs.id = $1
LIMIT $2
| +| 1 | 0.1 ms | 0.1 ms | 0.1 ms | 1 | No |
SELECT sum(batched_background_migration_jobs.batch_size)
FROM batched_background_migration_jobs
WHERE batched_background_migration_jobs.batched_background_migration_id = $1 AND batched_background_migration_jobs.status IN ($2)
| +| 1 | 0.0 ms | 0.0 ms | 0.0 ms | 1 | No |
SELECT batched_background_migrations.*
FROM batched_background_migrations
WHERE batched_background_migrations.id = $1
LIMIT $2
| +| 1 | 0.0 ms | 0.0 ms | 0.0 ms | 20 | No |
SELECT sent_notifications.*
FROM sent_notifications
WHERE sent_notifications.id BETWEEN $1 AND $2 AND sent_notifications.id >= $3
| +| 1 | 0.0 ms | 0.0 ms | 0.0 ms | 1 | No |
SELECT sent_notifications.id
FROM sent_notifications
WHERE sent_notifications.id BETWEEN $1 AND $2
ORDER BY sent_notifications.id ASC
LIMIT $3
| + +
+Histogram of batch runtimes for TestBackgroundMigration + +| Batch Runtime | Count | +|---------------|-------| +|0 seconds - 10 seconds | 6 | +|10 seconds - 1 minute | 0 | +|1 minute - 2 minutes | 0 | +|2 minutes - 3 minutes | 0 | +|3 minutes - 5 minutes | 0 | +|5 minutes + | 0 | + +
+ +
+Histogram across all sampled batches of TestBackgroundMigration + +| Query Runtime | Count | +|---------------|-------| +|0 seconds - 0.1 seconds | 22 | +|0.1 seconds - 0.5 seconds | 1 | +|0.5 seconds - 1 second | 1 | +|1 second - 2 seconds | 1 | +|2 seconds - 5 seconds | 3 | +|5 seconds + | 1 | + +
+ +
+#### Other information + +
+ Other migrations pending on GitLab.com + + | Migration | Type | Total runtime | Result | DB size change | +| --------- | ---- | ------------- | ------ | -------------- | +| 20220929081645 - TmpIdxNullMemberNamespaceId | Post deploy | 56.3 s | :white_check_mark: | +32.00 KiB | + +
+ +
+ Clone details + + | Clone ID | Clone Created At | Clone Data Timestamp | Expected Removal Time | +| -------- | ---------------- | -------------------- | --------------------- | +| [`database-testing-1575761-8632787-main`](https://console.postgres.ai/gitlab/gitlab-production-tunnel/instances/59/clones/database-testing-1575761-8632787-main) | 2022-11-30T15:08:09Z | 2022-11-30T12:09:58Z | 2022-12-01 04:07:13 +0000 | +| [`database-testing-1575761-8632787-ci`](https://console.postgres.ai/gitlab/gitlab-production-ci/instances/165/clones/database-testing-1575761-8632787-ci) | 2022-11-30T15:08:09Z | 2022-11-30T12:46:56Z | 2022-12-01 04:07:13 +0000 | + +
+ +[Job artifacts](https://gitlab.com/gitlab-org/database-team/gitlab-com-database-testing/-/jobs/1354666720/artifacts/browse/migration-testing/) + + diff --git a/notifier/spec/fixtures/migration-testing/v4/expected-migration-failure-notice.txt b/notifier/spec/fixtures/migration-testing/v4/expected-migration-failure-notice.txt index cda7e1be..a74c2233 100644 --- a/notifier/spec/fixtures/migration-testing/v4/expected-migration-failure-notice.txt +++ b/notifier/spec/fixtures/migration-testing/v4/expected-migration-failure-notice.txt @@ -10,9 +10,11 @@ MR can be merged. |----------|----------------| | main | MigrationThrowsException | | ci | MigrationThrowsException | +| sec | MigrationThrowsException | ## Failed Batched Background Migrations | Database | Migration Name | |----------|----------------| | main | TestBackgroundMigration | +| sec | TestBackgroundMigration | diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_1/batch-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_1/batch-details.json new file mode 100644 index 00000000..ad6e9293 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_1/batch-details.json @@ -0,0 +1,8 @@ +{ + "time_spent": 0.67, + "min_value": 1, + "max_value": 150, + "batch_size": 150, + "sub_batch_size": 75, + "pause_ms": 100 +} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_1/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_1/migration-stats.json new file mode 100644 index 00000000..a26826ba --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_1/migration-stats.json @@ -0,0 +1 @@ +{"version":null,"name":"batch_1","walltime":5.093016408383846,"success":true,"error_message": null,"total_database_size_change":0,"query_statistics":[{"query":"select pg_sleep($1) /*application:test,db_config_name:main,line:/lib/gitlab/background_migration/test_background_migration.rb:5:in `perform'*/","calls":1,"total_time":5003.97967,"max_time":5003.97967,"mean_time":5003.97967,"rows":1},{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":135.377425,"max_time":135.377425,"mean_time":135.377425,"rows":1},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.179921,"max_time":0.179921,"mean_time":0.179921,"rows":1},{"query":"SELECT t.oid, t.typname, t.typelem, t.typdelim, t.typinput, r.rngsubtype, t.typtype, t.typbasetype\nFROM pg_type as t\nLEFT JOIN pg_range as r ON oid = rngtypid\nWHERE t.oid IN ($1) /*application:test,db_config_name:main,line:/lib/gitlab/background_migration/test_background_migration.rb:5:in `perform'*/","calls":1,"total_time":0.064002,"max_time":0.064002,"mean_time":0.064002,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":1,"total_time":0.051974,"max_time":0.051974,"mean_time":0.051974,"rows":1},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.025973,"max_time":0.025973,"mean_time":0.025973,"rows":1}]} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_1/migration.log b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_1/migration.log new file mode 100644 index 00000000..818e38d2 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_1/migration.log @@ -0,0 +1,5 @@ +# Logfile created on 2022-09-30 21:37:56 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:38:01.650367 #426] DEBUG -- :  (5047.6ms) select pg_sleep($1) /*application:test,db_config_name:main,line:/lib/gitlab/background_migration/test_background_migration.rb:5:in `perform'*/ [[nil, 5]] +D, [2022-09-30T21:38:01.650913 #426] DEBUG -- : ↳ lib/gitlab/background_migration/test_background_migration.rb:5:in `perform' +D, [2022-09-30T21:38:01.870044 #426] DEBUG -- :  (176.0ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:38:01.870578 #426] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_1/query-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_1/query-details.json new file mode 100644 index 00000000..2e9c3a79 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_1/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:37:56.602616+00:00","end_time":"2022-09-30T21:38:01.651104+00:00","sql":"select pg_sleep($1) /*application:test,db_config_name:main,line:/lib/gitlab/background_migration/test_background_migration.rb:5:in `perform'*/","binds":[5]},{"start_time":"2022-09-30T21:38:01.651575+00:00","end_time":"2022-09-30T21:38:01.693037+00:00","sql":"SELECT t.oid, t.typname, t.typelem, t.typdelim, t.typinput, r.rngsubtype, t.typtype, t.typbasetype\nFROM pg_type as t\nLEFT JOIN pg_range as r ON oid = rngtypid\nWHERE t.oid IN (2278) /*application:test,db_config_name:main,line:/lib/gitlab/background_migration/test_background_migration.rb:5:in `perform'*/","binds":[]},{"start_time":"2022-09-30T21:38:01.693938+00:00","end_time":"2022-09-30T21:38:01.870742+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_1/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_1/transaction-duration.json new file mode 100644 index 00000000..fe51488c --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_1/transaction-duration.json @@ -0,0 +1 @@ +[] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_2/batch-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_2/batch-details.json new file mode 100644 index 00000000..3f883dc7 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_2/batch-details.json @@ -0,0 +1,8 @@ +{ + "time_spent": 0.74, + "min_value": 7487, + "max_value": 7636, + "batch_size": 150, + "sub_batch_size": 75, + "pause_ms": 100 +} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_2/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_2/migration-stats.json new file mode 100644 index 00000000..cabade72 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_2/migration-stats.json @@ -0,0 +1 @@ +{"version":null,"name":"batch_2","walltime":1.0436909273266792,"success":true,"error_message": null,"total_database_size_change":0,"query_statistics":[{"query":"select pg_sleep($1) /*application:test,db_config_name:main,line:/lib/gitlab/background_migration/test_background_migration.rb:5:in `perform'*/","calls":1,"total_time":1001.3384789999999,"max_time":1001.3384789999999,"mean_time":1001.3384789999999,"rows":1},{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":147.378281,"max_time":147.378281,"mean_time":147.378281,"rows":1},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.176873,"max_time":0.176873,"mean_time":0.176873,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":1,"total_time":0.042899,"max_time":0.042899,"mean_time":0.042899,"rows":1},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.033581,"max_time":0.033581,"mean_time":0.033581,"rows":1}]} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_2/migration.log b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_2/migration.log new file mode 100644 index 00000000..e41055c2 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_2/migration.log @@ -0,0 +1,5 @@ +# Logfile created on 2022-09-30 21:38:02 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:38:03.338059 #426] DEBUG -- :  (1042.1ms) select pg_sleep($1) /*application:test,db_config_name:main,line:/lib/gitlab/background_migration/test_background_migration.rb:5:in `perform'*/ [[nil, 1]] +D, [2022-09-30T21:38:03.338589 #426] DEBUG -- : ↳ lib/gitlab/background_migration/test_background_migration.rb:5:in `perform' +D, [2022-09-30T21:38:03.527667 #426] DEBUG -- :  (188.3ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:38:03.528103 #426] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_2/query-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_2/query-details.json new file mode 100644 index 00000000..08e124c6 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_2/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:38:02.295814+00:00","end_time":"2022-09-30T21:38:03.338745+00:00","sql":"select pg_sleep($1) /*application:test,db_config_name:main,line:/lib/gitlab/background_migration/test_background_migration.rb:5:in `perform'*/","binds":[1]},{"start_time":"2022-09-30T21:38:03.339278+00:00","end_time":"2022-09-30T21:38:03.528250+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_2/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_2/transaction-duration.json new file mode 100644 index 00000000..fe51488c --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_2/transaction-duration.json @@ -0,0 +1 @@ +[] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_3/batch-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_3/batch-details.json new file mode 100644 index 00000000..0693a263 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_3/batch-details.json @@ -0,0 +1,8 @@ +{ + "time_spent": 0.67, + "min_value": 3744, + "max_value": 3893, + "batch_size": 150, + "sub_batch_size": 75, + "pause_ms": 100 +} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_3/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_3/migration-stats.json new file mode 100644 index 00000000..5f1f6646 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_3/migration-stats.json @@ -0,0 +1 @@ +{"version":null,"name":"batch_3","walltime":2.0430928468704224,"success":true,"error_message": null,"total_database_size_change":0,"query_statistics":[{"query":"select pg_sleep($1) /*application:test,db_config_name:main,line:/lib/gitlab/background_migration/test_background_migration.rb:5:in `perform'*/","calls":1,"total_time":2000.8806410000002,"max_time":2000.8806410000002,"mean_time":2000.8806410000002,"rows":1},{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":147.293438,"max_time":147.293438,"mean_time":147.293438,"rows":1},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.154255,"max_time":0.154255,"mean_time":0.154255,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":1,"total_time":0.040186,"max_time":0.040186,"mean_time":0.040186,"rows":1},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.029079,"max_time":0.029079,"mean_time":0.029079,"rows":1}]} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_3/migration.log b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_3/migration.log new file mode 100644 index 00000000..e8f4ff77 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_3/migration.log @@ -0,0 +1,5 @@ +# Logfile created on 2022-09-30 21:38:03 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:38:06.002218 #426] DEBUG -- :  (2041.5ms) select pg_sleep($1) /*application:test,db_config_name:main,line:/lib/gitlab/background_migration/test_background_migration.rb:5:in `perform'*/ [[nil, 2]] +D, [2022-09-30T21:38:06.002816 #426] DEBUG -- : ↳ lib/gitlab/background_migration/test_background_migration.rb:5:in `perform' +D, [2022-09-30T21:38:06.191360 #426] DEBUG -- :  (187.8ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:38:06.191868 #426] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_3/query-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_3/query-details.json new file mode 100644 index 00000000..afb96dfa --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_3/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:38:03.960580+00:00","end_time":"2022-09-30T21:38:06.002978+00:00","sql":"select pg_sleep($1) /*application:test,db_config_name:main,line:/lib/gitlab/background_migration/test_background_migration.rb:5:in `perform'*/","binds":[2]},{"start_time":"2022-09-30T21:38:06.003439+00:00","end_time":"2022-09-30T21:38:06.192014+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_3/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_3/transaction-duration.json new file mode 100644 index 00000000..fe51488c --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_3/transaction-duration.json @@ -0,0 +1 @@ +[] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_4/batch-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_4/batch-details.json new file mode 100644 index 00000000..8958d750 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_4/batch-details.json @@ -0,0 +1,8 @@ +{ + "time_spent": 0.73, + "min_value": 1872, + "max_value": 2021, + "batch_size": 150, + "sub_batch_size": 75, + "pause_ms": 100 +} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_4/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_4/migration-stats.json new file mode 100644 index 00000000..eceee3dc --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_4/migration-stats.json @@ -0,0 +1 @@ +{"version":null,"name":"batch_4","walltime":3.044761337339878,"success":true,"error_message": null,"total_database_size_change":0,"query_statistics":[{"query":"select pg_sleep($1) /*application:test,db_config_name:main,line:/lib/gitlab/background_migration/test_background_migration.rb:5:in `perform'*/","calls":1,"total_time":3001.994322,"max_time":3001.994322,"mean_time":3001.994322,"rows":1},{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":185.15716300000003,"max_time":185.15716300000003,"mean_time":185.15716300000003,"rows":1},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.159102,"max_time":0.159102,"mean_time":0.159102,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":1,"total_time":0.047871000000000004,"max_time":0.047871000000000004,"mean_time":0.047871000000000004,"rows":1},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.032178000000000005,"max_time":0.032178000000000005,"mean_time":0.032178000000000005,"rows":1}]} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_4/migration.log b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_4/migration.log new file mode 100644 index 00000000..9ad15aa4 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_4/migration.log @@ -0,0 +1,5 @@ +# Logfile created on 2022-09-30 21:38:06 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:38:09.702534 #426] DEBUG -- :  (3043.1ms) select pg_sleep($1) /*application:test,db_config_name:main,line:/lib/gitlab/background_migration/test_background_migration.rb:5:in `perform'*/ [[nil, 3]] +D, [2022-09-30T21:38:09.703023 #426] DEBUG -- : ↳ lib/gitlab/background_migration/test_background_migration.rb:5:in `perform' +D, [2022-09-30T21:38:09.930939 #426] DEBUG -- :  (227.2ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:38:09.931351 #426] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_4/query-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_4/query-details.json new file mode 100644 index 00000000..ec9e34d0 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_4/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:38:06.659270+00:00","end_time":"2022-09-30T21:38:09.703149+00:00","sql":"select pg_sleep($1) /*application:test,db_config_name:main,line:/lib/gitlab/background_migration/test_background_migration.rb:5:in `perform'*/","binds":[3]},{"start_time":"2022-09-30T21:38:09.703575+00:00","end_time":"2022-09-30T21:38:09.931489+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_4/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_4/transaction-duration.json new file mode 100644 index 00000000..fe51488c --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_4/transaction-duration.json @@ -0,0 +1 @@ +[] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_5/batch-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_5/batch-details.json new file mode 100644 index 00000000..d753e050 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_5/batch-details.json @@ -0,0 +1,8 @@ +{ + "time_spent": 0.74, + "min_value": 5615, + "max_value": 5764, + "batch_size": 150, + "sub_batch_size": 75, + "pause_ms": 100 +} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_5/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_5/migration-stats.json new file mode 100644 index 00000000..59801ee0 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_5/migration-stats.json @@ -0,0 +1 @@ +{"version":null,"name":"batch_5","walltime":4.046165511012077,"success":false,"error_message": "Error!","total_database_size_change":0,"query_statistics":[{"query":"select pg_sleep($1) /*application:test,db_config_name:main,line:/lib/gitlab/background_migration/test_background_migration.rb:5:in `perform'*/","calls":1,"total_time":4003.8769150000003,"max_time":4003.8769150000003,"mean_time":4003.8769150000003,"rows":1},{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":163.741021,"max_time":163.741021,"mean_time":163.741021,"rows":1},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.15319,"max_time":0.15319,"mean_time":0.15319,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":1,"total_time":0.053448,"max_time":0.053448,"mean_time":0.053448,"rows":1},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.026449999999999998,"max_time":0.026449999999999998,"mean_time":0.026449999999999998,"rows":1}]} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_5/migration.log b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_5/migration.log new file mode 100644 index 00000000..f24e8a89 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_5/migration.log @@ -0,0 +1,5 @@ +# Logfile created on 2022-09-30 21:38:10 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:38:14.418518 #426] DEBUG -- :  (4044.6ms) select pg_sleep($1) /*application:test,db_config_name:main,line:/lib/gitlab/background_migration/test_background_migration.rb:5:in `perform'*/ [[nil, 4]] +D, [2022-09-30T21:38:14.419023 #426] DEBUG -- : ↳ lib/gitlab/background_migration/test_background_migration.rb:5:in `perform' +D, [2022-09-30T21:38:14.624787 #426] DEBUG -- :  (205.0ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:38:14.625282 #426] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_5/query-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_5/query-details.json new file mode 100644 index 00000000..3caeac6c --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_5/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:38:10.373727+00:00","end_time":"2022-09-30T21:38:14.419163+00:00","sql":"select pg_sleep($1) /*application:test,db_config_name:main,line:/lib/gitlab/background_migration/test_background_migration.rb:5:in `perform'*/","binds":[4]},{"start_time":"2022-09-30T21:38:14.419640+00:00","end_time":"2022-09-30T21:38:14.625448+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_5/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_5/transaction-duration.json new file mode 100644 index 00000000..fe51488c --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_5/transaction-duration.json @@ -0,0 +1 @@ +[] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_6/batch-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_6/batch-details.json new file mode 100644 index 00000000..c5c6fcb5 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_6/batch-details.json @@ -0,0 +1 @@ +{"time_spent":2.92,"min_value":1,"max_value":100,"batch_size":100,"sub_batch_size":20,"pause_ms":100} \ No newline at end of file diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_6/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_6/migration-stats.json new file mode 100644 index 00000000..2557ceb2 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_6/migration-stats.json @@ -0,0 +1 @@ +{"version":null,"name":"batch_1","walltime":2.728068247437477,"success":true,"total_database_size_change":8192,"error_message":null,"query_statistics":[{"query":"UPDATE \"sent_notifications\" SET \"recipient_id\" = $1 WHERE \"sent_notifications\".\"id\" IN ($2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20) /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:20:in `block in perform'*/","calls":1,"total_time":616.542227,"max_time":616.542227,"mean_time":616.542227,"rows":19},{"query":"UPDATE \"sent_notifications\" SET \"recipient_id\" = $1 WHERE \"sent_notifications\".\"id\" IN ($2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19) /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:20:in `block in perform'*/","calls":1,"total_time":252.50770599999998,"max_time":252.50770599999998,"mean_time":252.50770599999998,"rows":18},{"query":"select pg_database_size(current_database()) /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":150.188745,"max_time":150.188745,"mean_time":150.188745,"rows":1},{"query":"INSERT INTO \"batched_background_migration_job_transition_logs\" (\"batched_background_migration_job_id\", \"created_at\", \"updated_at\", \"previous_status\", \"next_status\") VALUES ($1, $2, $3, $4, $5) RETURNING \"id\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/","calls":2,"total_time":34.370335999999995,"max_time":34.132729,"mean_time":17.185167999999997,"rows":2},{"query":"UPDATE \"sent_notifications\" SET \"recipient_id\" = $1 WHERE \"sent_notifications\".\"id\" IN ($2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16) /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:20:in `block in perform'*/","calls":1,"total_time":32.087579999999996,"max_time":32.087579999999996,"mean_time":32.087579999999996,"rows":15},{"query":"SELECT \"sent_notifications\".* FROM \"sent_notifications\" WHERE \"sent_notifications\".\"id\" BETWEEN $1 AND $2 AND \"sent_notifications\".\"id\" \u003e= $3 AND \"sent_notifications\".\"id\" \u003c $4 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:18:in `block in perform'*/","calls":4,"total_time":7.519928,"max_time":5.015592,"mean_time":1.8799819999999998,"rows":80},{"query":"UPDATE \"batched_background_migration_jobs\" SET \"updated_at\" = $1, \"finished_at\" = $2, \"status\" = $3, \"metrics\" = $4 WHERE \"batched_background_migration_jobs\".\"id\" = $5 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/","calls":1,"total_time":6.8821769999999995,"max_time":6.8821769999999995,"mean_time":6.8821769999999995,"rows":1},{"query":"UPDATE \"batched_background_migration_jobs\" SET \"updated_at\" = $1, \"started_at\" = $2, \"status\" = $3, \"attempts\" = $4 WHERE \"batched_background_migration_jobs\".\"id\" = $5 /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/","calls":1,"total_time":3.868166,"max_time":3.868166,"mean_time":3.868166,"rows":1},{"query":"SELECT a.attname, format_type(a.atttypid, a.atttypmod),\n pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,\n c.collname, col_description(a.attrelid, a.attnum) AS comment,\n attgenerated as attgenerated\n FROM pg_attribute a\n LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum\n LEFT JOIN pg_type t ON a.atttypid = t.oid\n LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation \u003c\u003e t.typcollation\n WHERE a.attrelid = $1::regclass\n AND a.attnum \u003e $2 AND NOT a.attisdropped\n ORDER BY a.attnum","calls":1,"total_time":1.3795680000000001,"max_time":1.3795680000000001,"mean_time":1.3795680000000001,"rows":8},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.428366,"max_time":0.428366,"mean_time":0.428366,"rows":1},{"query":"SELECT \"sent_notifications\".\"id\" FROM \"sent_notifications\" WHERE \"sent_notifications\".\"id\" BETWEEN $1 AND $2 AND \"sent_notifications\".\"id\" \u003e= $3 ORDER BY \"sent_notifications\".\"id\" ASC LIMIT $4 OFFSET $5 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/app/models/concerns/each_batch.rb:81:in `block in each_batch'*/","calls":5,"total_time":0.242581,"max_time":0.07368,"mean_time":0.048516199999999995,"rows":4},{"query":"UPDATE \"sent_notifications\" SET \"recipient_id\" = $1 WHERE \"sent_notifications\".\"id\" IN ($2, $3, $4, $5, $6, $7, $8, $9, $10) /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:20:in `block in perform'*/","calls":1,"total_time":0.134094,"max_time":0.134094,"mean_time":0.134094,"rows":9},{"query":"SELECT \"batched_background_migration_jobs\".* FROM \"batched_background_migration_jobs\" WHERE \"batched_background_migration_jobs\".\"id\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/","calls":2,"total_time":0.115344,"max_time":0.060437,"mean_time":0.057672,"rows":2},{"query":"UPDATE \"sent_notifications\" SET \"recipient_id\" = $1 WHERE \"sent_notifications\".\"id\" IN ($2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12) /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:20:in `block in perform'*/","calls":1,"total_time":0.111545,"max_time":0.111545,"mean_time":0.111545,"rows":11},{"query":"SELECT SUM(\"batched_background_migration_jobs\".\"batch_size\") FROM \"batched_background_migration_jobs\" WHERE \"batched_background_migration_jobs\".\"batched_background_migration_id\" = $1 AND (\"batched_background_migration_jobs\".\"status\" IN ($2)) /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/database/background_migration/batched_migration.rb:188:in `migrated_tuple_count'*/","calls":1,"total_time":0.056996,"max_time":0.056996,"mean_time":0.056996,"rows":1},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.04422,"max_time":0.04422,"mean_time":0.04422,"rows":1},{"query":"SELECT \"batched_background_migrations\".* FROM \"batched_background_migrations\" WHERE \"batched_background_migrations\".\"id\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/background_migration/batched_job.rb:93:in `block (2 levels) in \u003cclass:BatchedJob\u003e'*/","calls":1,"total_time":0.043484,"max_time":0.043484,"mean_time":0.043484,"rows":1},{"query":"SELECT \"sent_notifications\".* FROM \"sent_notifications\" WHERE \"sent_notifications\".\"id\" BETWEEN $1 AND $2 AND \"sent_notifications\".\"id\" \u003e= $3 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:18:in `block in perform'*/","calls":1,"total_time":0.042982000000000006,"max_time":0.042982000000000006,"mean_time":0.042982000000000006,"rows":20},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":1,"total_time":0.042321,"max_time":0.042321,"mean_time":0.042321,"rows":1},{"query":"SELECT \"sent_notifications\".\"id\" FROM \"sent_notifications\" WHERE \"sent_notifications\".\"id\" BETWEEN $1 AND $2 ORDER BY \"sent_notifications\".\"id\" ASC LIMIT $3 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/app/models/concerns/each_batch.rb:62:in `each_batch'*/","calls":1,"total_time":0.019816,"max_time":0.019816,"mean_time":0.019816,"rows":1},{"query":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/","calls":1,"total_time":0.002462,"max_time":0.002462,"mean_time":0.002462,"rows":0},{"query":"COMMIT /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/database.rb:423:in `commit'*/","calls":1,"total_time":0.002026,"max_time":0.002026,"mean_time":0.002026,"rows":0},{"query":"BEGIN /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/","calls":1,"total_time":0.001793,"max_time":0.001793,"mean_time":0.001793,"rows":0},{"query":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:423:in `commit'*/","calls":1,"total_time":0.001298,"max_time":0.001298,"mean_time":0.001298,"rows":0}]} \ No newline at end of file diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_6/migration.log b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_6/migration.log new file mode 100644 index 00000000..ecd4f5bf --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_6/migration.log @@ -0,0 +1,59 @@ +# Logfile created on 2023-09-11 19:18:51 +0000 by logger.rb/v1.4.3 +D, [2023-09-11T19:18:51.572157 #102] DEBUG -- : TRANSACTION (37.0ms) BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/ +D, [2023-09-11T19:18:51.573519 #102] DEBUG -- : ↳ lib/gitlab/database.rb:390:in `block in transaction' +D, [2023-09-11T19:18:51.615868 #102] DEBUG -- : Gitlab::Database::BackgroundMigration::BatchedJob Update (41.8ms) UPDATE "batched_background_migration_jobs" SET "updated_at" = '2023-09-11 19:18:51.532703', "started_at" = '2023-09-11 19:18:51.532133', "status" = 1, "attempts" = 1 WHERE "batched_background_migration_jobs"."id" = 356163 /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/ +D, [2023-09-11T19:18:51.617084 #102] DEBUG -- : ↳ lib/gitlab/database.rb:390:in `block in transaction' +D, [2023-09-11T19:18:51.704381 #102] DEBUG -- : Gitlab::Database::BackgroundMigration::BatchedJob Load (37.6ms) SELECT "batched_background_migration_jobs".* FROM "batched_background_migration_jobs" WHERE "batched_background_migration_jobs"."id" = 356163 LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/ +D, [2023-09-11T19:18:51.705656 #102] DEBUG -- : ↳ lib/gitlab/database.rb:390:in `block in transaction' +D, [2023-09-11T19:18:51.779965 #102] DEBUG -- : Gitlab::Database::BackgroundMigration::BatchedJobTransitionLog Create (71.9ms) INSERT INTO "batched_background_migration_job_transition_logs" ("batched_background_migration_job_id", "created_at", "updated_at", "previous_status", "next_status") VALUES (356163, '2023-09-11 19:18:51.706579', '2023-09-11 19:18:51.706579', 0, 1) RETURNING "id" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/ +D, [2023-09-11T19:18:51.780997 #102] DEBUG -- : ↳ lib/gitlab/database.rb:390:in `block in transaction' +D, [2023-09-11T19:18:51.821108 #102] DEBUG -- : Gitlab::Database::BackgroundMigration::BatchedMigration Load (37.3ms) SELECT "batched_background_migrations".* FROM "batched_background_migrations" WHERE "batched_background_migrations"."id" = 487 LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/background_migration/batched_job.rb:93:in `block (2 levels) in '*/ +D, [2023-09-11T19:18:51.821878 #102] DEBUG -- : ↳ lib/gitlab/database/background_migration/batched_job.rb:93:in `block (2 levels) in ' +D, [2023-09-11T19:18:51.861519 #102] DEBUG -- : TRANSACTION (37.9ms) COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:423:in `commit'*/ +D, [2023-09-11T19:18:51.862209 #102] DEBUG -- : ↳ lib/gitlab/database.rb:423:in `commit' +D, [2023-09-11T19:18:51.904980 #102] DEBUG -- :  Load (38.0ms) SELECT "sent_notifications"."id" FROM "sent_notifications" WHERE "sent_notifications"."id" BETWEEN 1 AND 100 ORDER BY "sent_notifications"."id" ASC LIMIT 1 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/app/models/concerns/each_batch.rb:62:in `each_batch'*/ +D, [2023-09-11T19:18:51.905617 #102] DEBUG -- : ↳ app/models/concerns/each_batch.rb:62:in `each_batch' +D, [2023-09-11T19:18:51.947946 #102] DEBUG -- :  Load (38.4ms) SELECT "sent_notifications"."id" FROM "sent_notifications" WHERE "sent_notifications"."id" BETWEEN 1 AND 100 AND "sent_notifications"."id" >= 1 ORDER BY "sent_notifications"."id" ASC LIMIT 1 OFFSET 20 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/app/models/concerns/each_batch.rb:81:in `block in each_batch'*/ +D, [2023-09-11T19:18:51.948601 #102] DEBUG -- : ↳ app/models/concerns/each_batch.rb:81:in `block in each_batch' +D, [2023-09-11T19:18:52.028314 #102] DEBUG -- :  Load (76.9ms) SELECT "sent_notifications".* FROM "sent_notifications" WHERE "sent_notifications"."id" BETWEEN 1 AND 100 AND "sent_notifications"."id" >= 1 AND "sent_notifications"."id" < 21 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:18:in `block in perform'*/ +D, [2023-09-11T19:18:52.029074 #102] DEBUG -- : ↳ lib/gitlab/background_migration/test_backfill.rb:18:in `block in perform' +D, [2023-09-11T19:18:52.699952 #102] DEBUG -- : SentNotification Update All (663.3ms) UPDATE "sent_notifications" SET "recipient_id" = 4 WHERE "sent_notifications"."id" IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19) /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:20:in `block in perform'*/ +D, [2023-09-11T19:18:52.700557 #102] DEBUG -- : ↳ lib/gitlab/background_migration/test_backfill.rb:20:in `block in perform' +D, [2023-09-11T19:18:52.841057 #102] DEBUG -- :  Load (38.3ms) SELECT "sent_notifications"."id" FROM "sent_notifications" WHERE "sent_notifications"."id" BETWEEN 1 AND 100 AND "sent_notifications"."id" >= 21 ORDER BY "sent_notifications"."id" ASC LIMIT 1 OFFSET 20 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/app/models/concerns/each_batch.rb:81:in `block in each_batch'*/ +D, [2023-09-11T19:18:52.841707 #102] DEBUG -- : ↳ app/models/concerns/each_batch.rb:81:in `block in each_batch' +D, [2023-09-11T19:18:52.881312 #102] DEBUG -- :  Load (38.1ms) SELECT "sent_notifications".* FROM "sent_notifications" WHERE "sent_notifications"."id" BETWEEN 1 AND 100 AND "sent_notifications"."id" >= 21 AND "sent_notifications"."id" < 41 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:18:in `block in perform'*/ +D, [2023-09-11T19:18:52.882060 #102] DEBUG -- : ↳ lib/gitlab/background_migration/test_backfill.rb:18:in `block in perform' +D, [2023-09-11T19:18:52.922769 #102] DEBUG -- : SentNotification Update All (38.8ms) UPDATE "sent_notifications" SET "recipient_id" = 4 WHERE "sent_notifications"."id" IN (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31) /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:20:in `block in perform'*/ +D, [2023-09-11T19:18:52.923375 #102] DEBUG -- : ↳ lib/gitlab/background_migration/test_backfill.rb:20:in `block in perform' +D, [2023-09-11T19:18:53.062799 #102] DEBUG -- :  Load (37.5ms) SELECT "sent_notifications"."id" FROM "sent_notifications" WHERE "sent_notifications"."id" BETWEEN 1 AND 100 AND "sent_notifications"."id" >= 41 ORDER BY "sent_notifications"."id" ASC LIMIT 1 OFFSET 20 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/app/models/concerns/each_batch.rb:81:in `block in each_batch'*/ +D, [2023-09-11T19:18:53.063466 #102] DEBUG -- : ↳ app/models/concerns/each_batch.rb:81:in `block in each_batch' +D, [2023-09-11T19:18:53.108004 #102] DEBUG -- :  Load (43.0ms) SELECT "sent_notifications".* FROM "sent_notifications" WHERE "sent_notifications"."id" BETWEEN 1 AND 100 AND "sent_notifications"."id" >= 41 AND "sent_notifications"."id" < 61 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:18:in `block in perform'*/ +D, [2023-09-11T19:18:53.108685 #102] DEBUG -- : ↳ lib/gitlab/background_migration/test_backfill.rb:18:in `block in perform' +D, [2023-09-11T19:18:53.402909 #102] DEBUG -- : SentNotification Update All (292.4ms) UPDATE "sent_notifications" SET "recipient_id" = 4 WHERE "sent_notifications"."id" IN (41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58) /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:20:in `block in perform'*/ +D, [2023-09-11T19:18:53.403544 #102] DEBUG -- : ↳ lib/gitlab/background_migration/test_backfill.rb:20:in `block in perform' +D, [2023-09-11T19:18:53.543293 #102] DEBUG -- :  Load (37.8ms) SELECT "sent_notifications"."id" FROM "sent_notifications" WHERE "sent_notifications"."id" BETWEEN 1 AND 100 AND "sent_notifications"."id" >= 61 ORDER BY "sent_notifications"."id" ASC LIMIT 1 OFFSET 20 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/app/models/concerns/each_batch.rb:81:in `block in each_batch'*/ +D, [2023-09-11T19:18:53.544001 #102] DEBUG -- : ↳ app/models/concerns/each_batch.rb:81:in `block in each_batch' +D, [2023-09-11T19:18:53.584803 #102] DEBUG -- :  Load (39.3ms) SELECT "sent_notifications".* FROM "sent_notifications" WHERE "sent_notifications"."id" BETWEEN 1 AND 100 AND "sent_notifications"."id" >= 61 AND "sent_notifications"."id" < 81 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:18:in `block in perform'*/ +D, [2023-09-11T19:18:53.585475 #102] DEBUG -- : ↳ lib/gitlab/background_migration/test_backfill.rb:18:in `block in perform' +D, [2023-09-11T19:18:53.663008 #102] DEBUG -- : SentNotification Update All (75.6ms) UPDATE "sent_notifications" SET "recipient_id" = 4 WHERE "sent_notifications"."id" IN (61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75) /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:20:in `block in perform'*/ +D, [2023-09-11T19:18:53.663593 #102] DEBUG -- : ↳ lib/gitlab/background_migration/test_backfill.rb:20:in `block in perform' +D, [2023-09-11T19:18:53.803371 #102] DEBUG -- :  Load (37.8ms) SELECT "sent_notifications"."id" FROM "sent_notifications" WHERE "sent_notifications"."id" BETWEEN 1 AND 100 AND "sent_notifications"."id" >= 81 ORDER BY "sent_notifications"."id" ASC LIMIT 1 OFFSET 20 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/app/models/concerns/each_batch.rb:81:in `block in each_batch'*/ +D, [2023-09-11T19:18:53.806510 #102] DEBUG -- : ↳ app/models/concerns/each_batch.rb:81:in `block in each_batch' +D, [2023-09-11T19:18:53.846040 #102] DEBUG -- :  Load (38.1ms) SELECT "sent_notifications".* FROM "sent_notifications" WHERE "sent_notifications"."id" BETWEEN 1 AND 100 AND "sent_notifications"."id" >= 81 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:18:in `block in perform'*/ +D, [2023-09-11T19:18:53.846841 #102] DEBUG -- : ↳ lib/gitlab/background_migration/test_backfill.rb:18:in `block in perform' +D, [2023-09-11T19:18:53.886469 #102] DEBUG -- : SentNotification Update All (37.7ms) UPDATE "sent_notifications" SET "recipient_id" = 4 WHERE "sent_notifications"."id" IN (81, 82, 83, 84, 85, 86, 87, 88, 89) /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:20:in `block in perform'*/ +D, [2023-09-11T19:18:53.887046 #102] DEBUG -- : ↳ lib/gitlab/background_migration/test_backfill.rb:20:in `block in perform' +D, [2023-09-11T19:18:54.028829 #102] DEBUG -- : TRANSACTION (37.6ms) BEGIN /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/ +D, [2023-09-11T19:18:54.030090 #102] DEBUG -- : ↳ lib/gitlab/database.rb:390:in `block in transaction' +D, [2023-09-11T19:18:54.075245 #102] DEBUG -- : Gitlab::Database::BackgroundMigration::BatchedJob Update (44.6ms) UPDATE "batched_background_migration_jobs" SET "updated_at" = '2023-09-11 19:18:53.988926', "finished_at" = '2023-09-11 19:18:53.988295', "status" = 3, "metrics" = '{"timings":{"update_all":[0.750639796257019,0.0813731700181961,0.3397645652294159,0.11927033960819244,0.08030308783054352]},"affected_rows":{"update_all":[19,11,18,15,9]}}' WHERE "batched_background_migration_jobs"."id" = 356163 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/ +D, [2023-09-11T19:18:54.076338 #102] DEBUG -- : ↳ lib/gitlab/database.rb:390:in `block in transaction' +D, [2023-09-11T19:18:54.117084 #102] DEBUG -- : Gitlab::Database::BackgroundMigration::BatchedJob Load (37.5ms) SELECT "batched_background_migration_jobs".* FROM "batched_background_migration_jobs" WHERE "batched_background_migration_jobs"."id" = 356163 LIMIT 1 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/ +D, [2023-09-11T19:18:54.118169 #102] DEBUG -- : ↳ lib/gitlab/database.rb:390:in `block in transaction' +D, [2023-09-11T19:18:54.160136 #102] DEBUG -- : Gitlab::Database::BackgroundMigration::BatchedJobTransitionLog Create (39.7ms) INSERT INTO "batched_background_migration_job_transition_logs" ("batched_background_migration_job_id", "created_at", "updated_at", "previous_status", "next_status") VALUES (356163, '2023-09-11 19:18:54.118951', '2023-09-11 19:18:54.118951', 1, 3) RETURNING "id" /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/ +D, [2023-09-11T19:18:54.161192 #102] DEBUG -- : ↳ lib/gitlab/database.rb:390:in `block in transaction' +D, [2023-09-11T19:18:54.201160 #102] DEBUG -- : TRANSACTION (38.2ms) COMMIT /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/database.rb:423:in `commit'*/ +D, [2023-09-11T19:18:54.201723 #102] DEBUG -- : ↳ lib/gitlab/database.rb:423:in `commit' +D, [2023-09-11T19:18:54.254724 #102] DEBUG -- : Gitlab::Database::BackgroundMigration::BatchedJob Sum (49.7ms) SELECT SUM("batched_background_migration_jobs"."batch_size") FROM "batched_background_migration_jobs" WHERE "batched_background_migration_jobs"."batched_background_migration_id" = 487 AND ("batched_background_migration_jobs"."status" IN (3)) /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/database/background_migration/batched_migration.rb:188:in `migrated_tuple_count'*/ +D, [2023-09-11T19:18:54.255323 #102] DEBUG -- : ↳ lib/gitlab/database/background_migration/batched_migration.rb:188:in `migrated_tuple_count' +D, [2023-09-11T19:18:54.444382 #102] DEBUG -- :  (187.4ms) select pg_database_size(current_database()) /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2023-09-11T19:18:54.444895 #102] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_6/query-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_6/query-details.json new file mode 100644 index 00000000..65cd76bc --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_6/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2023-09-11T19:18:51.534985+00:00","end_time":"2023-09-11T19:18:51.573787+00:00","sql":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/","binds":[]},{"start_time":"2023-09-11T19:18:51.573965+00:00","end_time":"2023-09-11T19:18:51.617249+00:00","sql":"UPDATE \"batched_background_migration_jobs\" SET \"updated_at\" = '2023-09-11 19:18:51.532703', \"started_at\" = '2023-09-11 19:18:51.532133', \"status\" = 1, \"attempts\" = 1 WHERE \"batched_background_migration_jobs\".\"id\" = 356163 /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/","binds":[]},{"start_time":"2023-09-11T19:18:51.618566+00:00","end_time":"2023-09-11T19:18:51.658392+00:00","sql":"SELECT a.attname, format_type(a.atttypid, a.atttypmod),\n pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,\n c.collname, col_description(a.attrelid, a.attnum) AS comment,\n attgenerated as attgenerated\n FROM pg_attribute a\n LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum\n LEFT JOIN pg_type t ON a.atttypid = t.oid\n LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation \u003c\u003e t.typcollation\n WHERE a.attrelid = '\"batched_background_migration_job_transition_logs\"'::regclass\n AND a.attnum \u003e 0 AND NOT a.attisdropped\n ORDER BY a.attnum\n","binds":[]},{"start_time":"2023-09-11T19:18:51.666696+00:00","end_time":"2023-09-11T19:18:51.705834+00:00","sql":"SELECT \"batched_background_migration_jobs\".* FROM \"batched_background_migration_jobs\" WHERE \"batched_background_migration_jobs\".\"id\" = 356163 LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/","binds":[]},{"start_time":"2023-09-11T19:18:51.707937+00:00","end_time":"2023-09-11T19:18:51.781168+00:00","sql":"INSERT INTO \"batched_background_migration_job_transition_logs\" (\"batched_background_migration_job_id\", \"created_at\", \"updated_at\", \"previous_status\", \"next_status\") VALUES (356163, '2023-09-11 19:18:51.706579', '2023-09-11 19:18:51.706579', 0, 1) RETURNING \"id\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/","binds":[]},{"start_time":"2023-09-11T19:18:51.783689+00:00","end_time":"2023-09-11T19:18:51.822045+00:00","sql":"SELECT \"batched_background_migrations\".* FROM \"batched_background_migrations\" WHERE \"batched_background_migrations\".\"id\" = 487 LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/background_migration/batched_job.rb:93:in `block (2 levels) in \u003cclass:BatchedJob\u003e'*/","binds":[]},{"start_time":"2023-09-11T19:18:51.823472+00:00","end_time":"2023-09-11T19:18:51.862376+00:00","sql":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:423:in `commit'*/","binds":[]},{"start_time":"2023-09-11T19:18:51.866892+00:00","end_time":"2023-09-11T19:18:51.905803+00:00","sql":"SELECT \"sent_notifications\".\"id\" FROM \"sent_notifications\" WHERE \"sent_notifications\".\"id\" BETWEEN 1 AND 100 ORDER BY \"sent_notifications\".\"id\" ASC LIMIT 1 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/app/models/concerns/each_batch.rb:62:in `each_batch'*/","binds":[]},{"start_time":"2023-09-11T19:18:51.909456+00:00","end_time":"2023-09-11T19:18:51.948750+00:00","sql":"SELECT \"sent_notifications\".\"id\" FROM \"sent_notifications\" WHERE \"sent_notifications\".\"id\" BETWEEN 1 AND 100 AND \"sent_notifications\".\"id\" \u003e= 1 ORDER BY \"sent_notifications\".\"id\" ASC LIMIT 1 OFFSET 20 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/app/models/concerns/each_batch.rb:81:in `block in each_batch'*/","binds":[]},{"start_time":"2023-09-11T19:18:51.951232+00:00","end_time":"2023-09-11T19:18:52.029285+00:00","sql":"SELECT \"sent_notifications\".* FROM \"sent_notifications\" WHERE \"sent_notifications\".\"id\" BETWEEN 1 AND 100 AND \"sent_notifications\".\"id\" \u003e= 1 AND \"sent_notifications\".\"id\" \u003c 21 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:18:in `block in perform'*/","binds":[]},{"start_time":"2023-09-11T19:18:52.036471+00:00","end_time":"2023-09-11T19:18:52.700805+00:00","sql":"UPDATE \"sent_notifications\" SET \"recipient_id\" = 4 WHERE \"sent_notifications\".\"id\" IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19) /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:20:in `block in perform'*/","binds":[]},{"start_time":"2023-09-11T19:18:52.802624+00:00","end_time":"2023-09-11T19:18:52.841856+00:00","sql":"SELECT \"sent_notifications\".\"id\" FROM \"sent_notifications\" WHERE \"sent_notifications\".\"id\" BETWEEN 1 AND 100 AND \"sent_notifications\".\"id\" \u003e= 21 ORDER BY \"sent_notifications\".\"id\" ASC LIMIT 1 OFFSET 20 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/app/models/concerns/each_batch.rb:81:in `block in each_batch'*/","binds":[]},{"start_time":"2023-09-11T19:18:52.843062+00:00","end_time":"2023-09-11T19:18:52.882220+00:00","sql":"SELECT \"sent_notifications\".* FROM \"sent_notifications\" WHERE \"sent_notifications\".\"id\" BETWEEN 1 AND 100 AND \"sent_notifications\".\"id\" \u003e= 21 AND \"sent_notifications\".\"id\" \u003c 41 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:18:in `block in perform'*/","binds":[]},{"start_time":"2023-09-11T19:18:52.883767+00:00","end_time":"2023-09-11T19:18:52.923527+00:00","sql":"UPDATE \"sent_notifications\" SET \"recipient_id\" = 4 WHERE \"sent_notifications\".\"id\" IN (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31) /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:20:in `block in perform'*/","binds":[]},{"start_time":"2023-09-11T19:18:53.025151+00:00","end_time":"2023-09-11T19:18:53.063617+00:00","sql":"SELECT \"sent_notifications\".\"id\" FROM \"sent_notifications\" WHERE \"sent_notifications\".\"id\" BETWEEN 1 AND 100 AND \"sent_notifications\".\"id\" \u003e= 41 ORDER BY \"sent_notifications\".\"id\" ASC LIMIT 1 OFFSET 20 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/app/models/concerns/each_batch.rb:81:in `block in each_batch'*/","binds":[]},{"start_time":"2023-09-11T19:18:53.064905+00:00","end_time":"2023-09-11T19:18:53.108841+00:00","sql":"SELECT \"sent_notifications\".* FROM \"sent_notifications\" WHERE \"sent_notifications\".\"id\" BETWEEN 1 AND 100 AND \"sent_notifications\".\"id\" \u003e= 41 AND \"sent_notifications\".\"id\" \u003c 61 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:18:in `block in perform'*/","binds":[]},{"start_time":"2023-09-11T19:18:53.110381+00:00","end_time":"2023-09-11T19:18:53.403706+00:00","sql":"UPDATE \"sent_notifications\" SET \"recipient_id\" = 4 WHERE \"sent_notifications\".\"id\" IN (41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58) /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:20:in `block in perform'*/","binds":[]},{"start_time":"2023-09-11T19:18:53.505393+00:00","end_time":"2023-09-11T19:18:53.544174+00:00","sql":"SELECT \"sent_notifications\".\"id\" FROM \"sent_notifications\" WHERE \"sent_notifications\".\"id\" BETWEEN 1 AND 100 AND \"sent_notifications\".\"id\" \u003e= 61 ORDER BY \"sent_notifications\".\"id\" ASC LIMIT 1 OFFSET 20 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/app/models/concerns/each_batch.rb:81:in `block in each_batch'*/","binds":[]},{"start_time":"2023-09-11T19:18:53.545408+00:00","end_time":"2023-09-11T19:18:53.585682+00:00","sql":"SELECT \"sent_notifications\".* FROM \"sent_notifications\" WHERE \"sent_notifications\".\"id\" BETWEEN 1 AND 100 AND \"sent_notifications\".\"id\" \u003e= 61 AND \"sent_notifications\".\"id\" \u003c 81 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:18:in `block in perform'*/","binds":[]},{"start_time":"2023-09-11T19:18:53.587327+00:00","end_time":"2023-09-11T19:18:53.663746+00:00","sql":"UPDATE \"sent_notifications\" SET \"recipient_id\" = 4 WHERE \"sent_notifications\".\"id\" IN (61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75) /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:20:in `block in perform'*/","binds":[]},{"start_time":"2023-09-11T19:18:53.765407+00:00","end_time":"2023-09-11T19:18:53.806727+00:00","sql":"SELECT \"sent_notifications\".\"id\" FROM \"sent_notifications\" WHERE \"sent_notifications\".\"id\" BETWEEN 1 AND 100 AND \"sent_notifications\".\"id\" \u003e= 81 ORDER BY \"sent_notifications\".\"id\" ASC LIMIT 1 OFFSET 20 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/app/models/concerns/each_batch.rb:81:in `block in each_batch'*/","binds":[]},{"start_time":"2023-09-11T19:18:53.807881+00:00","end_time":"2023-09-11T19:18:53.847028+00:00","sql":"SELECT \"sent_notifications\".* FROM \"sent_notifications\" WHERE \"sent_notifications\".\"id\" BETWEEN 1 AND 100 AND \"sent_notifications\".\"id\" \u003e= 81 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:18:in `block in perform'*/","binds":[]},{"start_time":"2023-09-11T19:18:53.848570+00:00","end_time":"2023-09-11T19:18:53.887210+00:00","sql":"UPDATE \"sent_notifications\" SET \"recipient_id\" = 4 WHERE \"sent_notifications\".\"id\" IN (81, 82, 83, 84, 85, 86, 87, 88, 89) /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/background_migration/test_backfill.rb:20:in `block in perform'*/","binds":[]},{"start_time":"2023-09-11T19:18:53.991085+00:00","end_time":"2023-09-11T19:18:54.030311+00:00","sql":"BEGIN /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/","binds":[]},{"start_time":"2023-09-11T19:18:54.030523+00:00","end_time":"2023-09-11T19:18:54.076500+00:00","sql":"UPDATE \"batched_background_migration_jobs\" SET \"updated_at\" = '2023-09-11 19:18:53.988926', \"finished_at\" = '2023-09-11 19:18:53.988295', \"status\" = 3, \"metrics\" = '{\"timings\":{\"update_all\":[0.750639796257019,0.0813731700181961,0.3397645652294159,0.11927033960819244,0.08030308783054352]},\"affected_rows\":{\"update_all\":[19,11,18,15,9]}}' WHERE \"batched_background_migration_jobs\".\"id\" = 356163 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/","binds":[]},{"start_time":"2023-09-11T19:18:54.079452+00:00","end_time":"2023-09-11T19:18:54.118329+00:00","sql":"SELECT \"batched_background_migration_jobs\".* FROM \"batched_background_migration_jobs\" WHERE \"batched_background_migration_jobs\".\"id\" = 356163 LIMIT 1 /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/","binds":[]},{"start_time":"2023-09-11T19:18:54.120290+00:00","end_time":"2023-09-11T19:18:54.161371+00:00","sql":"INSERT INTO \"batched_background_migration_job_transition_logs\" (\"batched_background_migration_job_id\", \"created_at\", \"updated_at\", \"previous_status\", \"next_status\") VALUES (356163, '2023-09-11 19:18:54.118951', '2023-09-11 19:18:54.118951', 1, 3) RETURNING \"id\" /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/database.rb:390:in `block in transaction'*/","binds":[]},{"start_time":"2023-09-11T19:18:54.162861+00:00","end_time":"2023-09-11T19:18:54.201885+00:00","sql":"COMMIT /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/database.rb:423:in `commit'*/","binds":[]},{"start_time":"2023-09-11T19:18:54.204847+00:00","end_time":"2023-09-11T19:18:54.255465+00:00","sql":"SELECT SUM(\"batched_background_migration_jobs\".\"batch_size\") FROM \"batched_background_migration_jobs\" WHERE \"batched_background_migration_jobs\".\"batched_background_migration_id\" = 487 AND (\"batched_background_migration_jobs\".\"status\" IN (3)) /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/database/background_migration/batched_migration.rb:188:in `migrated_tuple_count'*/","binds":[]},{"start_time":"2023-09-11T19:18:54.256883+00:00","end_time":"2023-09-11T19:18:54.445053+00:00","sql":"select pg_database_size(current_database()) /*application:test,correlation_id:7924e8d9985c5e2e66b279f43f6af95b,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_6/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_6/transaction-duration.json new file mode 100644 index 00000000..6a831c6c --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/batch_6/transaction-duration.json @@ -0,0 +1 @@ +[{"start_time":"2023-09-11T19:18:51.531915+00:00","end_time":"2023-09-11T19:18:51.862644+00:00","transaction_type":"real_transaction"},{"start_time":"2023-09-11T19:18:53.988141+00:00","end_time":"2023-09-11T19:18:54.202105+00:00","transaction_type":"real_transaction"}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/details.json b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/details.json new file mode 100644 index 00000000..6aeda51c --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/TestBackgroundMigration/details.json @@ -0,0 +1,5 @@ +{ + "interval": 120, + "total_tuple_count": 7291, + "max_batch_size": 750 +} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/full-batched-migration-output.log b/notifier/spec/fixtures/migration-testing/v4/sec/background_migrations/full-batched-migration-output.log new file mode 100644 index 00000000..e69de29b diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateEfficientlyOrderedColumnsTable/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateEfficientlyOrderedColumnsTable/migration-stats.json new file mode 100644 index 00000000..bd777f05 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateEfficientlyOrderedColumnsTable/migration-stats.json @@ -0,0 +1 @@ +{"version": {"timestamp": 20221130142531 },"name":"CreateEfficientlyOrderedColumnsTable","walltime":1.2107175290584564,"success":true,"total_database_size_change":32768,"query_statistics":[{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":101.297379,"max_time":101.297379,"mean_time":101.297379,"rows":1},{"query":"CREATE TABLE \"efficiently_ordered_columns_tables\" (\"line_attr\" line, \"circle_attr\" circle, \"uuid_attr\" uuid, \"point_attr\" point, \"id\" bigserial primary key, \"bigserial_attr\" bigserial, \"bigint_attr\" bigint, \"float_attr\" float, \"time_attr\" time, \"timestamp_attr\" timestamp, \"date_attr\" date, \"integer_attr\" integer, \"oid_attr\" oid, \"smallint_attr\" smallint, \"boolean_attr\" boolean, \"inet_attr\" inet, \"jsonb_attr\" jsonb, \"text_attr\" text) /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers/v2.rb:46:in `create_table'*/","calls":1,"total_time":9.422597,"max_time":9.422597,"mean_time":9.422597,"rows":0},{"query":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","calls":1,"total_time":2.250037,"max_time":2.250037,"mean_time":2.250037,"rows":5610},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.159906,"max_time":0.159906,"mean_time":0.159906,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":3,"total_time":0.137162,"max_time":0.060429000000000004,"mean_time":0.045720666666666666,"rows":3},{"query":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","calls":1,"total_time":0.083016,"max_time":0.083016,"mean_time":0.083016,"rows":10},{"query":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ($1) RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:333:in `block in transaction'*/","calls":1,"total_time":0.047695999999999995,"max_time":0.047695999999999995,"mean_time":0.047695999999999995,"rows":1},{"query":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","calls":1,"total_time":0.04114,"max_time":0.04114,"mean_time":0.04114,"rows":0},{"query":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","calls":1,"total_time":0.039363999999999996,"max_time":0.039363999999999996,"mean_time":0.039363999999999996,"rows":1},{"query":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","calls":1,"total_time":0.034491,"max_time":0.034491,"mean_time":0.034491,"rows":0},{"query":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","calls":1,"total_time":0.027601,"max_time":0.027601,"mean_time":0.027601,"rows":0},{"query":"SELECT pg_try_advisory_lock($1)","calls":1,"total_time":0.027501,"max_time":0.027501,"mean_time":0.027501,"rows":1},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.027295,"max_time":0.027295,"mean_time":0.027295,"rows":1},{"query":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","calls":1,"total_time":0.027119,"max_time":0.027119,"mean_time":0.027119,"rows":0},{"query":"set client_encoding to 'UTF8'","calls":1,"total_time":0.022852,"max_time":0.022852,"mean_time":0.022852,"rows":0},{"query":"set client_encoding to 'unicode'","calls":1,"total_time":0.01935,"max_time":0.01935,"mean_time":0.01935,"rows":0},{"query":"SELECT pg_advisory_unlock($1)","calls":1,"total_time":0.012827999999999999,"max_time":0.012827999999999999,"mean_time":0.012827999999999999,"rows":1},{"query":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","calls":1,"total_time":0.012304,"max_time":0.012304,"mean_time":0.012304,"rows":0},{"query":"SELECT current_database()","calls":1,"total_time":0.009573,"max_time":0.009573,"mean_time":0.009573,"rows":1},{"query":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","calls":1,"total_time":0.00619,"max_time":0.00619,"mean_time":0.00619,"rows":0},{"query":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:366:in `commit'*/","calls":1,"total_time":0.002647,"max_time":0.002647,"mean_time":0.002647,"rows":0},{"query":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers/v2.rb:46:in `create_table'*/","calls":1,"total_time":0.001926,"max_time":0.001926,"mean_time":0.001926,"rows":0}]} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateEfficientlyOrderedColumnsTable/migration.log b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateEfficientlyOrderedColumnsTable/migration.log new file mode 100644 index 00000000..bc36045f --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateEfficientlyOrderedColumnsTable/migration.log @@ -0,0 +1,20 @@ +# Logfile created on 2022-11-30 15:11:17 +0000 by logger.rb/v1.4.2 +D, [2022-11-30T15:11:17.885774 #474] DEBUG -- :  (40.7ms) SELECT pg_try_advisory_lock(3005434223539248480) +D, [2022-11-30T15:11:17.886271 #474] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run' +D, [2022-11-30T15:11:17.968280 #474] DEBUG -- :  (80.5ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/ +D, [2022-11-30T15:11:17.968941 #474] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run' +I, [2022-11-30T15:11:17.980101 #474] INFO -- : Migrating to CreateEfficientlyOrderedColumnsTable (20221130142531) +D, [2022-11-30T15:11:18.025563 #474] DEBUG -- : TRANSACTION (41.2ms) BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers/v2.rb:46:in `create_table'*/ +D, [2022-11-30T15:11:18.026317 #474] DEBUG -- : ↳ lib/gitlab/database/migration_helpers/v2.rb:46:in `create_table' +D, [2022-11-30T15:11:18.077546 #474] DEBUG -- :  (50.4ms) CREATE TABLE "efficiently_ordered_columns_tables" ("line_attr" line, "circle_attr" circle, "uuid_attr" uuid, "point_attr" point, "id" bigserial primary key, "bigserial_attr" bigserial, "bigint_attr" bigint, "float_attr" float, "time_attr" time, "timestamp_attr" timestamp, "date_attr" date, "integer_attr" integer, "oid_attr" oid, "smallint_attr" smallint, "boolean_attr" boolean, "inet_attr" inet, "jsonb_attr" jsonb, "text_attr" text) /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers/v2.rb:46:in `create_table'*/ +D, [2022-11-30T15:11:18.078141 #474] DEBUG -- : ↳ lib/gitlab/database/migration_helpers/v2.rb:46:in `create_table' +D, [2022-11-30T15:11:18.122665 #474] DEBUG -- : ActiveRecord::SchemaMigration Create (41.2ms) INSERT INTO "schema_migrations" ("version") VALUES ('20221130142531') RETURNING "version" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:333:in `block in transaction'*/ +D, [2022-11-30T15:11:18.124000 #474] DEBUG -- : ↳ lib/gitlab/database.rb:333:in `block in transaction' +D, [2022-11-30T15:11:18.165888 #474] DEBUG -- : TRANSACTION (40.6ms) COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:366:in `commit'*/ +D, [2022-11-30T15:11:18.166524 #474] DEBUG -- : ↳ lib/gitlab/database.rb:366:in `commit' +D, [2022-11-30T15:11:18.209708 #474] DEBUG -- : ActiveRecord::InternalMetadata Load (41.1ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/ +D, [2022-11-30T15:11:18.210512 #474] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run' +D, [2022-11-30T15:11:18.252827 #474] DEBUG -- :  (40.9ms) SELECT pg_advisory_unlock(3005434223539248480) +D, [2022-11-30T15:11:18.253424 #474] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run' +D, [2022-11-30T15:11:18.437091 #474] DEBUG -- :  (141.9ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-11-30T15:11:18.437581 #474] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateEfficientlyOrderedColumnsTable/query-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateEfficientlyOrderedColumnsTable/query-details.json new file mode 100644 index 00000000..12fa5642 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateEfficientlyOrderedColumnsTable/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-11-30T15:11:17.140858+00:00","end_time":"2022-11-30T15:11:17.182305+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'schema_migrations' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-11-30T15:11:17.182720+00:00","end_time":"2022-11-30T15:11:17.223784+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'ar_internal_metadata' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-11-30T15:11:17.224100+00:00","end_time":"2022-11-30T15:11:17.264770+00:00","sql":"SELECT current_database()","binds":[]},{"start_time":"2022-11-30T15:11:17.512604+00:00","end_time":"2022-11-30T15:11:17.553319+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-11-30T15:11:17.553866+00:00","end_time":"2022-11-30T15:11:17.594674+00:00","sql":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-11-30T15:11:17.595248+00:00","end_time":"2022-11-30T15:11:17.636913+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-11-30T15:11:17.637525+00:00","end_time":"2022-11-30T15:11:17.678337+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-11-30T15:11:17.678961+00:00","end_time":"2022-11-30T15:11:17.719517+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-11-30T15:11:17.720209+00:00","end_time":"2022-11-30T15:11:17.762812+00:00","sql":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-11-30T15:11:17.763555+00:00","end_time":"2022-11-30T15:11:17.804350+00:00","sql":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-11-30T15:11:17.844980+00:00","end_time":"2022-11-30T15:11:17.886464+00:00","sql":"SELECT pg_try_advisory_lock(3005434223539248480)","binds":[]},{"start_time":"2022-11-30T15:11:17.887591+00:00","end_time":"2022-11-30T15:11:17.969099+00:00","sql":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-11-30T15:11:17.984317+00:00","end_time":"2022-11-30T15:11:18.026836+00:00","sql":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers/v2.rb:46:in `create_table'*/","binds":[]},{"start_time":"2022-11-30T15:11:18.027004+00:00","end_time":"2022-11-30T15:11:18.078861+00:00","sql":"CREATE TABLE \"efficiently_ordered_columns_tables\" (\"line_attr\" line, \"circle_attr\" circle, \"uuid_attr\" uuid, \"point_attr\" point, \"id\" bigserial primary key, \"bigserial_attr\" bigserial, \"bigint_attr\" bigint, \"float_attr\" float, \"time_attr\" time, \"timestamp_attr\" timestamp, \"date_attr\" date, \"integer_attr\" integer, \"oid_attr\" oid, \"smallint_attr\" smallint, \"boolean_attr\" boolean, \"inet_attr\" inet, \"jsonb_attr\" jsonb, \"text_attr\" text) /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers/v2.rb:46:in `create_table'*/","binds":[]},{"start_time":"2022-11-30T15:11:18.081395+00:00","end_time":"2022-11-30T15:11:18.124220+00:00","sql":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ('20221130142531') RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:333:in `block in transaction'*/","binds":[]},{"start_time":"2022-11-30T15:11:18.125083+00:00","end_time":"2022-11-30T15:11:18.166697+00:00","sql":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:366:in `commit'*/","binds":[]},{"start_time":"2022-11-30T15:11:18.168527+00:00","end_time":"2022-11-30T15:11:18.210679+00:00","sql":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-11-30T15:11:18.211801+00:00","end_time":"2022-11-30T15:11:18.253589+00:00","sql":"SELECT pg_advisory_unlock(3005434223539248480)","binds":[]},{"start_time":"2022-11-30T15:11:18.295067+00:00","end_time":"2022-11-30T15:11:18.437729+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateEfficientlyOrderedColumnsTable/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateEfficientlyOrderedColumnsTable/transaction-duration.json new file mode 100644 index 00000000..9920ebca --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateEfficientlyOrderedColumnsTable/transaction-duration.json @@ -0,0 +1 @@ +[{"start_time":"2022-11-30T15:11:17.982008+00:00","end_time":"2022-11-30T15:11:18.166864+00:00","transaction_type":"real_transaction"}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateInefficientlyOrderedColumnsTable/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateInefficientlyOrderedColumnsTable/migration-stats.json new file mode 100644 index 00000000..25fb2efc --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateInefficientlyOrderedColumnsTable/migration-stats.json @@ -0,0 +1 @@ +{"version": {"timestamp": 20221130142617 },"name":"CreateInefficientlyOrderedColumnsTable","walltime":1.218021810054779,"success":true,"total_database_size_change":40960,"query_statistics":[{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":114.392859,"max_time":114.392859,"mean_time":114.392859,"rows":1},{"query":"CREATE TABLE \"inefficiently_ordered_columns_tables\" (\"id\" bigserial primary key, \"text_attr\" text, \"boolean_attr\" boolean, \"smallint_attr\" smallint, \"integer_attr\" integer, \"point_attr\" point, \"circle_attr\" circle, \"line_attr\" line) /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers/v2.rb:46:in `create_table'*/","calls":1,"total_time":5.731103,"max_time":5.731103,"mean_time":5.731103,"rows":0},{"query":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","calls":1,"total_time":1.83994,"max_time":1.83994,"mean_time":1.83994,"rows":5611},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.186484,"max_time":0.186484,"mean_time":0.186484,"rows":1},{"query":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ($1) RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:333:in `block in transaction'*/","calls":1,"total_time":0.138054,"max_time":0.138054,"mean_time":0.138054,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":3,"total_time":0.104548,"max_time":0.042132,"mean_time":0.034849333333333336,"rows":3},{"query":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","calls":1,"total_time":0.079596,"max_time":0.079596,"mean_time":0.079596,"rows":10},{"query":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","calls":1,"total_time":0.04219,"max_time":0.04219,"mean_time":0.04219,"rows":0},{"query":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","calls":1,"total_time":0.039139,"max_time":0.039139,"mean_time":0.039139,"rows":0},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.030663000000000003,"max_time":0.030663000000000003,"mean_time":0.030663000000000003,"rows":1},{"query":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","calls":1,"total_time":0.030482,"max_time":0.030482,"mean_time":0.030482,"rows":0},{"query":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","calls":1,"total_time":0.029856,"max_time":0.029856,"mean_time":0.029856,"rows":1},{"query":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","calls":1,"total_time":0.026567,"max_time":0.026567,"mean_time":0.026567,"rows":0},{"query":"SELECT pg_try_advisory_lock($1)","calls":1,"total_time":0.024337,"max_time":0.024337,"mean_time":0.024337,"rows":1},{"query":"set client_encoding to 'UTF8'","calls":1,"total_time":0.023793,"max_time":0.023793,"mean_time":0.023793,"rows":0},{"query":"set client_encoding to 'unicode'","calls":1,"total_time":0.017596,"max_time":0.017596,"mean_time":0.017596,"rows":0},{"query":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","calls":1,"total_time":0.015584,"max_time":0.015584,"mean_time":0.015584,"rows":0},{"query":"SELECT pg_advisory_unlock($1)","calls":1,"total_time":0.01339,"max_time":0.01339,"mean_time":0.01339,"rows":1},{"query":"SELECT current_database()","calls":1,"total_time":0.010137,"max_time":0.010137,"mean_time":0.010137,"rows":1},{"query":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","calls":1,"total_time":0.005982,"max_time":0.005982,"mean_time":0.005982,"rows":0},{"query":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:366:in `commit'*/","calls":1,"total_time":0.001946,"max_time":0.001946,"mean_time":0.001946,"rows":0},{"query":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers/v2.rb:46:in `create_table'*/","calls":1,"total_time":0.001388,"max_time":0.001388,"mean_time":0.001388,"rows":0}]} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateInefficientlyOrderedColumnsTable/migration.log b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateInefficientlyOrderedColumnsTable/migration.log new file mode 100644 index 00000000..8c5d911e --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateInefficientlyOrderedColumnsTable/migration.log @@ -0,0 +1,20 @@ +# Logfile created on 2022-11-30 15:11:18 +0000 by logger.rb/v1.4.2 +D, [2022-11-30T15:11:19.633557 #474] DEBUG -- :  (40.6ms) SELECT pg_try_advisory_lock(3005434223539248480) +D, [2022-11-30T15:11:19.634037 #474] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run' +D, [2022-11-30T15:11:19.715366 #474] DEBUG -- :  (80.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/ +D, [2022-11-30T15:11:19.715988 #474] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run' +I, [2022-11-30T15:11:19.724081 #474] INFO -- : Migrating to CreateInefficientlyOrderedColumnsTable (20221130142617) +D, [2022-11-30T15:11:19.767860 #474] DEBUG -- : TRANSACTION (40.3ms) BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers/v2.rb:46:in `create_table'*/ +D, [2022-11-30T15:11:19.768636 #474] DEBUG -- : ↳ lib/gitlab/database/migration_helpers/v2.rb:46:in `create_table' +D, [2022-11-30T15:11:19.815397 #474] DEBUG -- :  (46.1ms) CREATE TABLE "inefficiently_ordered_columns_tables" ("id" bigserial primary key, "text_attr" text, "boolean_attr" boolean, "smallint_attr" smallint, "integer_attr" integer, "point_attr" point, "circle_attr" circle, "line_attr" line) /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers/v2.rb:46:in `create_table'*/ +D, [2022-11-30T15:11:19.816003 #474] DEBUG -- : ↳ lib/gitlab/database/migration_helpers/v2.rb:46:in `create_table' +D, [2022-11-30T15:11:19.859494 #474] DEBUG -- : ActiveRecord::SchemaMigration Create (40.7ms) INSERT INTO "schema_migrations" ("version") VALUES ('20221130142617') RETURNING "version" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:333:in `block in transaction'*/ +D, [2022-11-30T15:11:19.860469 #474] DEBUG -- : ↳ lib/gitlab/database.rb:333:in `block in transaction' +D, [2022-11-30T15:11:19.902273 #474] DEBUG -- : TRANSACTION (40.8ms) COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:366:in `commit'*/ +D, [2022-11-30T15:11:19.902902 #474] DEBUG -- : ↳ lib/gitlab/database.rb:366:in `commit' +D, [2022-11-30T15:11:19.945481 #474] DEBUG -- : ActiveRecord::InternalMetadata Load (40.8ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/ +D, [2022-11-30T15:11:19.946144 #474] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run' +D, [2022-11-30T15:11:19.994294 #474] DEBUG -- :  (46.8ms) SELECT pg_advisory_unlock(3005434223539248480) +D, [2022-11-30T15:11:19.997474 #474] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run' +D, [2022-11-30T15:11:20.203798 #474] DEBUG -- :  (157.8ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-11-30T15:11:20.204275 #474] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateInefficientlyOrderedColumnsTable/query-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateInefficientlyOrderedColumnsTable/query-details.json new file mode 100644 index 00000000..1cf5fe2e --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateInefficientlyOrderedColumnsTable/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-11-30T15:11:18.890754+00:00","end_time":"2022-11-30T15:11:18.932432+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'schema_migrations' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-11-30T15:11:18.932841+00:00","end_time":"2022-11-30T15:11:18.973823+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'ar_internal_metadata' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-11-30T15:11:18.974166+00:00","end_time":"2022-11-30T15:11:19.014916+00:00","sql":"SELECT current_database()","binds":[]},{"start_time":"2022-11-30T15:11:19.261892+00:00","end_time":"2022-11-30T15:11:19.302571+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-11-30T15:11:19.303159+00:00","end_time":"2022-11-30T15:11:19.343895+00:00","sql":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-11-30T15:11:19.344488+00:00","end_time":"2022-11-30T15:11:19.385090+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-11-30T15:11:19.385733+00:00","end_time":"2022-11-30T15:11:19.426524+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-11-30T15:11:19.427106+00:00","end_time":"2022-11-30T15:11:19.467798+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-11-30T15:11:19.468552+00:00","end_time":"2022-11-30T15:11:19.510888+00:00","sql":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-11-30T15:11:19.511830+00:00","end_time":"2022-11-30T15:11:19.552465+00:00","sql":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-11-30T15:11:19.592901+00:00","end_time":"2022-11-30T15:11:19.634170+00:00","sql":"SELECT pg_try_advisory_lock(3005434223539248480)","binds":[]},{"start_time":"2022-11-30T15:11:19.635204+00:00","end_time":"2022-11-30T15:11:19.716138+00:00","sql":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-11-30T15:11:19.727430+00:00","end_time":"2022-11-30T15:11:19.769063+00:00","sql":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers/v2.rb:46:in `create_table'*/","binds":[]},{"start_time":"2022-11-30T15:11:19.769215+00:00","end_time":"2022-11-30T15:11:19.816590+00:00","sql":"CREATE TABLE \"inefficiently_ordered_columns_tables\" (\"id\" bigserial primary key, \"text_attr\" text, \"boolean_attr\" boolean, \"smallint_attr\" smallint, \"integer_attr\" integer, \"point_attr\" point, \"circle_attr\" circle, \"line_attr\" line) /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers/v2.rb:46:in `create_table'*/","binds":[]},{"start_time":"2022-11-30T15:11:19.818653+00:00","end_time":"2022-11-30T15:11:19.860638+00:00","sql":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ('20221130142617') RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:333:in `block in transaction'*/","binds":[]},{"start_time":"2022-11-30T15:11:19.861332+00:00","end_time":"2022-11-30T15:11:19.903079+00:00","sql":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:366:in `commit'*/","binds":[]},{"start_time":"2022-11-30T15:11:19.904600+00:00","end_time":"2022-11-30T15:11:19.946309+00:00","sql":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:131:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-11-30T15:11:19.947421+00:00","end_time":"2022-11-30T15:11:19.997674+00:00","sql":"SELECT pg_advisory_unlock(3005434223539248480)","binds":[]},{"start_time":"2022-11-30T15:11:20.045856+00:00","end_time":"2022-11-30T15:11:20.204418+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateInefficientlyOrderedColumnsTable/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateInefficientlyOrderedColumnsTable/transaction-duration.json new file mode 100644 index 00000000..90dd464e --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateInefficientlyOrderedColumnsTable/transaction-duration.json @@ -0,0 +1 @@ +[{"start_time":"2022-11-30T15:11:19.725429+00:00","end_time":"2022-11-30T15:11:19.903248+00:00","transaction_type":"real_transaction"}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateLongRunningSyncIndex/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateLongRunningSyncIndex/migration-stats.json new file mode 100644 index 00000000..a278016f --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateLongRunningSyncIndex/migration-stats.json @@ -0,0 +1,265 @@ +{ + "version": {"timestamp": 20221012000001 }, + "name": "CreateLongRunningSyncIndex", + "walltime": 5600.26328295469284, + "success": true, + "total_database_size_change": 32768, + "query_statistics": [ + { + "query": "CREATE INDEX CONCURRENTLY \"tmp_index_for_null_member_namespace_id\" ON \"members\" (\"member_namespace_id\") WHERE member_namespace_id IS NULL /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:167:in `block in add_concurrent_index'*/", + "calls": 1, + "total_time": 5377900.06386, + "max_time": 5377900.06386, + "mean_time": 5377900.06386, + "rows": 0 + }, + { + "query": "select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/", + "calls": 1, + "total_time": 180.96428, + "max_time": 180.96428, + "mean_time": 180.96428, + "rows": 1 + }, + { + "query": "SELECT distinct i.relname, d.indisunique, d.indkey, pg_get_indexdef(d.indexrelid), t.oid,\n pg_catalog.obj_description(i.oid, $1) AS comment\nFROM pg_class t\nINNER JOIN pg_index d ON t.oid = d.indrelid\nINNER JOIN pg_class i ON d.indexrelid = i.oid\nLEFT JOIN pg_namespace n ON n.oid = i.relnamespace\nWHERE i.relkind IN ($2, $3)\n AND d.indisprimary = $4\n AND t.relname = $5\n AND n.nspname = ANY (current_schemas($6))\nORDER BY i.relname", + "calls": 1, + "total_time": 85.186377, + "max_time": 85.186377, + "mean_time": 85.186377, + "rows": 15 + }, + { + "query": "SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/", + "calls": 1, + "total_time": 59.795096, + "max_time": 59.795096, + "mean_time": 59.795096, + "rows": 5391 + }, + { + "query": "SELECT \"postgres_async_indexes\".* FROM \"postgres_async_indexes\" WHERE \"postgres_async_indexes\".\"name\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/async_indexes/migration_helpers.rb:24:in `unprepare_async_index_by_name'*/", + "calls": 1, + "total_time": 16.03073, + "max_time": 16.03073, + "mean_time": 16.03073, + "rows": 0 + }, + { + "query": "SELECT a.attname, format_type(a.atttypid, a.atttypmod),\n pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,\n c.collname, col_description(a.attrelid, a.attnum) AS comment\n FROM pg_attribute a\n LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum\n LEFT JOIN pg_type t ON a.atttypid = t.oid\n LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation \u003c\u003e t.typcollation\n WHERE a.attrelid = $1::regclass\n AND a.attnum \u003e $2 AND NOT a.attisdropped\n ORDER BY a.attnum", + "calls": 1, + "total_time": 0.840814, + "max_time": 0.840814, + "mean_time": 0.840814, + "rows": 6 + }, + { + "query": "SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = $1\nAND a.attnum IN ($2)", + "calls": 10, + "total_time": 0.28581700000000004, + "max_time": 0.035806000000000004, + "mean_time": 0.028581699999999998, + "rows": 10 + }, + { + "query": "SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)", + "calls": 5, + "total_time": 0.183634, + "max_time": 0.041876, + "mean_time": 0.0367268, + "rows": 5 + }, + { + "query": "select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/", + "calls": 1, + "total_time": 0.152181, + "max_time": 0.152181, + "mean_time": 0.152181, + "rows": 1 + }, + { + "query": "SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = $1\nAND a.attnum IN ($2,$3)", + "calls": 4, + "total_time": 0.144064, + "max_time": 0.039062, + "mean_time": 0.036016, + "rows": 8 + }, + { + "query": "SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/", + "calls": 1, + "total_time": 0.084097, + "max_time": 0.084097, + "mean_time": 0.084097, + "rows": 10 + }, + { + "query": "SELECT current_database()", + "calls": 1, + "total_time": 0.067666, + "max_time": 0.067666, + "mean_time": 0.067666, + "rows": 1 + }, + { + "query": "INSERT INTO \"schema_migrations\" (\"version\") VALUES ($1) RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/", + "calls": 1, + "total_time": 0.052521, + "max_time": 0.052521, + "mean_time": 0.052521, + "rows": 1 + }, + { + "query": "SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/", + "calls": 1, + "total_time": 0.038282, + "max_time": 0.038282, + "mean_time": 0.038282, + "rows": 0 + }, + { + "query": "SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = $1\nAND a.attnum IN ($2,$3,$4)", + "calls": 1, + "total_time": 0.037499000000000005, + "max_time": 0.037499000000000005, + "mean_time": 0.037499000000000005, + "rows": 3 + }, + { + "query": "SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/", + "calls": 1, + "total_time": 0.034489, + "max_time": 0.034489, + "mean_time": 0.034489, + "rows": 0 + }, + { + "query": "SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/", + "calls": 1, + "total_time": 0.029674, + "max_time": 0.029674, + "mean_time": 0.029674, + "rows": 0 + }, + { + "query": "SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/", + "calls": 1, + "total_time": 0.027301, + "max_time": 0.027301, + "mean_time": 0.027301, + "rows": 1 + }, + { + "query": "SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/", + "calls": 1, + "total_time": 0.026636, + "max_time": 0.026636, + "mean_time": 0.026636, + "rows": 0 + }, + { + "query": "SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/", + "calls": 1, + "total_time": 0.023149000000000003, + "max_time": 0.023149000000000003, + "mean_time": 0.023149000000000003, + "rows": 1 + }, + { + "query": "set client_encoding to 'UTF8'", + "calls": 1, + "total_time": 0.022824, + "max_time": 0.022824, + "mean_time": 0.022824, + "rows": 0 + }, + { + "query": "set client_encoding to 'unicode'", + "calls": 1, + "total_time": 0.019712, + "max_time": 0.019712, + "mean_time": 0.019712, + "rows": 0 + }, + { + "query": "RESET statement_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:390:in `disable_statement_timeout'*/", + "calls": 1, + "total_time": 0.016431, + "max_time": 0.016431, + "mean_time": 0.016431, + "rows": 0 + }, + { + "query": "SET statement_timeout TO 0 /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:386:in `disable_statement_timeout'*/", + "calls": 1, + "total_time": 0.015589, + "max_time": 0.015589, + "mean_time": 0.015589, + "rows": 0 + }, + { + "query": "SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/", + "calls": 1, + "total_time": 0.014418, + "max_time": 0.014418, + "mean_time": 0.014418, + "rows": 0 + }, + { + "query": "SELECT pg_try_advisory_lock($1)", + "calls": 1, + "total_time": 0.013251, + "max_time": 0.013251, + "mean_time": 0.013251, + "rows": 1 + }, + { + "query": "SELECT pg_advisory_unlock($1)", + "calls": 1, + "total_time": 0.011916000000000001, + "max_time": 0.011916000000000001, + "mean_time": 0.011916000000000001, + "rows": 1 + }, + { + "query": "SHOW max_identifier_length", + "calls": 1, + "total_time": 0.008305, + "max_time": 0.008305, + "mean_time": 0.008305, + "rows": 0 + }, + { + "query": "SHOW statement_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:1624:in `statement_timeout_disabled?'*/", + "calls": 1, + "total_time": 0.00769, + "max_time": 0.00769, + "mean_time": 0.00769, + "rows": 0 + }, + { + "query": "SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/", + "calls": 1, + "total_time": 0.006644, + "max_time": 0.006644, + "mean_time": 0.006644, + "rows": 0 + }, + { + "query": "BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/", + "calls": 1, + "total_time": 0.00223, + "max_time": 0.00223, + "mean_time": 0.00223, + "rows": 0 + }, + { + "query": "COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/", + "calls": 1, + "total_time": 0.002089, + "max_time": 0.002089, + "mean_time": 0.002089, + "rows": 0 + } + ] +} \ No newline at end of file diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateLongRunningSyncIndex/migration.log b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateLongRunningSyncIndex/migration.log new file mode 100644 index 00000000..b8f4c9bd --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateLongRunningSyncIndex/migration.log @@ -0,0 +1,28 @@ +# Logfile created on 2022-09-30 21:33:44 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:33:45.135577 #388] DEBUG -- :  (45.4ms) SELECT pg_try_advisory_lock(3005434223539248480) +D, [2022-09-30T21:33:45.136099 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:45.279908 #388] DEBUG -- :  (142.5ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:45.280609 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +I, [2022-09-30T21:33:45.291603 #388] INFO -- : Migrating to TmpIdxNullMemberNamespaceId (20220929081645) +D, [2022-09-30T21:33:46.129712 #388] DEBUG -- :  (40.8ms) SHOW statement_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:1624:in `statement_timeout_disabled?'*/ +D, [2022-09-30T21:33:46.130331 #388] DEBUG -- : ↳ lib/gitlab/database/migration_helpers.rb:1624:in `statement_timeout_disabled?' +D, [2022-09-30T21:33:46.172802 #388] DEBUG -- :  (41.2ms) SET statement_timeout TO 0 /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:386:in `disable_statement_timeout'*/ +D, [2022-09-30T21:33:46.173575 #388] DEBUG -- : ↳ lib/gitlab/database/migration_helpers.rb:386:in `disable_statement_timeout' +D, [2022-09-30T21:34:40.038279 #388] DEBUG -- :  (53820.8ms) CREATE INDEX CONCURRENTLY "tmp_index_for_null_member_namespace_id" ON "members" ("member_namespace_id") WHERE member_namespace_id IS NULL /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:167:in `block in add_concurrent_index'*/ +D, [2022-09-30T21:34:40.039074 #388] DEBUG -- : ↳ lib/gitlab/database/migration_helpers.rb:167:in `block in add_concurrent_index' +D, [2022-09-30T21:34:40.081906 #388] DEBUG -- :  (41.3ms) RESET statement_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:390:in `disable_statement_timeout'*/ +D, [2022-09-30T21:34:40.082607 #388] DEBUG -- : ↳ lib/gitlab/database/migration_helpers.rb:390:in `disable_statement_timeout' +D, [2022-09-30T21:34:40.310615 #388] DEBUG -- : Gitlab::Database::AsyncIndexes::PostgresAsyncIndex Load (80.4ms) SELECT "postgres_async_indexes".* FROM "postgres_async_indexes" WHERE "postgres_async_indexes"."name" = 'tmp_index_for_null_member_namespace_id' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/async_indexes/migration_helpers.rb:24:in `unprepare_async_index_by_name'*/ +D, [2022-09-30T21:34:40.311324 #388] DEBUG -- : ↳ lib/gitlab/database/async_indexes/migration_helpers.rb:24:in `unprepare_async_index_by_name' +D, [2022-09-30T21:34:40.357701 #388] DEBUG -- : TRANSACTION (43.2ms) BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/ +D, [2022-09-30T21:34:40.358873 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction' +D, [2022-09-30T21:34:40.400061 #388] DEBUG -- : ActiveRecord::SchemaMigration Create (40.7ms) INSERT INTO "schema_migrations" ("version") VALUES ('20220929081645') RETURNING "version" /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/ +D, [2022-09-30T21:34:40.401029 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction' +D, [2022-09-30T21:34:40.442937 #388] DEBUG -- : TRANSACTION (41.0ms) COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/ +D, [2022-09-30T21:34:40.443461 #388] DEBUG -- : ↳ lib/gitlab/database.rb:365:in `commit' +D, [2022-09-30T21:34:40.486712 #388] DEBUG -- : ActiveRecord::InternalMetadata Load (41.6ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:34:40.487430 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:34:40.530962 #388] DEBUG -- :  (42.2ms) SELECT pg_advisory_unlock(3005434223539248480) +D, [2022-09-30T21:34:40.531455 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:34:40.795653 #388] DEBUG -- :  (221.5ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:34:40.796139 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateLongRunningSyncIndex/query-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateLongRunningSyncIndex/query-details.json new file mode 100644 index 00000000..e87daa91 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateLongRunningSyncIndex/query-details.json @@ -0,0 +1,260 @@ +[ + { + "start_time": "2022-09-30T21:33:44.387478+00:00", + "end_time": "2022-09-30T21:33:44.429448+00:00", + "sql": "SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'schema_migrations' AND c.relkind IN ('r','p')", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:44.429864+00:00", + "end_time": "2022-09-30T21:33:44.471054+00:00", + "sql": "SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'ar_internal_metadata' AND c.relkind IN ('r','p')", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:44.471356+00:00", + "end_time": "2022-09-30T21:33:44.512478+00:00", + "sql": "SELECT current_database()", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:44.759399+00:00", + "end_time": "2022-09-30T21:33:44.800004+00:00", + "sql": "SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:44.800598+00:00", + "end_time": "2022-09-30T21:33:44.841204+00:00", + "sql": "SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:44.841770+00:00", + "end_time": "2022-09-30T21:33:44.882230+00:00", + "sql": "SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:44.882826+00:00", + "end_time": "2022-09-30T21:33:44.923504+00:00", + "sql": "SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:44.924159+00:00", + "end_time": "2022-09-30T21:33:44.964798+00:00", + "sql": "SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:44.965556+00:00", + "end_time": "2022-09-30T21:33:45.008050+00:00", + "sql": "SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:45.008859+00:00", + "end_time": "2022-09-30T21:33:45.049532+00:00", + "sql": "SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:45.090111+00:00", + "end_time": "2022-09-30T21:33:45.136276+00:00", + "sql": "SELECT pg_try_advisory_lock(3005434223539248480)", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:45.137264+00:00", + "end_time": "2022-09-30T21:33:45.280768+00:00", + "sql": "SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:45.295588+00:00", + "end_time": "2022-09-30T21:33:45.444030+00:00", + "sql": "SELECT distinct i.relname, d.indisunique, d.indkey, pg_get_indexdef(d.indexrelid), t.oid,\n pg_catalog.obj_description(i.oid, 'pg_class') AS comment\nFROM pg_class t\nINNER JOIN pg_index d ON t.oid = d.indrelid\nINNER JOIN pg_class i ON d.indexrelid = i.oid\nLEFT JOIN pg_namespace n ON n.oid = i.relnamespace\nWHERE i.relkind IN ('i', 'I')\n AND d.indisprimary = 'f'\n AND t.relname = 'members'\n AND n.nspname = ANY (current_schemas(false))\nORDER BY i.relname\n", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:45.444233+00:00", + "end_time": "2022-09-30T21:33:45.488460+00:00", + "sql": "SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (8)\n", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:45.488715+00:00", + "end_time": "2022-09-30T21:33:45.532658+00:00", + "sql": "SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (2)\n", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:45.532882+00:00", + "end_time": "2022-09-30T21:33:45.575201+00:00", + "sql": "SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (15)\n", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:45.575444+00:00", + "end_time": "2022-09-30T21:33:45.619155+00:00", + "sql": "SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (11)\n", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:45.619375+00:00", + "end_time": "2022-09-30T21:33:45.663044+00:00", + "sql": "SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (12)\n", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:45.663264+00:00", + "end_time": "2022-09-30T21:33:45.706515+00:00", + "sql": "SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (20)\n", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:45.706769+00:00", + "end_time": "2022-09-30T21:33:45.748906+00:00", + "sql": "SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (21)\n", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:45.749149+00:00", + "end_time": "2022-09-30T21:33:45.791248+00:00", + "sql": "SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (14)\n", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:45.791522+00:00", + "end_time": "2022-09-30T21:33:45.834678+00:00", + "sql": "SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (3,4)\n", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:45.834921+00:00", + "end_time": "2022-09-30T21:33:45.876948+00:00", + "sql": "SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (5,2)\n", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:45.877178+00:00", + "end_time": "2022-09-30T21:33:45.919370+00:00", + "sql": "SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (5,8)\n", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:45.919619+00:00", + "end_time": "2022-09-30T21:33:45.961725+00:00", + "sql": "SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (5,3,4)\n", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:45.961976+00:00", + "end_time": "2022-09-30T21:33:46.003704+00:00", + "sql": "SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (3,4)\n", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:46.003944+00:00", + "end_time": "2022-09-30T21:33:46.045665+00:00", + "sql": "SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (1)\n", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:46.045893+00:00", + "end_time": "2022-09-30T21:33:46.087837+00:00", + "sql": "SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (19)\n", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:46.088830+00:00", + "end_time": "2022-09-30T21:33:46.130758+00:00", + "sql": "SHOW statement_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:1624:in `statement_timeout_disabled?'*/", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:46.131525+00:00", + "end_time": "2022-09-30T21:33:46.174194+00:00", + "sql": "SET statement_timeout TO 0 /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:386:in `disable_statement_timeout'*/", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:46.174801+00:00", + "end_time": "2022-09-30T21:33:46.216560+00:00", + "sql": "SHOW max_identifier_length", + "binds": [] + }, + { + "start_time": "2022-09-30T21:33:46.217339+00:00", + "end_time": "2022-09-30T22:34:40.039780+00:00", + "sql": "CREATE INDEX CONCURRENTLY \"tmp_index_for_null_member_namespace_id\" ON \"members\" (\"member_namespace_id\") WHERE member_namespace_id IS NULL /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:167:in `block in add_concurrent_index'*/", + "binds": [] + }, + { + "start_time": "2022-09-30T21:34:40.040531+00:00", + "end_time": "2022-09-30T21:34:40.083019+00:00", + "sql": "RESET statement_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:390:in `disable_statement_timeout'*/", + "binds": [] + }, + { + "start_time": "2022-09-30T21:34:40.083549+00:00", + "end_time": "2022-09-30T21:34:40.125369+00:00", + "sql": "SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'postgres_async_indexes' AND c.relkind IN ('r','p')", + "binds": [] + }, + { + "start_time": "2022-09-30T21:34:40.125647+00:00", + "end_time": "2022-09-30T21:34:40.180209+00:00", + "sql": "SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'postgres_async_indexes' AND c.relkind IN ('r','p')", + "binds": [] + }, + { + "start_time": "2022-09-30T21:34:40.183071+00:00", + "end_time": "2022-09-30T21:34:40.227507+00:00", + "sql": "SELECT a.attname, format_type(a.atttypid, a.atttypmod),\n pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,\n c.collname, col_description(a.attrelid, a.attnum) AS comment\n FROM pg_attribute a\n LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum\n LEFT JOIN pg_type t ON a.atttypid = t.oid\n LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation \u003c\u003e t.typcollation\n WHERE a.attrelid = '\"postgres_async_indexes\"'::regclass\n AND a.attnum \u003e 0 AND NOT a.attisdropped\n ORDER BY a.attnum\n", + "binds": [] + }, + { + "start_time": "2022-09-30T21:34:40.230038+00:00", + "end_time": "2022-09-30T21:34:40.312064+00:00", + "sql": "SELECT \"postgres_async_indexes\".* FROM \"postgres_async_indexes\" WHERE \"postgres_async_indexes\".\"name\" = 'tmp_index_for_null_member_namespace_id' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/async_indexes/migration_helpers.rb:24:in `unprepare_async_index_by_name'*/", + "binds": [] + }, + { + "start_time": "2022-09-30T21:34:40.314347+00:00", + "end_time": "2022-09-30T21:34:40.359090+00:00", + "sql": "BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/", + "binds": [] + }, + { + "start_time": "2022-09-30T21:34:40.359232+00:00", + "end_time": "2022-09-30T21:34:40.401174+00:00", + "sql": "INSERT INTO \"schema_migrations\" (\"version\") VALUES ('20220929081645') RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/", + "binds": [] + }, + { + "start_time": "2022-09-30T21:34:40.401836+00:00", + "end_time": "2022-09-30T21:34:40.443611+00:00", + "sql": "COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/", + "binds": [] + }, + { + "start_time": "2022-09-30T21:34:40.444961+00:00", + "end_time": "2022-09-30T21:34:40.487570+00:00", + "sql": "SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/", + "binds": [] + }, + { + "start_time": "2022-09-30T21:34:40.488699+00:00", + "end_time": "2022-09-30T21:34:40.531590+00:00", + "sql": "SELECT pg_advisory_unlock(3005434223539248480)", + "binds": [] + }, + { + "start_time": "2022-09-30T21:34:40.573992+00:00", + "end_time": "2022-09-30T21:34:40.796271+00:00", + "sql": "select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/", + "binds": [] + } +] \ No newline at end of file diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateLongRunningSyncIndex/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateLongRunningSyncIndex/transaction-duration.json new file mode 100644 index 00000000..fe51488c --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateLongRunningSyncIndex/transaction-duration.json @@ -0,0 +1 @@ +[] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateTestTable/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateTestTable/migration-stats.json new file mode 100644 index 00000000..20969c14 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateTestTable/migration-stats.json @@ -0,0 +1 @@ +{"version": {"timestamp": 20210602144718 },"name":"CreateTestTable","walltime":2.1985140219330788,"success":true,"total_database_size_change":24576,"query_statistics":[{"query":"CREATE TABLE \"test_tables\" (\"id\" bigserial primary key, \"stars\" bigint DEFAULT 0 NOT NULL, \"created_at\" timestamp(6) NOT NULL, \"updated_at\" timestamp(6) NOT NULL, \"title\" text, \"notes\" text) /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:100:in `block in create_table_with_constraints'*/","calls":1,"total_time":192.802332,"max_time":192.802332,"mean_time":192.802332,"rows":0},{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":144.38915,"max_time":144.38915,"mean_time":144.38915,"rows":1},{"query":"ALTER TABLE \"test_tables\"\nADD CONSTRAINT \"check_0770ba173a\" CHECK (char_length(\"title\") \u003c= 128),\nADD CONSTRAINT \"check_9cfc473dbc\" CHECK (char_length(\"notes\") \u003c= 1024)\n /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:128:in `block in create_table_with_constraints'*/","calls":1,"total_time":6.602411,"max_time":6.602411,"mean_time":6.602411,"rows":0},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relkind IN ($2,$3,$4,$5,$6)","calls":1,"total_time":4.722614,"max_time":4.722614,"mean_time":4.722614,"rows":603},{"query":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ($1) RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","calls":1,"total_time":3.102035,"max_time":3.102035,"mean_time":3.102035,"rows":1},{"query":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":2.6275999999999997,"max_time":2.6275999999999997,"mean_time":2.6275999999999997,"rows":5385},{"query":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":1.560201,"max_time":1.560201,"mean_time":1.560201,"rows":1},{"query":"SELECT a.attname, format_type(a.atttypid, a.atttypmod),\n pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,\n c.collname, col_description(a.attrelid, a.attnum) AS comment\n FROM pg_attribute a\n LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum\n LEFT JOIN pg_type t ON a.atttypid = t.oid\n LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation \u003c\u003e t.typcollation\n WHERE a.attrelid = $1::regclass\n AND a.attnum \u003e $2 AND NOT a.attisdropped\n ORDER BY a.attnum","calls":1,"total_time":0.623014,"max_time":0.623014,"mean_time":0.623014,"rows":4},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.217699,"max_time":0.217699,"mean_time":0.217699,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":3,"total_time":0.182048,"max_time":0.06928899999999999,"mean_time":0.06068266666666666,"rows":3},{"query":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.10199000000000001,"max_time":0.10199000000000001,"mean_time":0.10199000000000001,"rows":10},{"query":"SET LOCAL lock_timeout TO '100ms' /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/","calls":1,"total_time":0.041161,"max_time":0.041161,"mean_time":0.041161,"rows":0},{"query":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.04011,"max_time":0.04011,"mean_time":0.04011,"rows":0},{"query":"UPDATE \"ar_internal_metadata\" SET \"value\" = $1, \"updated_at\" = $2 WHERE \"ar_internal_metadata\".\"key\" = $3 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.039198,"max_time":0.039198,"mean_time":0.039198,"rows":1},{"query":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.029721,"max_time":0.029721,"mean_time":0.029721,"rows":0},{"query":"set client_encoding to 'unicode'","calls":1,"total_time":0.028651,"max_time":0.028651,"mean_time":0.028651,"rows":0},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.027299999999999998,"max_time":0.027299999999999998,"mean_time":0.027299999999999998,"rows":1},{"query":"set client_encoding to 'unicode'","calls":1,"total_time":0.028651,"max_time":0.028651,"mean_time":0.028651,"rows":0},{"query":"SELECT \"feature_gates\".* FROM \"feature_gates\" WHERE \"feature_gates\".\"feature_key\" = $1 /*application:test,db_config_name:main,line:/lib/feature.rb:249:in `block in current_feature_value'*/","calls":1,"total_time":0.018507,"max_time":0.018507,"mean_time":0.018507,"rows":0},{"query":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.027209,"max_time":0.027209,"mean_time":0.027209,"rows":0},{"query":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.025874,"max_time":0.025874,"mean_time":0.025874,"rows":0},{"query":"set client_encoding to 'UTF8'","calls":1,"total_time":0.022612,"max_time":0.022612,"mean_time":0.022612,"rows":0},{"query":"SELECT pg_try_advisory_lock($1)","calls":1,"total_time":0.013618,"max_time":0.013618,"mean_time":0.013618,"rows":1},{"query":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.011879,"max_time":0.011879,"mean_time":0.011879,"rows":0},{"query":"SELECT pg_advisory_unlock($1)","calls":1,"total_time":0.010336999999999999,"max_time":0.010336999999999999,"mean_time":0.010336999999999999,"rows":1},{"query":"RESET idle_in_transaction_session_timeout","calls":1,"total_time":0.008307,"max_time":0.008307,"mean_time":0.008307,"rows":0},{"query":"SELECT current_database()","calls":1,"total_time":0.007934,"max_time":0.007934,"mean_time":0.007934,"rows":1},{"query":"SELECT $1::regtype::oid","calls":1,"total_time":0.006556,"max_time":0.006556,"mean_time":0.006556,"rows":1},{"query":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.0064,"max_time":0.0064,"mean_time":0.0064,"rows":0},{"query":"SAVEPOINT active_record_1 /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/","calls":1,"total_time":0.003657,"max_time":0.003657,"mean_time":0.003657,"rows":0},{"query":"RESET lock_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/","calls":1,"total_time":0.003546,"max_time":0.003546,"mean_time":0.003546,"rows":0},{"query":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","calls":2,"total_time":0.003086,"max_time":0.001613,"mean_time":0.001543,"rows":0},{"query":"RELEASE SAVEPOINT active_record_1 /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:129:in `run_block_with_lock_timeout'*/","calls":1,"total_time":0.002484,"max_time":0.002484,"mean_time":0.002484,"rows":0},{"query":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/","calls":1,"total_time":0.001829,"max_time":0.001829,"mean_time":0.001829,"rows":0},{"query":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.00138,"max_time":0.00138,"mean_time":0.00138,"rows":0}]} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateTestTable/migration.log b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateTestTable/migration.log new file mode 100644 index 00000000..8fd7bc7a --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateTestTable/migration.log @@ -0,0 +1,39 @@ +# Logfile created on 2022-09-30 21:33:26 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:33:27.313181 #388] DEBUG -- :  (41.5ms) SELECT pg_try_advisory_lock(3005434223539248480) +D, [2022-09-30T21:33:27.314881 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:27.396972 #388] DEBUG -- :  (80.7ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:27.398750 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +I, [2022-09-30T21:33:27.440142 #388] INFO -- : Migrating to CreateTestTable (20210602144718) +D, [2022-09-30T21:33:27.543296 #388] DEBUG -- : TRANSACTION (40.9ms) BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/ +D, [2022-09-30T21:33:27.544062 #388] DEBUG -- : ↳ lib/gitlab/database/with_lock_retries.rb:172:in `execute' +D, [2022-09-30T21:33:27.585394 #388] DEBUG -- : TRANSACTION (40.4ms) SAVEPOINT active_record_1 /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/ +D, [2022-09-30T21:33:27.587203 #388] DEBUG -- : ↳ lib/gitlab/database/with_lock_retries.rb:172:in `execute' +D, [2022-09-30T21:33:27.630673 #388] DEBUG -- :  (40.9ms) SET LOCAL lock_timeout TO '100ms' /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/ +D, [2022-09-30T21:33:27.632070 #388] DEBUG -- : ↳ lib/gitlab/database/with_lock_retries.rb:172:in `execute' +D, [2022-09-30T21:33:27.912726 #388] DEBUG -- :  (233.3ms) CREATE TABLE "test_tables" ("id" bigserial primary key, "stars" bigint DEFAULT 0 NOT NULL, "created_at" timestamp(6) NOT NULL, "updated_at" timestamp(6) NOT NULL, "title" text, "notes" text) /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:100:in `block in create_table_with_constraints'*/ +D, [2022-09-30T21:33:27.913438 #388] DEBUG -- : ↳ lib/gitlab/database/migration_helpers.rb:100:in `block in create_table_with_constraints' +D, [2022-09-30T21:33:27.962820 #388] DEBUG -- :  (47.1ms) ALTER TABLE "test_tables" +ADD CONSTRAINT "check_0770ba173a" CHECK (char_length("title") <= 128), +ADD CONSTRAINT "check_9cfc473dbc" CHECK (char_length("notes") <= 1024) + /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:128:in `block in create_table_with_constraints'*/ +D, [2022-09-30T21:33:27.963466 #388] DEBUG -- : ↳ lib/gitlab/database/migration_helpers.rb:128:in `block in create_table_with_constraints' +D, [2022-09-30T21:33:28.006343 #388] DEBUG -- : TRANSACTION (40.5ms) RELEASE SAVEPOINT active_record_1 /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:129:in `run_block_with_lock_timeout'*/ +D, [2022-09-30T21:33:28.008327 #388] DEBUG -- : ↳ lib/gitlab/database/with_lock_retries.rb:129:in `run_block_with_lock_timeout' +D, [2022-09-30T21:33:28.049723 #388] DEBUG -- :  (40.4ms) RESET idle_in_transaction_session_timeout; RESET lock_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/ +D, [2022-09-30T21:33:28.051243 #388] DEBUG -- : ↳ lib/gitlab/database/with_lock_retries.rb:172:in `execute' +D, [2022-09-30T21:33:28.187460 #388] DEBUG -- : ActiveRecord::SchemaMigration Create (43.9ms) INSERT INTO "schema_migrations" ("version") VALUES ('20210602144718') RETURNING "version" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/ +D, [2022-09-30T21:33:28.189180 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:28.231981 #388] DEBUG -- : TRANSACTION (40.6ms) COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/ +D, [2022-09-30T21:33:28.232535 #388] DEBUG -- : ↳ lib/gitlab/database.rb:365:in `commit' +D, [2022-09-30T21:33:28.339397 #388] DEBUG -- : ActiveRecord::InternalMetadata Load (58.7ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:28.341099 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:28.391020 #388] DEBUG -- : TRANSACTION (40.3ms) BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:28.394382 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:28.435568 #388] DEBUG -- : ActiveRecord::InternalMetadata Update (40.6ms) UPDATE "ar_internal_metadata" SET "value" = 'test', "updated_at" = '2022-09-30 21:33:28.347998' WHERE "ar_internal_metadata"."key" = 'environment' /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:28.437731 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:28.479154 #388] DEBUG -- : TRANSACTION (40.2ms) COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/ +D, [2022-09-30T21:33:28.480508 #388] DEBUG -- : ↳ lib/gitlab/database.rb:365:in `commit' +D, [2022-09-30T21:33:28.521763 #388] DEBUG -- :  (40.6ms) SELECT pg_advisory_unlock(3005434223539248480) +D, [2022-09-30T21:33:28.522288 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:28.749267 #388] DEBUG -- :  (184.8ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:33:28.749832 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateTestTable/query-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateTestTable/query-details.json new file mode 100644 index 00000000..fd1190b8 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateTestTable/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:26.569798+00:00","end_time":"2022-09-30T21:33:26.611015+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'schema_migrations' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:26.614202+00:00","end_time":"2022-09-30T21:33:26.655326+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'ar_internal_metadata' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:26.655671+00:00","end_time":"2022-09-30T21:33:26.696212+00:00","sql":"SELECT current_database()","binds":[]},{"start_time":"2022-09-30T21:33:26.940851+00:00","end_time":"2022-09-30T21:33:26.981337+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:26.981925+00:00","end_time":"2022-09-30T21:33:27.022367+00:00","sql":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.023505+00:00","end_time":"2022-09-30T21:33:27.064007+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.064600+00:00","end_time":"2022-09-30T21:33:27.105137+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.105712+00:00","end_time":"2022-09-30T21:33:27.146251+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.147048+00:00","end_time":"2022-09-30T21:33:27.189245+00:00","sql":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.190643+00:00","end_time":"2022-09-30T21:33:27.231095+00:00","sql":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.271501+00:00","end_time":"2022-09-30T21:33:27.315087+00:00","sql":"SELECT pg_try_advisory_lock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:27.316125+00:00","end_time":"2022-09-30T21:33:27.398958+00:00","sql":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.501188+00:00","end_time":"2022-09-30T21:33:27.544335+00:00","sql":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.544872+00:00","end_time":"2022-09-30T21:33:27.589412+00:00","sql":"SAVEPOINT active_record_1 /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.589618+00:00","end_time":"2022-09-30T21:33:27.632266+00:00","sql":"SET LOCAL lock_timeout TO '100ms' /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.635269+00:00","end_time":"2022-09-30T21:33:27.677390+00:00","sql":"SELECT 'bigint'::regtype::oid","binds":[]},{"start_time":"2022-09-30T21:33:27.679313+00:00","end_time":"2022-09-30T21:33:27.913601+00:00","sql":"CREATE TABLE \"test_tables\" (\"id\" bigserial primary key, \"stars\" bigint DEFAULT 0 NOT NULL, \"created_at\" timestamp(6) NOT NULL, \"updated_at\" timestamp(6) NOT NULL, \"title\" text, \"notes\" text) /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:100:in `block in create_table_with_constraints'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.915616+00:00","end_time":"2022-09-30T21:33:27.963618+00:00","sql":"ALTER TABLE \"test_tables\"\nADD CONSTRAINT \"check_0770ba173a\" CHECK (char_length(\"title\") \u003c= 128),\nADD CONSTRAINT \"check_9cfc473dbc\" CHECK (char_length(\"notes\") \u003c= 1024)\n /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:128:in `block in create_table_with_constraints'*/","binds":[]},{"start_time":"2022-09-30T21:33:27.965730+00:00","end_time":"2022-09-30T21:33:28.008592+00:00","sql":"RELEASE SAVEPOINT active_record_1 /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:129:in `run_block_with_lock_timeout'*/","binds":[]},{"start_time":"2022-09-30T21:33:28.009198+00:00","end_time":"2022-09-30T21:33:28.051454+00:00","sql":"RESET idle_in_transaction_session_timeout; RESET lock_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/with_lock_retries.rb:172:in `execute'*/","binds":[]},{"start_time":"2022-09-30T21:33:28.052111+00:00","end_time":"2022-09-30T21:33:28.136100+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relkind IN ('r','v','m','p','f')","binds":[]},{"start_time":"2022-09-30T21:33:28.143505+00:00","end_time":"2022-09-30T21:33:28.189449+00:00","sql":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ('20210602144718') RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","binds":[]},{"start_time":"2022-09-30T21:33:28.191270+00:00","end_time":"2022-09-30T21:33:28.232681+00:00","sql":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","binds":[]},{"start_time":"2022-09-30T21:33:28.234329+00:00","end_time":"2022-09-30T21:33:28.277800+00:00","sql":"SELECT a.attname, format_type(a.atttypid, a.atttypmod),\n pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,\n c.collname, col_description(a.attrelid, a.attnum) AS comment\n FROM pg_attribute a\n LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum\n LEFT JOIN pg_type t ON a.atttypid = t.oid\n LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation \u003c\u003e t.typcollation\n WHERE a.attrelid = '\"ar_internal_metadata\"'::regclass\n AND a.attnum \u003e 0 AND NOT a.attisdropped\n ORDER BY a.attnum\n","binds":[]},{"start_time":"2022-09-30T21:33:28.280603+00:00","end_time":"2022-09-30T21:33:28.341310+00:00","sql":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:28.350649+00:00","end_time":"2022-09-30T21:33:28.394709+00:00","sql":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:28.394863+00:00","end_time":"2022-09-30T21:33:28.437933+00:00","sql":"UPDATE \"ar_internal_metadata\" SET \"value\" = 'test', \"updated_at\" = '2022-09-30 21:33:28.347998' WHERE \"ar_internal_metadata\".\"key\" = 'environment' /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:28.438804+00:00","end_time":"2022-09-30T21:33:28.480709+00:00","sql":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","binds":[]},{"start_time":"2022-09-30T21:33:28.481004+00:00","end_time":"2022-09-30T21:33:28.522503+00:00","sql":"SELECT pg_advisory_unlock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:28.564323+00:00","end_time":"2022-09-30T21:33:28.749991+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateTestTable/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateTestTable/transaction-duration.json new file mode 100644 index 00000000..5f696328 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/CreateTestTable/transaction-duration.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:27.480981+00:00","end_time":"2022-09-30T21:33:28.232892+00:00","transaction_type":"real_transaction"}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/DropTestTable/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/DropTestTable/migration-stats.json new file mode 100644 index 00000000..98b3060b --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/DropTestTable/migration-stats.json @@ -0,0 +1 @@ +{"version": {"timestamp": 20210604232017},"name":"DropTestTable","walltime":1.2941431254148483,"success":true,"total_database_size_change":-24576,"query_statistics":[{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":135.13333799999998,"max_time":135.13333799999998,"mean_time":135.13333799999998,"rows":1},{"query":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":2.655891,"max_time":2.655891,"mean_time":2.655891,"rows":5387},{"query":"DROP TABLE \"test_tables\" /*application:test,db_config_name:main,line:/db/post_migrate/20210604232017_drop_test_table.rb:5:in `change'*/","calls":1,"total_time":2.609645,"max_time":2.609645,"mean_time":2.609645,"rows":0},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.156087,"max_time":0.156087,"mean_time":0.156087,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":3,"total_time":0.10787,"max_time":0.048748999999999994,"mean_time":0.035956666666666665,"rows":3},{"query":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.08729300000000001,"max_time":0.08729300000000001,"mean_time":0.08729300000000001,"rows":10},{"query":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.044639,"max_time":0.044639,"mean_time":0.044639,"rows":0},{"query":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ($1) RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","calls":1,"total_time":0.038481,"max_time":0.038481,"mean_time":0.038481,"rows":1},{"query":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.037511,"max_time":0.037511,"mean_time":0.037511,"rows":0},{"query":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.030513,"max_time":0.030513,"mean_time":0.030513,"rows":0},{"query":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.029864,"max_time":0.029864,"mean_time":0.029864,"rows":0},{"query":"set client_encoding to 'UTF8'","calls":1,"total_time":0.02569,"max_time":0.02569,"mean_time":0.02569,"rows":0},{"query":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.023552,"max_time":0.023552,"mean_time":0.023552,"rows":1},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.022626999999999998,"max_time":0.022626999999999998,"mean_time":0.022626999999999998,"rows":1},{"query":"set client_encoding to 'unicode'","calls":1,"total_time":0.017816,"max_time":0.017816,"mean_time":0.017816,"rows":0},{"query":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.01414,"max_time":0.01414,"mean_time":0.01414,"rows":0},{"query":"SELECT pg_try_advisory_lock($1)","calls":1,"total_time":0.010635,"max_time":0.010635,"mean_time":0.010635,"rows":1},{"query":"SELECT pg_advisory_unlock($1)","calls":1,"total_time":0.010166000000000001,"max_time":0.010166000000000001,"mean_time":0.010166000000000001,"rows":1},{"query":"SELECT current_database()","calls":1,"total_time":0.0070149999999999995,"max_time":0.0070149999999999995,"mean_time":0.0070149999999999995,"rows":1},{"query":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.005459,"max_time":0.005459,"mean_time":0.005459,"rows":0},{"query":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","calls":1,"total_time":0.001526,"max_time":0.001526,"mean_time":0.001526,"rows":0},{"query":"BEGIN /*application:test,db_config_name:main,line:/db/post_migrate/20210604232017_drop_test_table.rb:5:in `change'*/","calls":1,"total_time":0.001408,"max_time":0.001408,"mean_time":0.001408,"rows":0}]} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/DropTestTable/migration.log b/notifier/spec/fixtures/migration-testing/v4/sec/up/DropTestTable/migration.log new file mode 100644 index 00000000..1818ce7a --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/DropTestTable/migration.log @@ -0,0 +1,20 @@ +# Logfile created on 2022-09-30 21:33:36 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:33:37.133642 #388] DEBUG -- :  (40.5ms) SELECT pg_try_advisory_lock(3005434223539248480) +D, [2022-09-30T21:33:37.134169 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:37.297491 #388] DEBUG -- :  (162.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:37.298162 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +I, [2022-09-30T21:33:37.307739 #388] INFO -- : Migrating to DropTestTable (20210604232017) +D, [2022-09-30T21:33:37.350562 #388] DEBUG -- : TRANSACTION (40.3ms) BEGIN /*application:test,db_config_name:main,line:/db/post_migrate/20210604232017_drop_test_table.rb:5:in `change'*/ +D, [2022-09-30T21:33:37.351529 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:37.395072 #388] DEBUG -- :  (43.0ms) DROP TABLE "test_tables" /*application:test,db_config_name:main,line:/db/post_migrate/20210604232017_drop_test_table.rb:5:in `change'*/ +D, [2022-09-30T21:33:37.395895 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:37.438662 #388] DEBUG -- : ActiveRecord::SchemaMigration Create (40.6ms) INSERT INTO "schema_migrations" ("version") VALUES ('20210604232017') RETURNING "version" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/ +D, [2022-09-30T21:33:37.439755 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:37.486375 #388] DEBUG -- : TRANSACTION (45.5ms) COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/ +D, [2022-09-30T21:33:37.487004 #388] DEBUG -- : ↳ lib/gitlab/database.rb:365:in `commit' +D, [2022-09-30T21:33:37.529503 #388] DEBUG -- : ActiveRecord::InternalMetadata Load (40.7ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:37.530287 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:37.572301 #388] DEBUG -- :  (40.5ms) SELECT pg_advisory_unlock(3005434223539248480) +D, [2022-09-30T21:33:37.572787 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:37.790113 #388] DEBUG -- :  (175.6ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:33:37.790655 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/DropTestTable/query-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/DropTestTable/query-details.json new file mode 100644 index 00000000..c44c9ac2 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/DropTestTable/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:36.389846+00:00","end_time":"2022-09-30T21:33:36.431180+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'schema_migrations' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:36.431558+00:00","end_time":"2022-09-30T21:33:36.472435+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'ar_internal_metadata' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:36.472769+00:00","end_time":"2022-09-30T21:33:36.513296+00:00","sql":"SELECT current_database()","binds":[]},{"start_time":"2022-09-30T21:33:36.762549+00:00","end_time":"2022-09-30T21:33:36.803176+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:36.803772+00:00","end_time":"2022-09-30T21:33:36.844349+00:00","sql":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:36.844916+00:00","end_time":"2022-09-30T21:33:36.885519+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:36.886110+00:00","end_time":"2022-09-30T21:33:36.926833+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:36.927419+00:00","end_time":"2022-09-30T21:33:36.967974+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:36.968719+00:00","end_time":"2022-09-30T21:33:37.011229+00:00","sql":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:37.011992+00:00","end_time":"2022-09-30T21:33:37.052561+00:00","sql":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:37.093029+00:00","end_time":"2022-09-30T21:33:37.134310+00:00","sql":"SELECT pg_try_advisory_lock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:37.135322+00:00","end_time":"2022-09-30T21:33:37.298323+00:00","sql":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:37.310075+00:00","end_time":"2022-09-30T21:33:37.351783+00:00","sql":"BEGIN /*application:test,db_config_name:main,line:/db/post_migrate/20210604232017_drop_test_table.rb:5:in `change'*/","binds":[]},{"start_time":"2022-09-30T21:33:37.351921+00:00","end_time":"2022-09-30T21:33:37.396057+00:00","sql":"DROP TABLE \"test_tables\" /*application:test,db_config_name:main,line:/db/post_migrate/20210604232017_drop_test_table.rb:5:in `change'*/","binds":[]},{"start_time":"2022-09-30T21:33:37.397918+00:00","end_time":"2022-09-30T21:33:37.439925+00:00","sql":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ('20210604232017') RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","binds":[]},{"start_time":"2022-09-30T21:33:37.440724+00:00","end_time":"2022-09-30T21:33:37.487201+00:00","sql":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","binds":[]},{"start_time":"2022-09-30T21:33:37.488692+00:00","end_time":"2022-09-30T21:33:37.530477+00:00","sql":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:37.531685+00:00","end_time":"2022-09-30T21:33:37.572922+00:00","sql":"SELECT pg_advisory_unlock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:37.614374+00:00","end_time":"2022-09-30T21:33:37.790813+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/DropTestTable/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/DropTestTable/transaction-duration.json new file mode 100644 index 00000000..982c7219 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/DropTestTable/transaction-duration.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:37.308835+00:00","end_time":"2022-09-30T21:33:37.487357+00:00","transaction_type":"real_transaction"}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/EnsureGitlabComInMigrations/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/EnsureGitlabComInMigrations/migration-stats.json new file mode 100644 index 00000000..e1559e10 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/EnsureGitlabComInMigrations/migration-stats.json @@ -0,0 +1 @@ +{"version": {"timestamp": 20220223163519},"name":"EnsureGitlabComInMigrations","walltime":1.184450276196003,"success":true,"total_database_size_change":0,"query_statistics":[{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":155.052597,"max_time":155.052597,"mean_time":155.052597,"rows":1},{"query":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":2.992765,"max_time":2.992765,"mean_time":2.992765,"rows":5389},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.20756,"max_time":0.20756,"mean_time":0.20756,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":3,"total_time":0.105835,"max_time":0.049020999999999995,"mean_time":0.035278333333333335,"rows":3},{"query":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.07036200000000001,"max_time":0.07036200000000001,"mean_time":0.07036200000000001,"rows":10},{"query":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ($1) RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","calls":1,"total_time":0.054597,"max_time":0.054597,"mean_time":0.054597,"rows":1},{"query":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.046151,"max_time":0.046151,"mean_time":0.046151,"rows":0},{"query":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.03294,"max_time":0.03294,"mean_time":0.03294,"rows":0},{"query":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.030738,"max_time":0.030738,"mean_time":0.030738,"rows":1},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.026957,"max_time":0.026957,"mean_time":0.026957,"rows":1},{"query":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.026259,"max_time":0.026259,"mean_time":0.026259,"rows":0},{"query":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.026191,"max_time":0.026191,"mean_time":0.026191,"rows":0},{"query":"set client_encoding to 'UTF8'","calls":1,"total_time":0.025904,"max_time":0.025904,"mean_time":0.025904,"rows":0},{"query":"set client_encoding to 'unicode'","calls":1,"total_time":0.016731,"max_time":0.016731,"mean_time":0.016731,"rows":0},{"query":"SELECT pg_advisory_unlock($1)","calls":1,"total_time":0.012501,"max_time":0.012501,"mean_time":0.012501,"rows":1},{"query":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.011461,"max_time":0.011461,"mean_time":0.011461,"rows":0},{"query":"SELECT pg_try_advisory_lock($1)","calls":1,"total_time":0.010361,"max_time":0.010361,"mean_time":0.010361,"rows":1},{"query":"SELECT current_database()","calls":1,"total_time":0.007498,"max_time":0.007498,"mean_time":0.007498,"rows":1},{"query":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.005163,"max_time":0.005163,"mean_time":0.005163,"rows":0},{"query":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","calls":1,"total_time":0.002956,"max_time":0.002956,"mean_time":0.002956,"rows":0},{"query":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","calls":1,"total_time":0.001802,"max_time":0.001802,"mean_time":0.001802,"rows":0}]} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/EnsureGitlabComInMigrations/migration.log b/notifier/spec/fixtures/migration-testing/v4/sec/up/EnsureGitlabComInMigrations/migration.log new file mode 100644 index 00000000..6cd94e96 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/EnsureGitlabComInMigrations/migration.log @@ -0,0 +1,18 @@ +# Logfile created on 2022-09-30 21:33:40 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:33:40.870297 #388] DEBUG -- :  (40.8ms) SELECT pg_try_advisory_lock(3005434223539248480) +D, [2022-09-30T21:33:40.870901 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:40.952304 #388] DEBUG -- :  (80.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:40.953022 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +I, [2022-09-30T21:33:40.966950 #388] INFO -- : Migrating to EnsureGitlabComInMigrations (20220223163519) +D, [2022-09-30T21:33:41.011542 #388] DEBUG -- : TRANSACTION (40.9ms) BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/ +D, [2022-09-30T21:33:41.012868 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:41.056610 #388] DEBUG -- : ActiveRecord::SchemaMigration Create (43.2ms) INSERT INTO "schema_migrations" ("version") VALUES ('20220223163519') RETURNING "version" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/ +D, [2022-09-30T21:33:41.057684 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:41.100139 #388] DEBUG -- : TRANSACTION (41.1ms) COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/ +D, [2022-09-30T21:33:41.100815 #388] DEBUG -- : ↳ lib/gitlab/database.rb:365:in `commit' +D, [2022-09-30T21:33:41.143652 #388] DEBUG -- : ActiveRecord::InternalMetadata Load (41.0ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:41.144486 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:41.189489 #388] DEBUG -- :  (43.4ms) SELECT pg_advisory_unlock(3005434223539248480) +D, [2022-09-30T21:33:41.190042 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:41.427729 #388] DEBUG -- :  (195.8ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:33:41.428305 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/EnsureGitlabComInMigrations/query-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/EnsureGitlabComInMigrations/query-details.json new file mode 100644 index 00000000..46253513 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/EnsureGitlabComInMigrations/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:40.127611+00:00","end_time":"2022-09-30T21:33:40.169060+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'schema_migrations' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:40.169410+00:00","end_time":"2022-09-30T21:33:40.210572+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'ar_internal_metadata' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:40.210912+00:00","end_time":"2022-09-30T21:33:40.251540+00:00","sql":"SELECT current_database()","binds":[]},{"start_time":"2022-09-30T21:33:40.497469+00:00","end_time":"2022-09-30T21:33:40.538095+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:40.538745+00:00","end_time":"2022-09-30T21:33:40.579217+00:00","sql":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:40.579854+00:00","end_time":"2022-09-30T21:33:40.620457+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:40.621097+00:00","end_time":"2022-09-30T21:33:40.663250+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:40.663919+00:00","end_time":"2022-09-30T21:33:40.704487+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:40.705217+00:00","end_time":"2022-09-30T21:33:40.747425+00:00","sql":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:40.748246+00:00","end_time":"2022-09-30T21:33:40.788898+00:00","sql":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:40.829414+00:00","end_time":"2022-09-30T21:33:40.871093+00:00","sql":"SELECT pg_try_advisory_lock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:40.872123+00:00","end_time":"2022-09-30T21:33:40.953181+00:00","sql":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:40.970531+00:00","end_time":"2022-09-30T21:33:41.013118+00:00","sql":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","binds":[]},{"start_time":"2022-09-30T21:33:41.013292+00:00","end_time":"2022-09-30T21:33:41.058025+00:00","sql":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ('20220223163519') RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","binds":[]},{"start_time":"2022-09-30T21:33:41.058960+00:00","end_time":"2022-09-30T21:33:41.100976+00:00","sql":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","binds":[]},{"start_time":"2022-09-30T21:33:41.102574+00:00","end_time":"2022-09-30T21:33:41.144649+00:00","sql":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:41.145906+00:00","end_time":"2022-09-30T21:33:41.190186+00:00","sql":"SELECT pg_advisory_unlock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:41.231868+00:00","end_time":"2022-09-30T21:33:41.428489+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/EnsureGitlabComInMigrations/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/EnsureGitlabComInMigrations/transaction-duration.json new file mode 100644 index 00000000..8ecc8336 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/EnsureGitlabComInMigrations/transaction-duration.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:40.968087+00:00","end_time":"2022-09-30T21:33:41.101133+00:00","transaction_type":"real_transaction"}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/FinalizeTestBatchedBackgroundMigrationMain/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/FinalizeTestBatchedBackgroundMigrationMain/migration-stats.json new file mode 100644 index 00000000..fd8c8b17 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/FinalizeTestBatchedBackgroundMigrationMain/migration-stats.json @@ -0,0 +1 @@ +{"version": {"timestamp": 20221012000000},"name":"FinalizeTestBatchedBackgroundMigrationMain","walltime":1.4382218355312943,"success":false,"total_database_size_change":0,"error_message":"An error has occurred, all later migrations canceled:\n\nCannot finalize a batched background migration that is still running","query_statistics":[{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":148.885089,"max_time":148.885089,"mean_time":148.885089,"rows":1},{"query":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:15:in `block in with_advisory_lock_connection'*/","calls":1,"total_time":3.9672880000000004,"max_time":3.9672880000000004,"mean_time":3.9672880000000004,"rows":7701},{"query":"SELECT a.attname, format_type(a.atttypid, a.atttypmod),\n pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,\n c.collname, col_description(a.attrelid, a.attnum) AS comment,\n attgenerated as attgenerated\n FROM pg_attribute a\n LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum\n LEFT JOIN pg_type t ON a.atttypid = t.oid\n LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation \u003c\u003e t.typcollation\n WHERE a.attrelid = $1::regclass\n AND a.attnum \u003e $2 AND NOT a.attisdropped\n ORDER BY a.attnum","calls":1,"total_time":2.348891,"max_time":2.348891,"mean_time":2.348891,"rows":22},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.8603999999999999,"max_time":0.8603999999999999,"mean_time":0.8603999999999999,"rows":1},{"query":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:12:in `with_advisory_lock_connection'*/","calls":2,"total_time":0.159258,"max_time":0.105377,"mean_time":0.079629,"rows":0},{"query":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:12:in `with_advisory_lock_connection'*/","calls":1,"total_time":0.136578,"max_time":0.136578,"mean_time":0.136578,"rows":10},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":3,"total_time":0.086889,"max_time":0.029513,"mean_time":0.028963,"rows":3},{"query":"set client_encoding to 'unicode'","calls":2,"total_time":0.066623,"max_time":0.048328,"mean_time":0.0333115,"rows":0},{"query":"SELECT \"batched_background_migrations\".* FROM \"batched_background_migrations\" WHERE \"batched_background_migrations\".\"job_class_name\" = $1 AND \"batched_background_migrations\".\"table_name\" = $2 AND \"batched_background_migrations\".\"column_name\" = $3 AND (job_arguments = $4) AND \"batched_background_migrations\".\"gitlab_schema\" = $5 ORDER BY \"batched_background_migrations\".\"id\" ASC LIMIT $6 /*application:test,db_config_name:main,line:/lib/gitlab/database/background_migration/batched_migration.rb:96:in `find_for_configuration'*/","calls":1,"total_time":0.058894,"max_time":0.058894,"mean_time":0.058894,"rows":1},{"query":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:12:in `with_advisory_lock_connection'*/","calls":2,"total_time":0.044259,"max_time":0.029836,"mean_time":0.0221295,"rows":0},{"query":"SELECT pg_try_advisory_lock($1)","calls":1,"total_time":0.033643000000000006,"max_time":0.033643000000000006,"mean_time":0.033643000000000006,"rows":1},{"query":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:12:in `with_advisory_lock_connection'*/","calls":2,"total_time":0.029908999999999998,"max_time":0.015477,"mean_time":0.014954499999999999,"rows":0},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.029356,"max_time":0.029356,"mean_time":0.029356,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4,$5,$6,$7)","calls":1,"total_time":0.028425,"max_time":0.028425,"mean_time":0.028425,"rows":1},{"query":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:12:in `with_advisory_lock_connection'*/","calls":2,"total_time":0.026404,"max_time":0.013683,"mean_time":0.013202,"rows":0},{"query":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:12:in `with_advisory_lock_connection'*/","calls":2,"total_time":0.023522,"max_time":0.012662,"mean_time":0.011761,"rows":0},{"query":"SELECT pg_backend_pid() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:29:in `say'*/","calls":2,"total_time":0.016921000000000002,"max_time":0.009988,"mean_time":0.008460500000000001,"rows":2},{"query":"SELECT pg_advisory_unlock($1)","calls":1,"total_time":0.010726000000000001,"max_time":0.010726000000000001,"mean_time":0.010726000000000001,"rows":1},{"query":"SELECT current_database()","calls":1,"total_time":0.009761,"max_time":0.009761,"mean_time":0.009761,"rows":1},{"query":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:12:in `with_advisory_lock_connection'*/","calls":1,"total_time":0.006899,"max_time":0.006899,"mean_time":0.006899,"rows":0}]} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/FinalizeTestBatchedBackgroundMigrationMain/migration.log b/notifier/spec/fixtures/migration-testing/v4/sec/up/FinalizeTestBatchedBackgroundMigrationMain/migration.log new file mode 100644 index 00000000..42dc14d5 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/FinalizeTestBatchedBackgroundMigrationMain/migration.log @@ -0,0 +1,16 @@ +# Logfile created on 2024-01-17 17:43:03 +0000 by logger.rb/v1.5.0 +D, [2024-01-17T17:43:04.281727 #579] DEBUG -- :  (38.3ms) SELECT pg_backend_pid() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:29:in `say'*/ +D, [2024-01-17T17:43:04.282230 #579] DEBUG -- : ↳ lib/gitlab/database/migrations/pg_backend_pid.rb:29:in `say' +D, [2024-01-17T17:43:04.322486 #579] DEBUG -- :  (39.6ms) SELECT pg_try_advisory_lock(3005434223539248480) +D, [2024-01-17T17:43:04.322979 #579] DEBUG -- : ↳ lib/gitlab/database/migrations/pg_backend_pid.rb:15:in `block in with_advisory_lock_connection' +D, [2024-01-17T17:43:04.401788 #579] DEBUG -- : ActiveRecord::SchemaMigration Pluck (77.4ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:15:in `block in with_advisory_lock_connection'*/ +D, [2024-01-17T17:43:04.402459 #579] DEBUG -- : ↳ lib/gitlab/database/migrations/pg_backend_pid.rb:15:in `block in with_advisory_lock_connection' +I, [2024-01-17T17:43:04.414255 #579] INFO -- : Migrating to FinalizeTestBatchedBackgroundMigrationMain (20221012000000) +D, [2024-01-17T17:43:04.502648 #579] DEBUG -- : Gitlab::Database::BackgroundMigration::BatchedMigration Load (40.9ms) SELECT "batched_background_migrations".* FROM "batched_background_migrations" WHERE "batched_background_migrations"."job_class_name" = 'CopyColumnUsingBackgroundMigrationJob' AND "batched_background_migrations"."table_name" = 'issues' AND "batched_background_migrations"."column_name" = 'id' AND (job_arguments = '["updated_at","created_at"]') AND "batched_background_migrations"."gitlab_schema" = 'gitlab_main' ORDER BY "batched_background_migrations"."id" ASC LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/background_migration/batched_migration.rb:96:in `find_for_configuration'*/ +D, [2024-01-17T17:43:04.503461 #579] DEBUG -- : ↳ lib/gitlab/database/background_migration/batched_migration.rb:96:in `find_for_configuration' +D, [2024-01-17T17:43:04.589412 #579] DEBUG -- :  (37.9ms) SELECT pg_advisory_unlock(3005434223539248480) +D, [2024-01-17T17:43:04.589938 #579] DEBUG -- : ↳ lib/gitlab/database/migrations/pg_backend_pid.rb:15:in `block in with_advisory_lock_connection' +D, [2024-01-17T17:43:04.629943 #579] DEBUG -- :  (39.2ms) SELECT pg_backend_pid() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:29:in `say'*/ +D, [2024-01-17T17:43:04.630580 #579] DEBUG -- : ↳ lib/gitlab/database/migrations/pg_backend_pid.rb:29:in `say' +D, [2024-01-17T17:43:04.855851 #579] DEBUG -- :  (186.3ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2024-01-17T17:43:04.856424 #579] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/FinalizeTestBatchedBackgroundMigrationMain/query-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/FinalizeTestBatchedBackgroundMigrationMain/query-details.json new file mode 100644 index 00000000..ad02e82f --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/FinalizeTestBatchedBackgroundMigrationMain/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2024-01-17T17:43:03.323506+00:00","end_time":"2024-01-17T17:43:03.363968+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'schema_migrations' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2024-01-17T17:43:03.364478+00:00","end_time":"2024-01-17T17:43:03.407706+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'ar_internal_metadata' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2024-01-17T17:43:03.407968+00:00","end_time":"2024-01-17T17:43:03.445573+00:00","sql":"SELECT current_database()","binds":[]},{"start_time":"2024-01-17T17:43:03.687516+00:00","end_time":"2024-01-17T17:43:03.734871+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:12:in `with_advisory_lock_connection'*/","binds":[]},{"start_time":"2024-01-17T17:43:03.735552+00:00","end_time":"2024-01-17T17:43:03.773474+00:00","sql":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:12:in `with_advisory_lock_connection'*/","binds":[]},{"start_time":"2024-01-17T17:43:03.774072+00:00","end_time":"2024-01-17T17:43:03.811202+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:12:in `with_advisory_lock_connection'*/","binds":[]},{"start_time":"2024-01-17T17:43:03.811903+00:00","end_time":"2024-01-17T17:43:03.849177+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:12:in `with_advisory_lock_connection'*/","binds":[]},{"start_time":"2024-01-17T17:43:03.849783+00:00","end_time":"2024-01-17T17:43:03.889717+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:12:in `with_advisory_lock_connection'*/","binds":[]},{"start_time":"2024-01-17T17:43:03.890485+00:00","end_time":"2024-01-17T17:43:03.931614+00:00","sql":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:12:in `with_advisory_lock_connection'*/","binds":[]},{"start_time":"2024-01-17T17:43:03.973734+00:00","end_time":"2024-01-17T17:43:04.012966+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:12:in `with_advisory_lock_connection'*/","binds":[]},{"start_time":"2024-01-17T17:43:04.013538+00:00","end_time":"2024-01-17T17:43:04.052253+00:00","sql":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:12:in `with_advisory_lock_connection'*/","binds":[]},{"start_time":"2024-01-17T17:43:04.052966+00:00","end_time":"2024-01-17T17:43:04.089946+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:12:in `with_advisory_lock_connection'*/","binds":[]},{"start_time":"2024-01-17T17:43:04.090535+00:00","end_time":"2024-01-17T17:43:04.127552+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:12:in `with_advisory_lock_connection'*/","binds":[]},{"start_time":"2024-01-17T17:43:04.128240+00:00","end_time":"2024-01-17T17:43:04.166984+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:12:in `with_advisory_lock_connection'*/","binds":[]},{"start_time":"2024-01-17T17:43:04.167785+00:00","end_time":"2024-01-17T17:43:04.205668+00:00","sql":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:12:in `with_advisory_lock_connection'*/","binds":[]},{"start_time":"2024-01-17T17:43:04.243343+00:00","end_time":"2024-01-17T17:43:04.282368+00:00","sql":"SELECT pg_backend_pid() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:29:in `say'*/","binds":[]},{"start_time":"2024-01-17T17:43:04.282707+00:00","end_time":"2024-01-17T17:43:04.323216+00:00","sql":"SELECT pg_try_advisory_lock(3005434223539248480)","binds":[]},{"start_time":"2024-01-17T17:43:04.324265+00:00","end_time":"2024-01-17T17:43:04.402622+00:00","sql":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:15:in `block in with_advisory_lock_connection'*/","binds":[]},{"start_time":"2024-01-17T17:43:04.416213+00:00","end_time":"2024-01-17T17:43:04.458128+00:00","sql":"SELECT a.attname, format_type(a.atttypid, a.atttypmod),\n pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,\n c.collname, col_description(a.attrelid, a.attnum) AS comment,\n attgenerated as attgenerated\n FROM pg_attribute a\n LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum\n LEFT JOIN pg_type t ON a.atttypid = t.oid\n LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation \u003c\u003e t.typcollation\n WHERE a.attrelid = '\"batched_background_migrations\"'::regclass\n AND a.attnum \u003e 0 AND NOT a.attisdropped\n ORDER BY a.attnum\n","binds":[]},{"start_time":"2024-01-17T17:43:04.461581+00:00","end_time":"2024-01-17T17:43:04.504406+00:00","sql":"SELECT \"batched_background_migrations\".* FROM \"batched_background_migrations\" WHERE \"batched_background_migrations\".\"job_class_name\" = 'CopyColumnUsingBackgroundMigrationJob' AND \"batched_background_migrations\".\"table_name\" = 'issues' AND \"batched_background_migrations\".\"column_name\" = 'id' AND (job_arguments = '[\"updated_at\",\"created_at\"]') AND \"batched_background_migrations\".\"gitlab_schema\" = 'gitlab_main' ORDER BY \"batched_background_migrations\".\"id\" ASC LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/background_migration/batched_migration.rb:96:in `find_for_configuration'*/","binds":[]},{"start_time":"2024-01-17T17:43:04.505032+00:00","end_time":"2024-01-17T17:43:04.544825+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'batched_background_migrations' AND c.relkind IN ('r','v','m','p','f')","binds":[]},{"start_time":"2024-01-17T17:43:04.551388+00:00","end_time":"2024-01-17T17:43:04.590094+00:00","sql":"SELECT pg_advisory_unlock(3005434223539248480)","binds":[]},{"start_time":"2024-01-17T17:43:04.590664+00:00","end_time":"2024-01-17T17:43:04.630747+00:00","sql":"SELECT pg_backend_pid() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/pg_backend_pid.rb:29:in `say'*/","binds":[]},{"start_time":"2024-01-17T17:43:04.669497+00:00","end_time":"2024-01-17T17:43:04.856581+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/FinalizeTestBatchedBackgroundMigrationMain/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/FinalizeTestBatchedBackgroundMigrationMain/transaction-duration.json new file mode 100644 index 00000000..fe51488c --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/FinalizeTestBatchedBackgroundMigrationMain/transaction-duration.json @@ -0,0 +1 @@ +[] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationInheritsGitlabDatabaseMigration/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationInheritsGitlabDatabaseMigration/migration-stats.json new file mode 100644 index 00000000..93d57924 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationInheritsGitlabDatabaseMigration/migration-stats.json @@ -0,0 +1 @@ +{"version": {"timestamp": 20210915152743},"name":"MigrationInheritsGitlabDatabaseMigration","walltime":1.2187191620469093,"success":true,"total_database_size_change":0,"query_statistics":[{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":123.01689,"max_time":123.01689,"mean_time":123.01689,"rows":1},{"query":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":2.666218,"max_time":2.666218,"mean_time":2.666218,"rows":5388},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.15341000000000002,"max_time":0.15341000000000002,"mean_time":0.15341000000000002,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":3,"total_time":0.107736,"max_time":0.053634999999999995,"mean_time":0.035912,"rows":3},{"query":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ($1) RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","calls":1,"total_time":0.07854799999999999,"max_time":0.07854799999999999,"mean_time":0.07854799999999999,"rows":1},{"query":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.07421599999999999,"max_time":0.07421599999999999,"mean_time":0.07421599999999999,"rows":10},{"query":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.038481,"max_time":0.038481,"mean_time":0.038481,"rows":0},{"query":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.028806,"max_time":0.028806,"mean_time":0.028806,"rows":0},{"query":"set client_encoding to 'UTF8'","calls":1,"total_time":0.025956,"max_time":0.025956,"mean_time":0.025956,"rows":0},{"query":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.024753,"max_time":0.024753,"mean_time":0.024753,"rows":0},{"query":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.024306,"max_time":0.024306,"mean_time":0.024306,"rows":1},{"query":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.023458,"max_time":0.023458,"mean_time":0.023458,"rows":0},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.023139,"max_time":0.023139,"mean_time":0.023139,"rows":1},{"query":"set client_encoding to 'unicode'","calls":1,"total_time":0.016771,"max_time":0.016771,"mean_time":0.016771,"rows":0},{"query":"SELECT pg_try_advisory_lock($1)","calls":1,"total_time":0.015452,"max_time":0.015452,"mean_time":0.015452,"rows":1},{"query":"SELECT pg_advisory_unlock($1)","calls":1,"total_time":0.011427,"max_time":0.011427,"mean_time":0.011427,"rows":1},{"query":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.010046,"max_time":0.010046,"mean_time":0.010046,"rows":0},{"query":"SELECT $1 /*application:test,db_config_name:main,line:/db/migrate/20210915152743_migration_inherits_gitlab_database_migration.rb:5:in `up'*/","calls":1,"total_time":0.009079,"max_time":0.009079,"mean_time":0.009079,"rows":1},{"query":"SELECT current_database()","calls":1,"total_time":0.006421,"max_time":0.006421,"mean_time":0.006421,"rows":1},{"query":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.006216,"max_time":0.006216,"mean_time":0.006216,"rows":0},{"query":"BEGIN /*application:test,db_config_name:main,line:/db/migrate/20210915152743_migration_inherits_gitlab_database_migration.rb:5:in `up'*/","calls":1,"total_time":0.00161,"max_time":0.00161,"mean_time":0.00161,"rows":0},{"query":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","calls":1,"total_time":0.001508,"max_time":0.001508,"mean_time":0.001508,"rows":0}]} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationInheritsGitlabDatabaseMigration/migration.log b/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationInheritsGitlabDatabaseMigration/migration.log new file mode 100644 index 00000000..df716b71 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationInheritsGitlabDatabaseMigration/migration.log @@ -0,0 +1,20 @@ +# Logfile created on 2022-09-30 21:33:38 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:33:39.030478 #388] DEBUG -- :  (40.9ms) SELECT pg_try_advisory_lock(3005434223539248480) +D, [2022-09-30T21:33:39.031028 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:39.112687 #388] DEBUG -- :  (80.3ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:39.113490 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +I, [2022-09-30T21:33:39.125341 #388] INFO -- : Migrating to MigrationInheritsGitlabDatabaseMigration (20210915152743) +D, [2022-09-30T21:33:39.174910 #388] DEBUG -- : TRANSACTION (40.7ms) BEGIN /*application:test,db_config_name:main,line:/db/migrate/20210915152743_migration_inherits_gitlab_database_migration.rb:5:in `up'*/ +D, [2022-09-30T21:33:39.175950 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:39.217544 #388] DEBUG -- :  (41.1ms) SELECT 'up' /*application:test,db_config_name:main,line:/db/migrate/20210915152743_migration_inherits_gitlab_database_migration.rb:5:in `up'*/ +D, [2022-09-30T21:33:39.218366 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:39.261873 #388] DEBUG -- : ActiveRecord::SchemaMigration Create (41.1ms) INSERT INTO "schema_migrations" ("version") VALUES ('20210915152743') RETURNING "version" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/ +D, [2022-09-30T21:33:39.263015 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:39.304639 #388] DEBUG -- : TRANSACTION (40.5ms) COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/ +D, [2022-09-30T21:33:39.305256 #388] DEBUG -- : ↳ lib/gitlab/database.rb:365:in `commit' +D, [2022-09-30T21:33:39.347750 #388] DEBUG -- : ActiveRecord::InternalMetadata Load (40.7ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:39.348559 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:39.393771 #388] DEBUG -- :  (41.0ms) SELECT pg_advisory_unlock(3005434223539248480) +D, [2022-09-30T21:33:39.394301 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:39.599450 #388] DEBUG -- :  (163.5ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:33:39.599987 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationInheritsGitlabDatabaseMigration/query-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationInheritsGitlabDatabaseMigration/query-details.json new file mode 100644 index 00000000..c947df65 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationInheritsGitlabDatabaseMigration/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:38.287981+00:00","end_time":"2022-09-30T21:33:38.329271+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'schema_migrations' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:38.329644+00:00","end_time":"2022-09-30T21:33:38.370576+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'ar_internal_metadata' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:38.370890+00:00","end_time":"2022-09-30T21:33:38.411767+00:00","sql":"SELECT current_database()","binds":[]},{"start_time":"2022-09-30T21:33:38.657320+00:00","end_time":"2022-09-30T21:33:38.698247+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:38.698973+00:00","end_time":"2022-09-30T21:33:38.739655+00:00","sql":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:38.740260+00:00","end_time":"2022-09-30T21:33:38.780800+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:38.781469+00:00","end_time":"2022-09-30T21:33:38.822152+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:38.822892+00:00","end_time":"2022-09-30T21:33:38.863565+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:38.864551+00:00","end_time":"2022-09-30T21:33:38.907019+00:00","sql":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:38.907825+00:00","end_time":"2022-09-30T21:33:38.948882+00:00","sql":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:38.989504+00:00","end_time":"2022-09-30T21:33:39.031177+00:00","sql":"SELECT pg_try_advisory_lock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:39.032260+00:00","end_time":"2022-09-30T21:33:39.113651+00:00","sql":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:39.134121+00:00","end_time":"2022-09-30T21:33:39.176208+00:00","sql":"BEGIN /*application:test,db_config_name:main,line:/db/migrate/20210915152743_migration_inherits_gitlab_database_migration.rb:5:in `up'*/","binds":[]},{"start_time":"2022-09-30T21:33:39.176349+00:00","end_time":"2022-09-30T21:33:39.218602+00:00","sql":"SELECT 'up' /*application:test,db_config_name:main,line:/db/migrate/20210915152743_migration_inherits_gitlab_database_migration.rb:5:in `up'*/","binds":[]},{"start_time":"2022-09-30T21:33:39.220670+00:00","end_time":"2022-09-30T21:33:39.263189+00:00","sql":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ('20210915152743') RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","binds":[]},{"start_time":"2022-09-30T21:33:39.264043+00:00","end_time":"2022-09-30T21:33:39.305410+00:00","sql":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","binds":[]},{"start_time":"2022-09-30T21:33:39.306924+00:00","end_time":"2022-09-30T21:33:39.351358+00:00","sql":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:39.352717+00:00","end_time":"2022-09-30T21:33:39.394486+00:00","sql":"SELECT pg_advisory_unlock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:39.435851+00:00","end_time":"2022-09-30T21:33:39.600137+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationInheritsGitlabDatabaseMigration/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationInheritsGitlabDatabaseMigration/transaction-duration.json new file mode 100644 index 00000000..3e4d1644 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationInheritsGitlabDatabaseMigration/transaction-duration.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:39.132866+00:00","end_time":"2022-09-30T21:33:39.305601+00:00","transaction_type":"real_transaction"}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationThrowsException/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationThrowsException/migration-stats.json new file mode 100644 index 00000000..6f105218 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationThrowsException/migration-stats.json @@ -0,0 +1 @@ +{"version": {"timestamp": 20990604233157},"name":"MigrationThrowsException","walltime":1.0609245002269745,"success":false,"total_database_size_change":0,"query_statistics":[{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":145.039503,"max_time":145.039503,"mean_time":145.039503,"rows":1},{"query":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":4.334219,"max_time":4.334219,"mean_time":4.334219,"rows":5392},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.180108,"max_time":0.180108,"mean_time":0.180108,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":3,"total_time":0.106629,"max_time":0.04214,"mean_time":0.035543,"rows":3},{"query":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.07478900000000001,"max_time":0.07478900000000001,"mean_time":0.07478900000000001,"rows":10},{"query":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.041753,"max_time":0.041753,"mean_time":0.041753,"rows":0},{"query":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.041544,"max_time":0.041544,"mean_time":0.041544,"rows":0},{"query":"set client_encoding to 'UTF8'","calls":1,"total_time":0.03073,"max_time":0.03073,"mean_time":0.03073,"rows":0},{"query":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.028737,"max_time":0.028737,"mean_time":0.028737,"rows":0},{"query":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.027912,"max_time":0.027912,"mean_time":0.027912,"rows":0},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.023018,"max_time":0.023018,"mean_time":0.023018,"rows":1},{"query":"set client_encoding to 'unicode'","calls":1,"total_time":0.022843,"max_time":0.022843,"mean_time":0.022843,"rows":0},{"query":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.017006,"max_time":0.017006,"mean_time":0.017006,"rows":0},{"query":"SELECT pg_try_advisory_lock($1)","calls":1,"total_time":0.014478,"max_time":0.014478,"mean_time":0.014478,"rows":1},{"query":"SELECT pg_advisory_unlock($1)","calls":1,"total_time":0.014085,"max_time":0.014085,"mean_time":0.014085,"rows":1},{"query":"SELECT current_database()","calls":1,"total_time":0.008478000000000001,"max_time":0.008478000000000001,"mean_time":0.008478000000000001,"rows":1},{"query":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.005855,"max_time":0.005855,"mean_time":0.005855,"rows":0}]} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationThrowsException/migration.log b/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationThrowsException/migration.log new file mode 100644 index 00000000..5f5433c7 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationThrowsException/migration.log @@ -0,0 +1,10 @@ +# Logfile created on 2022-09-30 21:34:41 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:34:42.061550 #388] DEBUG -- :  (40.6ms) SELECT pg_try_advisory_lock(3005434223539248480) +D, [2022-09-30T21:34:42.062129 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:34:42.193620 #388] DEBUG -- :  (130.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:34:42.194350 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +I, [2022-09-30T21:34:42.207338 #388] INFO -- : Migrating to MigrationThrowsException (20990604233157) +D, [2022-09-30T21:34:42.261305 #388] DEBUG -- :  (40.9ms) SELECT pg_advisory_unlock(3005434223539248480) +D, [2022-09-30T21:34:42.261874 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:34:42.489167 #388] DEBUG -- :  (185.5ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:34:42.489743 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationThrowsException/query-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationThrowsException/query-details.json new file mode 100644 index 00000000..c4a5c54b --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationThrowsException/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:34:41.320219+00:00","end_time":"2022-09-30T21:34:41.361726+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'schema_migrations' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:34:41.362114+00:00","end_time":"2022-09-30T21:34:41.403093+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'ar_internal_metadata' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:34:41.403382+00:00","end_time":"2022-09-30T21:34:41.444043+00:00","sql":"SELECT current_database()","binds":[]},{"start_time":"2022-09-30T21:34:41.689959+00:00","end_time":"2022-09-30T21:34:41.730873+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:34:41.731509+00:00","end_time":"2022-09-30T21:34:41.772077+00:00","sql":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:34:41.772700+00:00","end_time":"2022-09-30T21:34:41.813254+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:34:41.813878+00:00","end_time":"2022-09-30T21:34:41.854587+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:34:41.855225+00:00","end_time":"2022-09-30T21:34:41.895870+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:34:41.896591+00:00","end_time":"2022-09-30T21:34:41.938744+00:00","sql":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:34:41.939522+00:00","end_time":"2022-09-30T21:34:41.980202+00:00","sql":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:34:42.020869+00:00","end_time":"2022-09-30T21:34:42.062276+00:00","sql":"SELECT pg_try_advisory_lock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:34:42.063345+00:00","end_time":"2022-09-30T21:34:42.194552+00:00","sql":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:34:42.220293+00:00","end_time":"2022-09-30T21:34:42.262053+00:00","sql":"SELECT pg_advisory_unlock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:34:42.303545+00:00","end_time":"2022-09-30T21:34:42.489898+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationThrowsException/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationThrowsException/transaction-duration.json new file mode 100644 index 00000000..65da4470 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/MigrationThrowsException/transaction-duration.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:34:42.208442+00:00","end_time":"2022-09-30T21:34:42.219880+00:00","transaction_type":"real_transaction"}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/QueueTestBackgroundMigration/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/QueueTestBackgroundMigration/migration-stats.json new file mode 100644 index 00000000..2cc1d508 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/QueueTestBackgroundMigration/migration-stats.json @@ -0,0 +1 @@ +{"version": {"timestamp": 20220318174439},"name":"QueueTestBackgroundMigration","walltime":1.8168415874242783,"success":true,"total_database_size_change":0,"query_statistics":[{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":134.664105,"max_time":134.664105,"mean_time":134.664105,"rows":1},{"query":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":2.591349,"max_time":2.591349,"mean_time":2.591349,"rows":5390},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.16301400000000002,"max_time":0.16301400000000002,"mean_time":0.16301400000000002,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":3,"total_time":0.120894,"max_time":0.047056,"mean_time":0.040298,"rows":3},{"query":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.082227,"max_time":0.082227,"mean_time":0.082227,"rows":10},{"query":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ($1) RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/","calls":1,"total_time":0.055818,"max_time":0.055818,"mean_time":0.055818,"rows":1},{"query":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.041372,"max_time":0.041372,"mean_time":0.041372,"rows":0},{"query":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.033194,"max_time":0.033194,"mean_time":0.033194,"rows":0},{"query":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.032334,"max_time":0.032334,"mean_time":0.032334,"rows":0},{"query":"set client_encoding to 'UTF8'","calls":1,"total_time":0.031837,"max_time":0.031837,"mean_time":0.031837,"rows":0},{"query":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.030087,"max_time":0.030087,"mean_time":0.030087,"rows":1},{"query":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.029062,"max_time":0.029062,"mean_time":0.029062,"rows":0},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.023251,"max_time":0.023251,"mean_time":0.023251,"rows":1},{"query":"set client_encoding to 'unicode'","calls":1,"total_time":0.022774,"max_time":0.022774,"mean_time":0.022774,"rows":0},{"query":"SELECT pg_try_advisory_lock($1)","calls":1,"total_time":0.015193,"max_time":0.015193,"mean_time":0.015193,"rows":1},{"query":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.014817,"max_time":0.014817,"mean_time":0.014817,"rows":0},{"query":"SELECT pg_advisory_unlock($1)","calls":1,"total_time":0.011682,"max_time":0.011682,"mean_time":0.011682,"rows":1},{"query":"SELECT current_database()","calls":1,"total_time":0.009544,"max_time":0.009544,"mean_time":0.009544,"rows":1},{"query":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.00637,"max_time":0.00637,"mean_time":0.00637,"rows":0},{"query":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","calls":1,"total_time":0.002102,"max_time":0.002102,"mean_time":0.002102,"rows":0},{"query":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/","calls":1,"total_time":0.001646,"max_time":0.001646,"mean_time":0.001646,"rows":0}]} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/QueueTestBackgroundMigration/migration.log b/notifier/spec/fixtures/migration-testing/v4/sec/up/QueueTestBackgroundMigration/migration.log new file mode 100644 index 00000000..e0e18b86 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/QueueTestBackgroundMigration/migration.log @@ -0,0 +1,18 @@ +# Logfile created on 2022-09-30 21:33:41 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:33:42.739724 #388] DEBUG -- :  (40.6ms) SELECT pg_try_advisory_lock(3005434223539248480) +D, [2022-09-30T21:33:42.740329 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:42.822205 #388] DEBUG -- :  (80.3ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:42.822982 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +I, [2022-09-30T21:33:42.834211 #388] INFO -- : Migrating to QueueTestBackgroundMigration (20220318174439) +D, [2022-09-30T21:33:43.483827 #388] DEBUG -- : TRANSACTION (40.4ms) BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/ +D, [2022-09-30T21:33:43.484987 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction' +D, [2022-09-30T21:33:43.526181 #388] DEBUG -- : ActiveRecord::SchemaMigration Create (40.7ms) INSERT INTO "schema_migrations" ("version") VALUES ('20220318174439') RETURNING "version" /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/ +D, [2022-09-30T21:33:43.527314 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction' +D, [2022-09-30T21:33:43.568896 #388] DEBUG -- : TRANSACTION (40.6ms) COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/ +D, [2022-09-30T21:33:43.569503 #388] DEBUG -- : ↳ lib/gitlab/database.rb:365:in `commit' +D, [2022-09-30T21:33:43.612498 #388] DEBUG -- : ActiveRecord::InternalMetadata Load (41.2ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:43.613250 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:43.655917 #388] DEBUG -- :  (40.8ms) SELECT pg_advisory_unlock(3005434223539248480) +D, [2022-09-30T21:33:43.656414 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:43.873372 #388] DEBUG -- :  (175.2ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:33:43.873911 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/QueueTestBackgroundMigration/query-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/QueueTestBackgroundMigration/query-details.json new file mode 100644 index 00000000..d5fdba7a --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/QueueTestBackgroundMigration/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:41.995774+00:00","end_time":"2022-09-30T21:33:42.037593+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'schema_migrations' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:42.037973+00:00","end_time":"2022-09-30T21:33:42.079105+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'ar_internal_metadata' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:42.079408+00:00","end_time":"2022-09-30T21:33:42.121662+00:00","sql":"SELECT current_database()","binds":[]},{"start_time":"2022-09-30T21:33:42.368032+00:00","end_time":"2022-09-30T21:33:42.408583+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:42.409164+00:00","end_time":"2022-09-30T21:33:42.449861+00:00","sql":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:42.450478+00:00","end_time":"2022-09-30T21:33:42.491209+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:42.491842+00:00","end_time":"2022-09-30T21:33:42.532383+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:42.533037+00:00","end_time":"2022-09-30T21:33:42.573569+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:42.574288+00:00","end_time":"2022-09-30T21:33:42.616693+00:00","sql":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:42.617503+00:00","end_time":"2022-09-30T21:33:42.658506+00:00","sql":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:42.699088+00:00","end_time":"2022-09-30T21:33:42.740508+00:00","sql":"SELECT pg_try_advisory_lock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:42.741563+00:00","end_time":"2022-09-30T21:33:42.823171+00:00","sql":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.088566+00:00","end_time":"2022-09-30T21:33:43.129074+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,correlation_id:a923cb21bd993638806139f1a08d6de1,endpoint_id:QueueTestBackgroundMigration,db_config_name:unknown,line:/app/models/concerns/transactions.rb:13:in `inside_transaction?'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.129779+00:00","end_time":"2022-09-30T21:33:43.170247+00:00","sql":"SET standard_conforming_strings = on /*application:test,correlation_id:a923cb21bd993638806139f1a08d6de1,endpoint_id:QueueTestBackgroundMigration,db_config_name:unknown,line:/app/models/concerns/transactions.rb:13:in `inside_transaction?'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.171009+00:00","end_time":"2022-09-30T21:33:43.211366+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,correlation_id:a923cb21bd993638806139f1a08d6de1,endpoint_id:QueueTestBackgroundMigration,db_config_name:unknown,line:/app/models/concerns/transactions.rb:13:in `inside_transaction?'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.212185+00:00","end_time":"2022-09-30T21:33:43.252775+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,correlation_id:a923cb21bd993638806139f1a08d6de1,endpoint_id:QueueTestBackgroundMigration,db_config_name:unknown,line:/app/models/concerns/transactions.rb:13:in `inside_transaction?'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.253545+00:00","end_time":"2022-09-30T21:33:43.294145+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,correlation_id:a923cb21bd993638806139f1a08d6de1,endpoint_id:QueueTestBackgroundMigration,db_config_name:unknown,line:/app/models/concerns/transactions.rb:13:in `inside_transaction?'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.295040+00:00","end_time":"2022-09-30T21:33:43.336867+00:00","sql":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,correlation_id:a923cb21bd993638806139f1a08d6de1,endpoint_id:QueueTestBackgroundMigration,db_config_name:unknown,line:/app/models/concerns/transactions.rb:13:in `inside_transaction?'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.337773+00:00","end_time":"2022-09-30T21:33:43.378434+00:00","sql":"SHOW TIME ZONE /*application:test,correlation_id:a923cb21bd993638806139f1a08d6de1,endpoint_id:QueueTestBackgroundMigration,db_config_name:unknown,line:/app/models/concerns/transactions.rb:13:in `inside_transaction?'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.443290+00:00","end_time":"2022-09-30T21:33:43.485233+00:00","sql":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.485394+00:00","end_time":"2022-09-30T21:33:43.527513+00:00","sql":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ('20220318174439') RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.528240+00:00","end_time":"2022-09-30T21:33:43.569661+00:00","sql":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.571156+00:00","end_time":"2022-09-30T21:33:43.613403+00:00","sql":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:43.615029+00:00","end_time":"2022-09-30T21:33:43.656574+00:00","sql":"SELECT pg_advisory_unlock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:43.698099+00:00","end_time":"2022-09-30T21:33:43.874064+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/QueueTestBackgroundMigration/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/QueueTestBackgroundMigration/transaction-duration.json new file mode 100644 index 00000000..fe51488c --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/QueueTestBackgroundMigration/transaction-duration.json @@ -0,0 +1 @@ +[] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/RegularMigrationWithFiveSecondQuery/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/RegularMigrationWithFiveSecondQuery/migration-stats.json new file mode 100644 index 00000000..d5d238ae --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/RegularMigrationWithFiveSecondQuery/migration-stats.json @@ -0,0 +1 @@ +{"version": {"timestamp": 20210603233011},"name":"RegularMigrationWithFiveSecondQuery","walltime":6.5386748388409615,"success":true,"total_database_size_change":0,"query_statistics":[{"query":"SELECT pg_sleep($1)","calls":1,"total_time":5005.107169999999,"max_time":5005.107169999999,"mean_time":5005.107169999999,"rows":1},{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":119.49098099999999,"max_time":119.49098099999999,"mean_time":119.49098099999999,"rows":1},{"query":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":2.689177,"max_time":2.689177,"mean_time":2.689177,"rows":5386},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.145792,"max_time":0.145792,"mean_time":0.145792,"rows":1},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":3,"total_time":0.101314,"max_time":0.037744,"mean_time":0.033771333333333334,"rows":3},{"query":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.069828,"max_time":0.069828,"mean_time":0.069828,"rows":10},{"query":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ($1) RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","calls":1,"total_time":0.06289700000000001,"max_time":0.06289700000000001,"mean_time":0.06289700000000001,"rows":1},{"query":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.037246,"max_time":0.037246,"mean_time":0.037246,"rows":0},{"query":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.035568,"max_time":0.035568,"mean_time":0.035568,"rows":0},{"query":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.028693,"max_time":0.028693,"mean_time":0.028693,"rows":0},{"query":"set client_encoding to 'UTF8'","calls":1,"total_time":0.028005,"max_time":0.028005,"mean_time":0.028005,"rows":0},{"query":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.025585,"max_time":0.025585,"mean_time":0.025585,"rows":0},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.023356000000000002,"max_time":0.023356000000000002,"mean_time":0.023356000000000002,"rows":1},{"query":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.022419,"max_time":0.022419,"mean_time":0.022419,"rows":1},{"query":"set client_encoding to 'unicode'","calls":1,"total_time":0.017691,"max_time":0.017691,"mean_time":0.017691,"rows":0},{"query":"SELECT pg_try_advisory_lock($1)","calls":1,"total_time":0.01039,"max_time":0.01039,"mean_time":0.01039,"rows":1},{"query":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.010238,"max_time":0.010238,"mean_time":0.010238,"rows":0},{"query":"SELECT pg_advisory_unlock($1)","calls":1,"total_time":0.008628,"max_time":0.008628,"mean_time":0.008628,"rows":1},{"query":"SELECT current_database()","calls":1,"total_time":0.008331999999999999,"max_time":0.008331999999999999,"mean_time":0.008331999999999999,"rows":1},{"query":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.004933,"max_time":0.004933,"mean_time":0.004933,"rows":0},{"query":"BEGIN /*application:test,db_config_name:main,line:/db/migrate/20210603233011_regular_migration_with_five_second_query.rb:5:in `up'*/","calls":1,"total_time":0.001363,"max_time":0.001363,"mean_time":0.001363,"rows":0},{"query":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","calls":1,"total_time":0.001263,"max_time":0.001263,"mean_time":0.001263,"rows":0}]} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/RegularMigrationWithFiveSecondQuery/migration.log b/notifier/spec/fixtures/migration-testing/v4/sec/up/RegularMigrationWithFiveSecondQuery/migration.log new file mode 100644 index 00000000..4b1b5889 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/RegularMigrationWithFiveSecondQuery/migration.log @@ -0,0 +1,20 @@ +# Logfile created on 2022-09-30 21:33:29 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:33:30.195671 #388] DEBUG -- :  (40.5ms) SELECT pg_try_advisory_lock(3005434223539248480) +D, [2022-09-30T21:33:30.196204 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:30.277394 #388] DEBUG -- :  (80.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:30.281889 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +I, [2022-09-30T21:33:30.442151 #388] INFO -- : Migrating to RegularMigrationWithFiveSecondQuery (20210603233011) +D, [2022-09-30T21:33:30.485284 #388] DEBUG -- : TRANSACTION (40.6ms) BEGIN /*application:test,db_config_name:main,line:/db/migrate/20210603233011_regular_migration_with_five_second_query.rb:5:in `up'*/ +D, [2022-09-30T21:33:30.486269 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:35.533863 #388] DEBUG -- :  (5047.0ms) SELECT pg_sleep(5); /*application:test,db_config_name:main,line:/db/migrate/20210603233011_regular_migration_with_five_second_query.rb:5:in `up'*/ +D, [2022-09-30T21:33:35.534806 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:35.577515 #388] DEBUG -- : ActiveRecord::SchemaMigration Create (40.6ms) INSERT INTO "schema_migrations" ("version") VALUES ('20210603233011') RETURNING "version" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/ +D, [2022-09-30T21:33:35.578572 #388] DEBUG -- : ↳ lib/gitlab/database.rb:332:in `block in transaction' +D, [2022-09-30T21:33:35.620072 #388] DEBUG -- : TRANSACTION (40.5ms) COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/ +D, [2022-09-30T21:33:35.620627 #388] DEBUG -- : ↳ lib/gitlab/database.rb:365:in `commit' +D, [2022-09-30T21:33:35.663041 #388] DEBUG -- : ActiveRecord::InternalMetadata Load (40.6ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:35.663807 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:35.706028 #388] DEBUG -- :  (40.8ms) SELECT pg_advisory_unlock(3005434223539248480) +D, [2022-09-30T21:33:35.706643 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:35.908427 #388] DEBUG -- :  (160.1ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:33:35.908885 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/RegularMigrationWithFiveSecondQuery/query-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/RegularMigrationWithFiveSecondQuery/query-details.json new file mode 100644 index 00000000..0084e5b1 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/RegularMigrationWithFiveSecondQuery/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:29.451870+00:00","end_time":"2022-09-30T21:33:29.492976+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'schema_migrations' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:29.493361+00:00","end_time":"2022-09-30T21:33:29.534124+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'ar_internal_metadata' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:29.534435+00:00","end_time":"2022-09-30T21:33:29.574942+00:00","sql":"SELECT current_database()","binds":[]},{"start_time":"2022-09-30T21:33:29.822702+00:00","end_time":"2022-09-30T21:33:29.863142+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:29.863687+00:00","end_time":"2022-09-30T21:33:29.904198+00:00","sql":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:29.904752+00:00","end_time":"2022-09-30T21:33:29.945406+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:29.945988+00:00","end_time":"2022-09-30T21:33:29.986609+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:29.989460+00:00","end_time":"2022-09-30T21:33:30.030042+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:30.030753+00:00","end_time":"2022-09-30T21:33:30.072524+00:00","sql":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:30.073275+00:00","end_time":"2022-09-30T21:33:30.113875+00:00","sql":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:30.154359+00:00","end_time":"2022-09-30T21:33:30.196353+00:00","sql":"SELECT pg_try_advisory_lock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:30.197266+00:00","end_time":"2022-09-30T21:33:30.282135+00:00","sql":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:30.444591+00:00","end_time":"2022-09-30T21:33:30.486547+00:00","sql":"BEGIN /*application:test,db_config_name:main,line:/db/migrate/20210603233011_regular_migration_with_five_second_query.rb:5:in `up'*/","binds":[]},{"start_time":"2022-09-30T21:33:30.486706+00:00","end_time":"2022-09-30T21:33:35.535003+00:00","sql":"SELECT pg_sleep(5); /*application:test,db_config_name:main,line:/db/migrate/20210603233011_regular_migration_with_five_second_query.rb:5:in `up'*/","binds":[]},{"start_time":"2022-09-30T21:33:35.536790+00:00","end_time":"2022-09-30T21:33:35.578739+00:00","sql":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ('20210603233011') RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:332:in `block in transaction'*/","binds":[]},{"start_time":"2022-09-30T21:33:35.579492+00:00","end_time":"2022-09-30T21:33:35.620771+00:00","sql":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","binds":[]},{"start_time":"2022-09-30T21:33:35.622308+00:00","end_time":"2022-09-30T21:33:35.663962+00:00","sql":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:35.665081+00:00","end_time":"2022-09-30T21:33:35.706808+00:00","sql":"SELECT pg_advisory_unlock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:35.748200+00:00","end_time":"2022-09-30T21:33:35.909050+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/RegularMigrationWithFiveSecondQuery/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/RegularMigrationWithFiveSecondQuery/transaction-duration.json new file mode 100644 index 00000000..3980b0df --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/RegularMigrationWithFiveSecondQuery/transaction-duration.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:30.443283+00:00","end_time":"2022-09-30T21:33:35.620938+00:00","transaction_type":"real_transaction"}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/TmpIdxNullMemberNamespaceId/migration-stats.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/TmpIdxNullMemberNamespaceId/migration-stats.json new file mode 100644 index 00000000..6e736b6e --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/TmpIdxNullMemberNamespaceId/migration-stats.json @@ -0,0 +1 @@ +{"version": {"timestamp": 20220929081645},"name":"TmpIdxNullMemberNamespaceId","walltime":56.26328295469284,"success":true,"total_database_size_change":32768,"query_statistics":[{"query":"CREATE INDEX CONCURRENTLY \"tmp_index_for_null_member_namespace_id\" ON \"members\" (\"member_namespace_id\") WHERE member_namespace_id IS NULL /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:167:in `block in add_concurrent_index'*/","calls":1,"total_time":53779.06386,"max_time":53779.06386,"mean_time":53779.06386,"rows":0},{"query":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","calls":1,"total_time":180.96428,"max_time":180.96428,"mean_time":180.96428,"rows":1},{"query":"SELECT distinct i.relname, d.indisunique, d.indkey, pg_get_indexdef(d.indexrelid), t.oid,\n pg_catalog.obj_description(i.oid, $1) AS comment\nFROM pg_class t\nINNER JOIN pg_index d ON t.oid = d.indrelid\nINNER JOIN pg_class i ON d.indexrelid = i.oid\nLEFT JOIN pg_namespace n ON n.oid = i.relnamespace\nWHERE i.relkind IN ($2, $3)\n AND d.indisprimary = $4\n AND t.relname = $5\n AND n.nspname = ANY (current_schemas($6))\nORDER BY i.relname","calls":1,"total_time":85.186377,"max_time":85.186377,"mean_time":85.186377,"rows":15},{"query":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":59.795096,"max_time":59.795096,"mean_time":59.795096,"rows":5391},{"query":"SELECT \"postgres_async_indexes\".* FROM \"postgres_async_indexes\" WHERE \"postgres_async_indexes\".\"name\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/async_indexes/migration_helpers.rb:24:in `unprepare_async_index_by_name'*/","calls":1,"total_time":16.03073,"max_time":16.03073,"mean_time":16.03073,"rows":0},{"query":"SELECT a.attname, format_type(a.atttypid, a.atttypmod),\n pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,\n c.collname, col_description(a.attrelid, a.attnum) AS comment\n FROM pg_attribute a\n LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum\n LEFT JOIN pg_type t ON a.atttypid = t.oid\n LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation \u003c\u003e t.typcollation\n WHERE a.attrelid = $1::regclass\n AND a.attnum \u003e $2 AND NOT a.attisdropped\n ORDER BY a.attnum","calls":1,"total_time":0.840814,"max_time":0.840814,"mean_time":0.840814,"rows":6},{"query":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = $1\nAND a.attnum IN ($2)","calls":10,"total_time":0.28581700000000004,"max_time":0.035806000000000004,"mean_time":0.028581699999999998,"rows":10},{"query":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas($1)) AND c.relname = $2 AND c.relkind IN ($3,$4)","calls":5,"total_time":0.183634,"max_time":0.041876,"mean_time":0.0367268,"rows":5},{"query":"select pg_stat_statements_reset() /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/query_statistics.rb:16:in `before'*/","calls":1,"total_time":0.152181,"max_time":0.152181,"mean_time":0.152181,"rows":1},{"query":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = $1\nAND a.attnum IN ($2,$3)","calls":4,"total_time":0.144064,"max_time":0.039062,"mean_time":0.036016,"rows":8},{"query":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.084097,"max_time":0.084097,"mean_time":0.084097,"rows":10},{"query":"SELECT current_database()","calls":1,"total_time":0.067666,"max_time":0.067666,"mean_time":0.067666,"rows":1},{"query":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ($1) RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/","calls":1,"total_time":0.052521,"max_time":0.052521,"mean_time":0.052521,"rows":1},{"query":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.038282,"max_time":0.038282,"mean_time":0.038282,"rows":0},{"query":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = $1\nAND a.attnum IN ($2,$3,$4)","calls":1,"total_time":0.037499000000000005,"max_time":0.037499000000000005,"mean_time":0.037499000000000005,"rows":3},{"query":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.034489,"max_time":0.034489,"mean_time":0.034489,"rows":0},{"query":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.029674,"max_time":0.029674,"mean_time":0.029674,"rows":0},{"query":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = $1 LIMIT $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.027301,"max_time":0.027301,"mean_time":0.027301,"rows":1},{"query":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.026636,"max_time":0.026636,"mean_time":0.026636,"rows":0},{"query":"SELECT $1 FROM pg_proc WHERE proname = $2 /*application:test,db_config_name:main,line:/lib/gitlab/database/schema_helpers.rb:20:in `function_exists?'*/","calls":1,"total_time":0.023149000000000003,"max_time":0.023149000000000003,"mean_time":0.023149000000000003,"rows":1},{"query":"set client_encoding to 'UTF8'","calls":1,"total_time":0.022824,"max_time":0.022824,"mean_time":0.022824,"rows":0},{"query":"set client_encoding to 'unicode'","calls":1,"total_time":0.019712,"max_time":0.019712,"mean_time":0.019712,"rows":0},{"query":"RESET statement_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:390:in `disable_statement_timeout'*/","calls":1,"total_time":0.016431,"max_time":0.016431,"mean_time":0.016431,"rows":0},{"query":"SET statement_timeout TO 0 /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:386:in `disable_statement_timeout'*/","calls":1,"total_time":0.015589,"max_time":0.015589,"mean_time":0.015589,"rows":0},{"query":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.014418,"max_time":0.014418,"mean_time":0.014418,"rows":0},{"query":"SELECT pg_try_advisory_lock($1)","calls":1,"total_time":0.013251,"max_time":0.013251,"mean_time":0.013251,"rows":1},{"query":"SELECT pg_advisory_unlock($1)","calls":1,"total_time":0.011916000000000001,"max_time":0.011916000000000001,"mean_time":0.011916000000000001,"rows":1},{"query":"SHOW max_identifier_length","calls":1,"total_time":0.008305,"max_time":0.008305,"mean_time":0.008305,"rows":0},{"query":"SHOW statement_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:1624:in `statement_timeout_disabled?'*/","calls":1,"total_time":0.00769,"max_time":0.00769,"mean_time":0.00769,"rows":0},{"query":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","calls":1,"total_time":0.006644,"max_time":0.006644,"mean_time":0.006644,"rows":0},{"query":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/","calls":1,"total_time":0.00223,"max_time":0.00223,"mean_time":0.00223,"rows":0},{"query":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","calls":1,"total_time":0.002089,"max_time":0.002089,"mean_time":0.002089,"rows":0}]} diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/TmpIdxNullMemberNamespaceId/migration.log b/notifier/spec/fixtures/migration-testing/v4/sec/up/TmpIdxNullMemberNamespaceId/migration.log new file mode 100644 index 00000000..b8f4c9bd --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/TmpIdxNullMemberNamespaceId/migration.log @@ -0,0 +1,28 @@ +# Logfile created on 2022-09-30 21:33:44 +0000 by logger.rb/v1.4.2 +D, [2022-09-30T21:33:45.135577 #388] DEBUG -- :  (45.4ms) SELECT pg_try_advisory_lock(3005434223539248480) +D, [2022-09-30T21:33:45.136099 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:33:45.279908 #388] DEBUG -- :  (142.5ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:33:45.280609 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +I, [2022-09-30T21:33:45.291603 #388] INFO -- : Migrating to TmpIdxNullMemberNamespaceId (20220929081645) +D, [2022-09-30T21:33:46.129712 #388] DEBUG -- :  (40.8ms) SHOW statement_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:1624:in `statement_timeout_disabled?'*/ +D, [2022-09-30T21:33:46.130331 #388] DEBUG -- : ↳ lib/gitlab/database/migration_helpers.rb:1624:in `statement_timeout_disabled?' +D, [2022-09-30T21:33:46.172802 #388] DEBUG -- :  (41.2ms) SET statement_timeout TO 0 /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:386:in `disable_statement_timeout'*/ +D, [2022-09-30T21:33:46.173575 #388] DEBUG -- : ↳ lib/gitlab/database/migration_helpers.rb:386:in `disable_statement_timeout' +D, [2022-09-30T21:34:40.038279 #388] DEBUG -- :  (53820.8ms) CREATE INDEX CONCURRENTLY "tmp_index_for_null_member_namespace_id" ON "members" ("member_namespace_id") WHERE member_namespace_id IS NULL /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:167:in `block in add_concurrent_index'*/ +D, [2022-09-30T21:34:40.039074 #388] DEBUG -- : ↳ lib/gitlab/database/migration_helpers.rb:167:in `block in add_concurrent_index' +D, [2022-09-30T21:34:40.081906 #388] DEBUG -- :  (41.3ms) RESET statement_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:390:in `disable_statement_timeout'*/ +D, [2022-09-30T21:34:40.082607 #388] DEBUG -- : ↳ lib/gitlab/database/migration_helpers.rb:390:in `disable_statement_timeout' +D, [2022-09-30T21:34:40.310615 #388] DEBUG -- : Gitlab::Database::AsyncIndexes::PostgresAsyncIndex Load (80.4ms) SELECT "postgres_async_indexes".* FROM "postgres_async_indexes" WHERE "postgres_async_indexes"."name" = 'tmp_index_for_null_member_namespace_id' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/async_indexes/migration_helpers.rb:24:in `unprepare_async_index_by_name'*/ +D, [2022-09-30T21:34:40.311324 #388] DEBUG -- : ↳ lib/gitlab/database/async_indexes/migration_helpers.rb:24:in `unprepare_async_index_by_name' +D, [2022-09-30T21:34:40.357701 #388] DEBUG -- : TRANSACTION (43.2ms) BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/ +D, [2022-09-30T21:34:40.358873 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction' +D, [2022-09-30T21:34:40.400061 #388] DEBUG -- : ActiveRecord::SchemaMigration Create (40.7ms) INSERT INTO "schema_migrations" ("version") VALUES ('20220929081645') RETURNING "version" /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/ +D, [2022-09-30T21:34:40.401029 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction' +D, [2022-09-30T21:34:40.442937 #388] DEBUG -- : TRANSACTION (41.0ms) COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/ +D, [2022-09-30T21:34:40.443461 #388] DEBUG -- : ↳ lib/gitlab/database.rb:365:in `commit' +D, [2022-09-30T21:34:40.486712 #388] DEBUG -- : ActiveRecord::InternalMetadata Load (41.6ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/ +D, [2022-09-30T21:34:40.487430 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:34:40.530962 #388] DEBUG -- :  (42.2ms) SELECT pg_advisory_unlock(3005434223539248480) +D, [2022-09-30T21:34:40.531455 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run' +D, [2022-09-30T21:34:40.795653 #388] DEBUG -- :  (221.5ms) select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/ +D, [2022-09-30T21:34:40.796139 #388] DEBUG -- : ↳ lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size' diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/TmpIdxNullMemberNamespaceId/query-details.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/TmpIdxNullMemberNamespaceId/query-details.json new file mode 100644 index 00000000..bc097648 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/TmpIdxNullMemberNamespaceId/query-details.json @@ -0,0 +1 @@ +[{"start_time":"2022-09-30T21:33:44.387478+00:00","end_time":"2022-09-30T21:33:44.429448+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'schema_migrations' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:44.429864+00:00","end_time":"2022-09-30T21:33:44.471054+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'ar_internal_metadata' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:33:44.471356+00:00","end_time":"2022-09-30T21:33:44.512478+00:00","sql":"SELECT current_database()","binds":[]},{"start_time":"2022-09-30T21:33:44.759399+00:00","end_time":"2022-09-30T21:33:44.800004+00:00","sql":"SET client_min_messages TO 'warning' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:44.800598+00:00","end_time":"2022-09-30T21:33:44.841204+00:00","sql":"SET standard_conforming_strings = on /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:44.841770+00:00","end_time":"2022-09-30T21:33:44.882230+00:00","sql":"SET intervalstyle = iso_8601 /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:44.882826+00:00","end_time":"2022-09-30T21:33:44.923504+00:00","sql":"SET SESSION statement_timeout TO '120s' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:44.924159+00:00","end_time":"2022-09-30T21:33:44.964798+00:00","sql":"SET SESSION timezone TO 'UTC' /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:44.965556+00:00","end_time":"2022-09-30T21:33:45.008050+00:00","sql":"SELECT t.oid, t.typname\nFROM pg_type as t\nWHERE t.typname IN ('int2', 'int4', 'int8', 'oid', 'float4', 'float8', 'numeric', 'bool', 'timestamp', 'timestamptz')\n /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:45.008859+00:00","end_time":"2022-09-30T21:33:45.049532+00:00","sql":"SHOW TIME ZONE /*application:test,db_config_name:unknown,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:45.090111+00:00","end_time":"2022-09-30T21:33:45.136276+00:00","sql":"SELECT pg_try_advisory_lock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:33:45.137264+00:00","end_time":"2022-09-30T21:33:45.280768+00:00","sql":"SELECT \"schema_migrations\".\"version\" FROM \"schema_migrations\" ORDER BY \"schema_migrations\".\"version\" ASC /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:33:45.295588+00:00","end_time":"2022-09-30T21:33:45.444030+00:00","sql":"SELECT distinct i.relname, d.indisunique, d.indkey, pg_get_indexdef(d.indexrelid), t.oid,\n pg_catalog.obj_description(i.oid, 'pg_class') AS comment\nFROM pg_class t\nINNER JOIN pg_index d ON t.oid = d.indrelid\nINNER JOIN pg_class i ON d.indexrelid = i.oid\nLEFT JOIN pg_namespace n ON n.oid = i.relnamespace\nWHERE i.relkind IN ('i', 'I')\n AND d.indisprimary = 'f'\n AND t.relname = 'members'\n AND n.nspname = ANY (current_schemas(false))\nORDER BY i.relname\n","binds":[]},{"start_time":"2022-09-30T21:33:45.444233+00:00","end_time":"2022-09-30T21:33:45.488460+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (8)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.488715+00:00","end_time":"2022-09-30T21:33:45.532658+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (2)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.532882+00:00","end_time":"2022-09-30T21:33:45.575201+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (15)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.575444+00:00","end_time":"2022-09-30T21:33:45.619155+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (11)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.619375+00:00","end_time":"2022-09-30T21:33:45.663044+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (12)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.663264+00:00","end_time":"2022-09-30T21:33:45.706515+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (20)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.706769+00:00","end_time":"2022-09-30T21:33:45.748906+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (21)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.749149+00:00","end_time":"2022-09-30T21:33:45.791248+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (14)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.791522+00:00","end_time":"2022-09-30T21:33:45.834678+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (3,4)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.834921+00:00","end_time":"2022-09-30T21:33:45.876948+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (5,2)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.877178+00:00","end_time":"2022-09-30T21:33:45.919370+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (5,8)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.919619+00:00","end_time":"2022-09-30T21:33:45.961725+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (5,3,4)\n","binds":[]},{"start_time":"2022-09-30T21:33:45.961976+00:00","end_time":"2022-09-30T21:33:46.003704+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (3,4)\n","binds":[]},{"start_time":"2022-09-30T21:33:46.003944+00:00","end_time":"2022-09-30T21:33:46.045665+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (1)\n","binds":[]},{"start_time":"2022-09-30T21:33:46.045893+00:00","end_time":"2022-09-30T21:33:46.087837+00:00","sql":"SELECT a.attnum, a.attname\nFROM pg_attribute a\nWHERE a.attrelid = 33541\nAND a.attnum IN (19)\n","binds":[]},{"start_time":"2022-09-30T21:33:46.088830+00:00","end_time":"2022-09-30T21:33:46.130758+00:00","sql":"SHOW statement_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:1624:in `statement_timeout_disabled?'*/","binds":[]},{"start_time":"2022-09-30T21:33:46.131525+00:00","end_time":"2022-09-30T21:33:46.174194+00:00","sql":"SET statement_timeout TO 0 /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:386:in `disable_statement_timeout'*/","binds":[]},{"start_time":"2022-09-30T21:33:46.174801+00:00","end_time":"2022-09-30T21:33:46.216560+00:00","sql":"SHOW max_identifier_length","binds":[]},{"start_time":"2022-09-30T21:33:46.217339+00:00","end_time":"2022-09-30T21:34:40.039780+00:00","sql":"CREATE INDEX CONCURRENTLY \"tmp_index_for_null_member_namespace_id\" ON \"members\" (\"member_namespace_id\") WHERE member_namespace_id IS NULL /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:167:in `block in add_concurrent_index'*/","binds":[]},{"start_time":"2022-09-30T21:34:40.040531+00:00","end_time":"2022-09-30T21:34:40.083019+00:00","sql":"RESET statement_timeout /*application:test,db_config_name:main,line:/lib/gitlab/database/migration_helpers.rb:390:in `disable_statement_timeout'*/","binds":[]},{"start_time":"2022-09-30T21:34:40.083549+00:00","end_time":"2022-09-30T21:34:40.125369+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'postgres_async_indexes' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:34:40.125647+00:00","end_time":"2022-09-30T21:34:40.180209+00:00","sql":"SELECT c.relname FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = ANY (current_schemas(false)) AND c.relname = 'postgres_async_indexes' AND c.relkind IN ('r','p')","binds":[]},{"start_time":"2022-09-30T21:34:40.183071+00:00","end_time":"2022-09-30T21:34:40.227507+00:00","sql":"SELECT a.attname, format_type(a.atttypid, a.atttypmod),\n pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,\n c.collname, col_description(a.attrelid, a.attnum) AS comment\n FROM pg_attribute a\n LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum\n LEFT JOIN pg_type t ON a.atttypid = t.oid\n LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation \u003c\u003e t.typcollation\n WHERE a.attrelid = '\"postgres_async_indexes\"'::regclass\n AND a.attnum \u003e 0 AND NOT a.attisdropped\n ORDER BY a.attnum\n","binds":[]},{"start_time":"2022-09-30T21:34:40.230038+00:00","end_time":"2022-09-30T21:34:40.312064+00:00","sql":"SELECT \"postgres_async_indexes\".* FROM \"postgres_async_indexes\" WHERE \"postgres_async_indexes\".\"name\" = 'tmp_index_for_null_member_namespace_id' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/async_indexes/migration_helpers.rb:24:in `unprepare_async_index_by_name'*/","binds":[]},{"start_time":"2022-09-30T21:34:40.314347+00:00","end_time":"2022-09-30T21:34:40.359090+00:00","sql":"BEGIN /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/","binds":[]},{"start_time":"2022-09-30T21:34:40.359232+00:00","end_time":"2022-09-30T21:34:40.401174+00:00","sql":"INSERT INTO \"schema_migrations\" (\"version\") VALUES ('20220929081645') RETURNING \"version\" /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/lock_retry_mixin.rb:36:in `ddl_transaction'*/","binds":[]},{"start_time":"2022-09-30T21:34:40.401836+00:00","end_time":"2022-09-30T21:34:40.443611+00:00","sql":"COMMIT /*application:test,db_config_name:main,line:/lib/gitlab/database.rb:365:in `commit'*/","binds":[]},{"start_time":"2022-09-30T21:34:40.444961+00:00","end_time":"2022-09-30T21:34:40.487570+00:00","sql":"SELECT \"ar_internal_metadata\".* FROM \"ar_internal_metadata\" WHERE \"ar_internal_metadata\".\"key\" = 'environment' LIMIT 1 /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/runner.rb:127:in `block (3 levels) in run'*/","binds":[]},{"start_time":"2022-09-30T21:34:40.488699+00:00","end_time":"2022-09-30T21:34:40.531590+00:00","sql":"SELECT pg_advisory_unlock(3005434223539248480)","binds":[]},{"start_time":"2022-09-30T21:34:40.573992+00:00","end_time":"2022-09-30T21:34:40.796271+00:00","sql":"select pg_database_size(current_database()) /*application:test,db_config_name:main,line:/lib/gitlab/database/migrations/observers/total_database_size_change.rb:25:in `get_total_database_size'*/","binds":[]}] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/TmpIdxNullMemberNamespaceId/transaction-duration.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/TmpIdxNullMemberNamespaceId/transaction-duration.json new file mode 100644 index 00000000..fe51488c --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/TmpIdxNullMemberNamespaceId/transaction-duration.json @@ -0,0 +1 @@ +[] diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/full-migration-output.log b/notifier/spec/fixtures/migration-testing/v4/sec/up/full-migration-output.log new file mode 100644 index 00000000..8d60d065 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/full-migration-output.log @@ -0,0 +1,89 @@ +== 20210602144718 CreateTestTable: migrating ================================== +-- create_table(:test_tables, {}) +-- quote_column_name(:title) + -> 0.0001s +-- quote_column_name(:notes) + -> 0.0000s + -> 0.2479s +-- quote_table_name("check_0770ba173a") + -> 0.0001s +-- quote_table_name("check_9cfc473dbc") + -> 0.0000s +-- quote_table_name(:test_tables) + -> 0.0000s +-- execute("ALTER TABLE \"test_tables\"\nADD CONSTRAINT \"check_0770ba173a\" CHECK (char_length(\"title\") <= 128),\nADD CONSTRAINT \"check_9cfc473dbc\" CHECK (char_length(\"notes\") <= 1024)\n") + -> 0.0600s +== 20210602144718 CreateTestTable: migrated (0.5329s) ========================= + +== 20210603233011 RegularMigrationWithFiveSecondQuery: migrating ============== +-- execute("SELECT pg_sleep(5);") + -> 5.0874s +== 20210603233011 RegularMigrationWithFiveSecondQuery: migrated (5.0876s) ===== + +main: == 20210915152743 MigrationInheritsGitlabDatabaseMigration: migrating ========= +main: -- execute("SELECT 'up'") +main: -> 0.0847s +main: == 20210915152743 MigrationInheritsGitlabDatabaseMigration: migrated (0.0852s) + +main: == 20220223163519 EnsureGitlabComInMigrations: migrating ====================== +main: == 20220223163519 EnsureGitlabComInMigrations: migrated (0.0000s) ============= + +main: == 20220318174439 QueueTestBackgroundMigration: migrating ===================== +main: == 20220318174439 QueueTestBackgroundMigration: migrated (0.6058s) ============ + +main: == 20221011184436 QueueTestBatchedBackgroundMigrationMain: migrating ========== +main: == 20221011184436 QueueTestBatchedBackgroundMigrationMain: migrated (0.9975s) = + +main: == 20221011184500 QueueTestBatchedBackgroundMigrationCi: migrating ============ +main: -- The migration is skipped since it modifies the schemas: [:gitlab_ci]. +main: -- This database can only apply migrations in one of the following schemas: [:gitlab_main, :gitlab_shared, :gitlab_internal, :gitlab_pm]. +main: == 20221011184500 QueueTestBatchedBackgroundMigrationCi: migrated (0.0003s) === + +main: == 20221026095133 AddStatusUpdatedAtToContainerRepository: migrating ========== +main: -- add_column(:container_repositories, :status_updated_at, :datetime_with_timezone) +main: -> 0.1016s +main: == 20221026095133 AddStatusUpdatedAtToContainerRepository: migrated (0.1020s) = + +main: == 20221130142531 CreateEfficientlyOrderedColumnsTable: migrating ============= +main: -- create_table(:efficiently_ordered_columns_tables, {}) +main: -> 0.0965s +main: == 20221130142531 CreateEfficientlyOrderedColumnsTable: migrated (0.0970s) ==== + +main: == 20221130142617 CreateInefficientlyOrderedColumnsTable: migrating =========== +main: -- create_table(:inefficiently_ordered_columns_tables, {}) +main: -> 0.0908s +main: == 20221130142617 CreateInefficientlyOrderedColumnsTable: migrated (0.0912s) == + +== 20210604232017 DropTestTable: migrating ==================================== +-- drop_table(:test_tables) + -> 0.1116s +== 20210604232017 DropTestTable: migrated (0.1119s) =========================== + +main: == 20221125222221 AddMetricsIndexToAuthenticationEvents: migrating ============ +main: -- transaction_open?() +main: -> 0.0000s +main: -- view_exists?(:postgres_partitions) +main: -> 0.0426s +main: -- index_exists?(:authentication_events, [:user_id, :provider, :created_at], {:where=>"result = 1", :name=>"index_successful_authentication_events_for_metrics", :algorithm=>:concurrently}) +main: -> 0.1753s +main: -- execute("SET statement_timeout TO 0") +main: -> 0.0419s +main: -- add_index(:authentication_events, [:user_id, :provider, :created_at], {:where=>"result = 1", :name=>"index_successful_authentication_events_for_metrics", :algorithm=>:concurrently}) +main: -> 446.3712s +main: -- execute("RESET statement_timeout") +main: -> 0.0428s +main: == 20221125222221 AddMetricsIndexToAuthenticationEvents: migrated (446.9628s) = + +main: == 20221125222341 RemoveResultIndexFromAuthenticationEvents: migrating ======== +main: -- transaction_open?() +main: -> 0.0000s +main: -- view_exists?(:postgres_partitions) +main: -> 0.0430s +main: -- indexes(:authentication_events) +main: -> 0.2188s +main: -- remove_index(:authentication_events, {:algorithm=>:concurrently, :name=>"index_authentication_events_on_provider_user_id_created_at"}) +main: -> 0.1195s +main: == 20221125222341 RemoveResultIndexFromAuthenticationEvents: migrated (0.6026s) + +== 20990604233157 MigrationThrowsException: migrating ========================= +-- RuntimeError("This throws an exception") diff --git a/notifier/spec/fixtures/migration-testing/v4/sec/up/metadata.json b/notifier/spec/fixtures/migration-testing/v4/sec/up/metadata.json new file mode 100644 index 00000000..f78631d2 --- /dev/null +++ b/notifier/spec/fixtures/migration-testing/v4/sec/up/metadata.json @@ -0,0 +1 @@ +{"database":"sec","version":4} \ No newline at end of file diff --git a/notifier/spec/migration_failure_notice_spec.rb b/notifier/spec/migration_failure_notice_spec.rb index 5c098abf..ee0af814 100644 --- a/notifier/spec/migration_failure_notice_spec.rb +++ b/notifier/spec/migration_failure_notice_spec.rb @@ -25,7 +25,7 @@ RSpec.describe MigrationFailureNotice do it 'renders the comment for fixtures' do if ENV['RECAPTURE_END_TO_END_RESULTS'] File.open(expected_migration_failure_notice, 'wb+') do |io| - io << subject + io << subject.render end end -- GitLab From a6fbd159d8620f07406c0d2a8af6d47a19f21577 Mon Sep 17 00:00:00 2001 From: Jon Jenkins Date: Thu, 8 May 2025 13:51:44 -0500 Subject: [PATCH 6/6] Make linter happy --- notifier/multi_db_result.rb | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/notifier/multi_db_result.rb b/notifier/multi_db_result.rb index 17ad0799..78325a37 100644 --- a/notifier/multi_db_result.rb +++ b/notifier/multi_db_result.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class MultiDbResult - DB_DISPLAY_ORDER = ["main", "ci", "sec"] + DB_DISPLAY_ORDER = %w[main ci sec].freeze def self.from_directory(database_testing_path) migrations_file = File.join(database_testing_path, 'migrations.json') @@ -17,10 +17,9 @@ class MultiDbResult # We want the results to appear per DB in the specified order on the comment, # and if any unknown ones are present, we raise an error. - if DB_DISPLAY_ORDER.sort != per_db_results.keys.sort - raise "unknown database in per_db_results" - end - per_db_results = DB_DISPLAY_ORDER.map { |k| [k, per_db_results[k]] }.to_h + raise "unknown database in per_db_results" if DB_DISPLAY_ORDER.sort != per_db_results.keys.sort + + per_db_results = DB_DISPLAY_ORDER.to_h { |k| [k, per_db_results[k]] } MultiDbResult.new(per_db_results) end -- GitLab