Geo: Enabling `load_balancing` is incompatible with the Geo tracking DB

Steps to reproduce:

  1. Add a few hosts to the load_balancing section in database.yml
  2. In a Rails console on a Geo secondary, run Geo::MetricsUpdateService.new.execute
  3. You'll see:
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  relation "event_log_states" does not exist
LINE 1: SELECT  "event_log_states".* FROM "event_log_states"  ORDER ...
                                          ^
: SELECT  "event_log_states".* FROM "event_log_states"  ORDER BY "event_log_states"."event_id" DESC LIMIT 1
        from /opt/gitlab/embedded/lib/ruby/gems/2.4.0/gems/peek-pg-1.3.0/lib/peek/views/pg.rb:17:in `async_exec'
        from /opt/gitlab/embedded/lib/ruby/gems/2.4.0/gems/peek-pg-1.3.0/lib/peek/views/pg.rb:17:in `async_exec'
        from /opt/gitlab/embedded/lib/ruby/gems/2.4.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/postgresql_adapter.rb:592:in `block in exec_no_cache'
        from /opt/gitlab/embedded/lib/ruby/gems/2.4.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract_adapter.rb:484:in `block in log'
        from /opt/gitlab/embedded/lib/ruby/gems/2.4.0/gems/activesupport-4.2.10/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
        from /opt/gitlab/embedded/lib/ruby/gems/2.4.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract_adapter.rb:478:in `log'
        from /opt/gitlab/embedded/lib/ruby/gems/2.4.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/postgresql_adapter.rb:592:in `exec_no_cache'
        from /opt/gitlab/embedded/lib/ruby/gems/2.4.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/postgresql_adapter.rb:584:in `execute_and_clear'
        from /opt/gitlab/embedded/lib/ruby/gems/2.4.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/postgresql/database_statements.rb:160:in `exec_query'
        from /opt/gitlab/embedded/lib/ruby/gems/2.4.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract/database_statements.rb:356:in `select'
        from /opt/gitlab/embedded/lib/ruby/gems/2.4.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract/database_statements.rb:32:in `select_all'
        from /opt/gitlab/embedded/lib/ruby/gems/2.4.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract/query_cache.rb:70:in `select_all'
        from /opt/gitlab/embedded/service/gitlab-rails/ee/lib/gitlab/database/load_balancing/connection_proxy.rb:61:in `block in read_using_load_balancer'
        from /opt/gitlab/embedded/service/gitlab-rails/ee/lib/gitlab/database/load_balancing/load_balancer.rb:66:in `block in read_write'
        from /opt/gitlab/embedded/service/gitlab-rails/ee/lib/gitlab/database/load_balancing/load_balancer.rb:116:in `retry_with_backoff'
        from /opt/gitlab/embedded/service/gitlab-rails/ee/lib/gitlab/database/load_balancing/load_balancer.rb:65:in `read_write'
... 11 levels...
        from /opt/gitlab/embedded/service/gitlab-rails/ee/app/models/geo_node_status.rb:199:in `load_secondary_data'
        from /opt/gitlab/embedded/service/gitlab-rails/ee/app/models/geo_node_status.rb:176:in `load_data_from_current_node'
        from /opt/gitlab/embedded/service/gitlab-rails/ee/app/models/geo_node_status.rb:87:in `current_node_status'
        from /opt/gitlab/embedded/service/gitlab-rails/ee/app/services/geo/node_status_fetch_service.rb:4:in `call'
        from /opt/gitlab/embedded/service/gitlab-rails/ee/app/services/geo/metrics_update_service.rb:58:in `node_status'
        from /opt/gitlab/embedded/service/gitlab-rails/ee/app/services/geo/metrics_update_service.rb:28:in `fetch_geo_node_metrics'
        from /opt/gitlab/embedded/service/gitlab-rails/ee/app/services/geo/metrics_update_service.rb:22:in `fetch_current_geo_node_metrics'
        from /opt/gitlab/embedded/service/gitlab-rails/ee/app/services/geo/metrics_update_service.rb:12:in `execute'

We should probably disable the use of the EE load balancer when talking to the Geo DB.

/cc: @yorickpeterse

Edited by Stan Hu