It was possible for a deadline timeout to arrive at the connection pool and for the deadline to be current in the holder but the client to checkin the connection holder before the pool deleted the holder for disconnect. This leads to an ETS-TRANSFER message with the deleted holder being handled by the pool and added to the queue. Therefore we check holders exist before checking in, and crash if we get in a inconsistent due to a future bug.
It was possible for a deadline timeout to arrive at the connection pool and for the deadline to be current in the holder but the client to checkin the connection holder before the pool deleted the holder for disconnect. This leads to an
ETS-TRANSFER
message with the deleted holder being handled by the pool and added to the queue. Therefore we check holders exist before checking in, and crash if we get in a inconsistent due to a future bug.