Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: updating
SafeToRetry()
function to retry on wrapped errors
There is a rather unique bug when a single connection is being slammed with queries. When statement caching is enabled, and the `deallocateInvalidatedCachedStatements()` method is called to clean up, the `Pipeline.Sync()` method has the ability to error out due to the connection being in-use. `connLockError` already implements the inexplicit `SafeToRetry() bool()` interface, which is then checked by the `SafeToRetry()` function. In the event the connection is locked due to being in use, the `deallocateInvalidatedCachedStatements()` method can return a wrapped error that looks like: ``` failed to deallocate cached statement(s): conn busy ``` When the `stdlib` PGX wrapper is used, it is possible for this to not be retried, as it is also taking advantage of this `SafeToRetry()` function. In order to correct this and prevent future similar errors, the `SafeToRetry()` function has been updated to check against the wrapped errors as well.
- Loading branch information