Skip to content

Exclude Geo secondary from "make truncate-legacy-tables"

What does this merge request do and why?

Fixes this error, which occurs when updating a secondary Geo GDK site:

I, [2023-07-31T15:02:26.945050 #71137]  INFO -- : TRUNCATE TABLE ci_build_needs, ci_build_pending_states, ci_build_report_results, ci_build_trace_chunks, ci_build_trace_metadata RESTRICT
rake aborted!
ActiveRecord::StatementInvalid: PG::ReadOnlySqlTransaction: ERROR:  cannot execute TRUNCATE TABLE in a read-only transaction
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127:in `public_send'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127:in `block in write_using_load_balancer'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/load_balancer.rb:133:in `block in read_write'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/load_balancer.rb:204:in `retry_with_backoff'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/load_balancer.rb:122:in `read_write'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:126:in `write_using_load_balancer'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:96:in `method_missing'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/tables_truncate.rb:125:in `block (3 levels) in truncate_tables_in_batches'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/tables_truncate.rb:125:in `each'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/tables_truncate.rb:125:in `block (2 levels) in truncate_tables_in_batches'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127:in `public_send'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127:in `block in write_using_load_balancer'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/load_balancer.rb:133:in `block in read_write'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/load_balancer.rb:204:in `retry_with_backoff'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/load_balancer.rb:122:in `read_write'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:126:in `write_using_load_balancer'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:78:in `transaction'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/tables_truncate.rb:124:in `block in truncate_tables_in_batches'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/tables_truncate.rb:110:in `each'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/tables_truncate.rb:110:in `truncate_tables_in_batches'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/tables_truncate.rb:63:in `execute'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/tasks/gitlab/db/truncate_legacy_tables.rake:15:in `block (4 levels) in <main>'
/Users/mkozonogitlab/.asdf/installs/ruby/3.1.4/bin/bundle:25:in `load'
/Users/mkozonogitlab/.asdf/installs/ruby/3.1.4/bin/bundle:25:in `<main>'

Caused by:
PG::ReadOnlySqlTransaction: ERROR:  cannot execute TRUNCATE TABLE in a read-only transaction
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127:in `public_send'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127:in `block in write_using_load_balancer'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/load_balancer.rb:133:in `block in read_write'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/load_balancer.rb:204:in `retry_with_backoff'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/load_balancer.rb:122:in `read_write'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:126:in `write_using_load_balancer'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:96:in `method_missing'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/tables_truncate.rb:125:in `block (3 levels) in truncate_tables_in_batches'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/tables_truncate.rb:125:in `each'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/tables_truncate.rb:125:in `block (2 levels) in truncate_tables_in_batches'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127:in `public_send'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:127:in `block in write_using_load_balancer'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/load_balancer.rb:133:in `block in read_write'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/load_balancer.rb:204:in `retry_with_backoff'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/load_balancer.rb:122:in `read_write'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:126:in `write_using_load_balancer'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:78:in `transaction'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/tables_truncate.rb:124:in `block in truncate_tables_in_batches'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/tables_truncate.rb:110:in `each'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/tables_truncate.rb:110:in `truncate_tables_in_batches'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/gitlab/database/tables_truncate.rb:63:in `execute'
/Users/mkozonogitlab/Developer/gdk2/gitlab/lib/tasks/gitlab/db/truncate_legacy_tables.rake:15:in `block (4 levels) in <main>'
/Users/mkozonogitlab/.asdf/installs/ruby/3.1.4/bin/bundle:25:in `load'
/Users/mkozonogitlab/.asdf/installs/ruby/3.1.4/bin/bundle:25:in `<main>'
Tasks: TOP => gitlab:db:truncate_legacy_tables:main
(See full trace by running task with --trace)
make: *** [do-truncate] Error 1

Resolves #1906 (closed)

How to set up and validate locally

Numbered steps to set up and validate the change are strongly suggested.

  1. Set up Geo
  2. Change directory to the secondary GDK
  3. Change to this branch
  4. make truncate-legacy-tables

Impacted categories

The following categories relate to this merge request:

Merge request checklist

  • This change is backward compatible. If not, please include steps to communicate to our users.
  • [-] Tests added for new functionality. If not, please raise an issue to follow-up.
  • [-] Documentation added/updated, if needed.
  • [-] Announcement added, if change is notable.
  • [-] gdk doctor test added, if needed.
  • [-] Add the ~highlight label if this MR should be included in the CHANGELOG.md.
Edited by Michael Kozono

Merge request reports