IssuePlacementWorker: schedule rebalancing on timeout
We are seeing a number of issue-placement jobs failing due to query-timeout. This can happen for a number of reasons, but one that we know is important is unbalanced issue positions (large clumps, especially at the end of the range). We may wish to schedule rebalancing if the queries timeout, and it would be best to do this only after exhausting any retries
https://sentry.gitlab.net/gitlab/gitlabcom/issues/1811184/?referrer=gitlab_plugin
PG::QueryCanceled: ERROR: canceling statement due to statement timeout
active_record/connection_adapters/postgresql_adapter.rb:675:in `exec_params'
@connection.exec_params(sql, type_casted_binds)
active_record/connection_adapters/postgresql_adapter.rb:675:in `block (2 levels) in exec_no_cache'
@connection.exec_params(sql, type_casted_binds)
active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
yield
active_support/concurrency/share_lock.rb:187:in `yield_shares'
yield
active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
@lock.yield_shares(compatible: [:load]) do
...
(99 additional frame(s) were not displayed)
ActiveRecord::QueryCanceled: PG::QueryCanceled: ERROR: canceling statement due to statement timeout
PG::QueryCanceled: ERROR: canceling statement due to statement timeout