Geo: Query conflicts counting Wikis

Sentry errors:

  • https://sentry.gitlap.com/gitlab/gitlabcom/issues/126251/
  • https://sentry.gitlap.com/gitlab/gitlabcom/issues/140031/

In the GPRD site, we are seeing a number of cancelled queries from counting Wikis and projects:

Started GET "/" for 127.0.0.1 at 2018-03-01 05:43:16 +0000

ActiveRecord::StatementInvalid (PG::ConnectionFailure: ERROR:  server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.

CONTEXT:  Remote SQL command: CLOSE c1
: SELECT COUNT(*) FROM "project_registry" WHERE ("project_registry"."last_wiki_synced_at" IS NOT NULL) AND ("project_registry"."last_wiki_successful_sync_at" IS NOT NULL) AND "project_registry"."resync_wiki" = 'f' AND (NOT (EXISTS (SELECT 1 FROM "gitlab_secondary"."project_features" WHERE ("gitlab_secondary"."project_features"."wiki_access_level" = 0 OR "gitlab_secondary"."project_features"."wiki_access_level" IS NULL) AND "gitlab_secondary"."project_features"."project_id" = "project_registry"."project_id")))):
  /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/peek-pg-1.3.0/lib/peek/views/pg.rb:17:in `async_exec'
  /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/peek-pg-1.3.0/lib/peek/views/pg.rb:17:in `async_exec'
  /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/postgresql_adapter.rb:592:in `block in exec_no_cache'
  /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract_adapter.rb:484:in `block in log'
  /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/activesupport-4.2.10/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
  /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract_adapter.rb:478:in `log'
  /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/postgresql_adapter.rb:592:in `exec_no_cache'
  /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/postgresql_adapter.rb:584:in `execute_and_clear'
  /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/postgresql/database_statements.rb:160:in `exec_query'
  /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract/database_statements.rb:356:in `select'
  /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract/database_statements.rb:32:in `select_all'
  /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract/query_cache.rb:70:in `select_all'
  /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/activerecord-4.2.10/lib/active_record/relation/calculations.rb:270:in `execute_simple_calculation'
  /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/activerecord-4.2.10/lib/active_record/relation/calculations.rb:227:in `perform_calculation'
  /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/activerecord-4.2.10/lib/active_record/relation/calculations.rb:133:in `calculate'
  /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/activerecord-4.2.10/lib/active_record/relation/calculations.rb:48:in `count'
  /opt/gitlab/embedded/service/gitlab-rails/ee/app/finders/geo/project_registry_finder.rb:30:in `count_synced_wikis'
  /opt/gitlab/embedded/service/gitlab-rails/ee/app/models/geo_node_status.rb:149:in `load_secondary_data'
  /opt/gitlab/embedded/service/gitlab-rails/ee/app/models/geo_node_status.rb:129:in `load_data_from_current_node'
  /opt/gitlab/embedded/service/gitlab-rails/ee/app/models/geo_node_status.rb:66:in `current_node_status'
  /opt/gitlab/embedded/service/gitlab-rails/ee/lib/api/geo.rb:38:in `block (2 levels) in <class:Geo>'
  /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/grape-1.0.0/lib/grape/endpoint.rb:57:in `call'
Edited Mar 01, 2018 by Stan Hu
Assignee Loading
Time tracking Loading