Skip to content

2.27.0.0-b170

@rahulb-yb rahulb-yb tagged this 02 Jun 00:25
Summary:
There was a regression introduced after landing D41652, which was caught by running Jepsen tests being run with Connection Manager. This failure was noticed with connection manager even before this diff landed, but was fixed as a part of D39451.

This diff provides the equivalent of the jepsen test failure fix when run with Connection Manager as implemented in D39451. The reason we need another fix is because of the shift in logic around when the reset phase occurs when using connection manager, which was introduced in D41652. We depend on the reset phase query to understand whether the backend is in an erroneous state of still being in a transaction at the time of detach, depending on which connection manager understands to evict this backend process from the pool.

Since the reset phase now happens at the time of attach (as opposed to occurring at the time of detach before D41652), we need to add equivalent logic to evict the currently picked up connection during this newly introduced reset phase, while also adding an internal retry to pick up a different server connection and go through the steps of setting it up to be eventually used by the client.

TLDR: This diff acts as a hot fix providing the same functionality as D39451 which is now shifted to take place at the time of connection attach after landing D41652;  it was missed to be implemented as a part of D41652.

Jira: DB-16581

Test Plan: verify that the jepsen test failures have been mitigated using a custom build using this diff

Reviewers: skumar, mkumar, #db-approvers

Reviewed By: skumar, mkumar, #db-approvers

Subscribers: svc_phabricator, yql

Differential Revision: https://phorge.dev.yugabyte.com/D43804
Assets 2
Loading