Summary:
Different postgres processes could send the same query to master to fetch postgres catalog data.
We have an optimisation to send only one request to master, and share its result other queries using PgResponseCache.
But since waiting on result is blocking, we could get into situation where all threads are waiting on response cache, so no other threads could process RPC requests, which results in deadlock.
Jira: DB-16947
Original commit: f960a4a1c7f5edf66d40867fe308ec54f8509141 / D44362
Test Plan: PgLibpqTest.ManyYsqlConnections
Reviewers: dmitry, rthallam
Reviewed By: dmitry
Subscribers: ybase, yql
Tags: #jenkins-ready
Differential Revision: https://phorge.dev.yugabyte.com/D44630