fix: listener silent fail on replica
Update hasql-notifications to include the fix on https://github.com/diogob/hasql-notifications/issues/24. Which now reveals the following error: ``` $ postgrest-with-postgresql-16 --replica -f test/spec/fixtures/load.sql postgrest-run 17/May/2024:18:35:38 -0500: Successfully connected to PostgreSQL 16.2 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 13.2.0, 64-bit 17/May/2024:18:35:38 -0500: Could not listen for notifications on the "pgrst" channel. ERROR: cannot execute LISTEN during recovery 17/May/2024:18:35:38 -0500: Retrying listening for notifications... ``` This is still not good because the LISTEN channel will be retried forever without a backoff.
This commit is contained in:
committed by
Steve Chavez
parent
aa75412932
commit
756aad7827
@@ -40,9 +40,9 @@ data Observation
|
||||
| SchemaCacheLoadedObs Double
|
||||
| ConnectionRetryObs Int
|
||||
| ConnectionPgVersionErrorObs SQL.UsageError
|
||||
| DBListenerStart Text
|
||||
| DBListenerFail Text SQL.ConnectionError
|
||||
| DBListenerFailRecoverObs Bool Text (Either SomeException ())
|
||||
| DBListenStart Text
|
||||
| DBListenFail Text (Either SQL.ConnectionError (Either SomeException ()))
|
||||
| DBListenRetry
|
||||
| DBListenerGotSCacheMsg ByteString
|
||||
| DBListenerGotConfigMsg ByteString
|
||||
| ConfigReadErrorObs SQL.UsageError
|
||||
@@ -97,12 +97,16 @@ observationMessage = \case
|
||||
"Attempting to reconnect to the database in " <> (show delay::Text) <> " seconds..."
|
||||
ConnectionPgVersionErrorObs usageErr ->
|
||||
jsonMessage usageErr
|
||||
DBListenerStart channel -> do
|
||||
DBListenStart channel -> do
|
||||
"Listening for notifications on the " <> show channel <> " channel"
|
||||
DBListenerFail channel err -> do
|
||||
"Could not listen for notifications on the " <> channel <> " channel. " <> show err
|
||||
DBListenerFailRecoverObs recover channel err ->
|
||||
"Could not listen for notifications on the " <> channel <> " channel. " <> showListenerError err <> (if recover then " Retrying listening for notifications.." else mempty)
|
||||
DBListenFail channel listenErr ->
|
||||
"Failed listening for notifications on the " <> show channel <> " channel. " <> (
|
||||
case listenErr of
|
||||
Left err -> show err
|
||||
Right err -> showListenerError err
|
||||
)
|
||||
DBListenRetry ->
|
||||
"Retrying listening for notifications..."
|
||||
DBListenerGotSCacheMsg channel ->
|
||||
"Received a schema cache reload message on the " <> show channel <> " channel"
|
||||
DBListenerGotConfigMsg channel ->
|
||||
|
||||
Reference in New Issue
Block a user