Repository navigation
v1.0.0-rc.7
Pre-releaseFixed
-
A failed connection attempt (wrong password) no longer poisons the pool
cache: deadpool-postgres connects lazily, so a pool built with a wrong
password was cached before the handshake was tested, and the cache key
excluded the password, so the next request with the correct password
reused the poisoned pool and failed until the 600s idle sweep dropped
it. Three layered fixes: (1)get_pool_clientevicts the cache entry
onpool.get()failure, (2)connection_keyfolds a SHA-256 hash of
the password so different passwords get distinct pools, (3)
format_pg_errorreturns just theseverity: messageline instead of
the fulltokio_postgres::ErrorDebug dump that Tabularis showed
verbatim in its password prompt (#132). -
When
connection_stringis set, the pool cache key now folds in a
SHA-256 hash of the connection string (which carries the password) so
two strings differing only by password get distinct pools, and TLS
params + startup_script remain in the key sincebuild_poolreads
them unconditionally even whenconnection_stringis set (#134). -
Non-object JSON-RPC input (arrays, numbers, strings, bools, null) now
returns a-32600 Invalid Requestresponse instead of being silently
swallowed as a notification, which caused the client to hang (#135). -
Invalid JSON-RPC objects missing a string
methodfield (e.g.{}or
{"id":1}) now return-32600 Invalid Requestinstead of being
silently swallowed as a notification (noid) or returning a
misleading-32601 Method Not Found(hasid) (#137).