Remove obsolete wiki notes from self-managed instances
Blocked: This issue is blocked as we discovered a problem that needs to be validated by the groupdatabase. Comment referring to the background Migration
Summary
When removing wiki notes that were not used for GitLab.com, the change was not included for Self-Managed.
We need to remove the Obloute wiki notes from self-managed.
A user running Gitlab 14.5.2 is trying to run gitlab-rake gitlab:elastic:index
and they are getting the following error:
Index status has been reset
Setting `elasticsearch_indexing` has been enabled.
Enqueuing projects…rake aborted!
NoMethodError: undefined method `primary_key' for Wiki:Class
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:126:in `block in write_using_load_balancer'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:112:in `block in read_write'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:172:in `retry_with_backoff'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:110:in `read_write'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:125:in `write_using_load_balancer'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:95:in `method_missing'
/opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_bookkeeping_service.rb:102:in `block in maintain_indexed_associations'
/opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_bookkeeping_service.rb:120:in `block in each_indexed_association'
/opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_bookkeeping_service.rb:111:in `each'
/opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_bookkeeping_service.rb:111:in `each_indexed_association'
/opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_bookkeeping_service.rb:101:in `maintain_indexed_associations'
/opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_initial_bookkeeping_service.rb:28:in `block in backfill_projects!'
/opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_initial_bookkeeping_service.rb:25:in `each'
/opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_initial_bookkeeping_service.rb:25:in `backfill_projects!'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/gitlab/elastic.rake:35:in `block (4 levels) in <top (required)>'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/gitlab/elastic.rake:219:in `block in project_id_batches'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/gitlab/elastic.rake:217:in `project_id_batches'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/gitlab/elastic.rake:34:in `block (3 levels) in <top (required)>'
/opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/gitlab/elastic.rake:26:in `block (3 levels) in <top (required)>'
/opt/gitlab/embedded/bin/bundle:23:in `load'
/opt/gitlab/embedded/bin/bundle:23:in `<main>'
Tasks: TOP => gitlab:elastic:index_projects
(See full trace by running task with --trace)
Steps to reproduce
The version of Gitlab is 14.5.2 (GCE Instance with Machine type: n2-standard-8 - 8 vCPUs and 32 GB MEM), Elasticsearch 7.16.1 (GCE Instance with Machine type: e2-standard-2 - 2 vCPUs and 8 GB MEM + Standard persistent disk for data.)
The customer mentioned that based on their monitoring there is not Memory pressure on the Gitlab instance.
There is nothing unusual in the Global Search settings page in the Gitlab UI.
-
Uncheck Elasticsearch Indexing in the Gitlab Advanced Search UI page.
-
Remove the index with this rake task:
sudo gitlab-rake gitlab:elastic:delete_index
. -
Start a fresh indexing process by running:
sudo gitlab-rake gitlab:elastic:index
. -
Rake task fails with:
Expand to see Error
Index status has been reset Setting
elasticsearch_indexing
has been enabled. Enqueuing projects…rake aborted! NoMethodError: undefined methodprimary_key' for Wiki:Class /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:126:in
block in write_using_load_balancer' /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:112:inblock in read_write' /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:172:in
retry_with_backoff' /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:110:inread_write' /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:125:in
write_using_load_balancer' /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:95:inmethod_missing' /opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_bookkeeping_service.rb:102:in
block in maintain_indexed_associations' /opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_bookkeeping_service.rb:120:inblock in each_indexed_association' /opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_bookkeeping_service.rb:111:in
each' /opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_bookkeeping_service.rb:111:ineach_indexed_association' /opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_bookkeeping_service.rb:101:in
maintain_indexed_associations' /opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_initial_bookkeeping_service.rb:28:inblock in backfill_projects!' /opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_initial_bookkeeping_service.rb:25:in
each' /opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_initial_bookkeeping_service.rb:25:inbackfill_projects!' /opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/gitlab/elastic.rake:35:in
block (4 levels) in <top (required)>' /opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/gitlab/elastic.rake:219:inblock in project_id_batches' /opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/gitlab/elastic.rake:217:in
project_id_batches' /opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/gitlab/elastic.rake:34:inblock (3 levels) in <top (required)>' /opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/gitlab/elastic.rake:26:in
block (3 levels) in <top (required)>' /opt/gitlab/embedded/bin/bundle:23:inload' /opt/gitlab/embedded/bin/bundle:23:in
' Tasks: TOP => gitlab:elastic:index_projects (See full trace by running task with --trace)
What is the current bug behavior?
The sudo gitlab-rake gitlab:elastic:index
rake task fails with above error
What is the expected correct behavior?
The sudo gitlab-rake gitlab:elastic:index
rake task should index the Gitlab instance
Relevant logs and/or screenshots
Expand to see Error
Index status has been reset Setting
elasticsearch_indexing
has been enabled. Enqueuing projects…rake aborted! NoMethodError: undefined methodprimary_key' for Wiki:Class /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:126:in
block in write_using_load_balancer' /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:112:inblock in read_write' /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:172:in
retry_with_backoff' /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/load_balancer.rb:110:inread_write' /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:125:in
write_using_load_balancer' /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/connection_proxy.rb:95:inmethod_missing' /opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_bookkeeping_service.rb:102:in
block in maintain_indexed_associations' /opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_bookkeeping_service.rb:120:inblock in each_indexed_association' /opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_bookkeeping_service.rb:111:in
each' /opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_bookkeeping_service.rb:111:ineach_indexed_association' /opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_bookkeeping_service.rb:101:in
maintain_indexed_associations' /opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_initial_bookkeeping_service.rb:28:inblock in backfill_projects!' /opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_initial_bookkeeping_service.rb:25:in
each' /opt/gitlab/embedded/service/gitlab-rails/ee/app/services/elastic/process_initial_bookkeeping_service.rb:25:inbackfill_projects!' /opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/gitlab/elastic.rake:35:in
block (4 levels) in <top (required)>' /opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/gitlab/elastic.rake:219:inblock in project_id_batches' /opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/gitlab/elastic.rake:217:in
project_id_batches' /opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/gitlab/elastic.rake:34:inblock (3 levels) in <top (required)>' /opt/gitlab/embedded/service/gitlab-rails/ee/lib/tasks/gitlab/elastic.rake:26:in
block (3 levels) in <top (required)>' /opt/gitlab/embedded/bin/bundle:23:inload' /opt/gitlab/embedded/bin/bundle:23:in
' Tasks: TOP => gitlab:elastic:index_projects (See full trace by running task with --trace)