Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Transient SSL SYSCALL error: EOF detected #3612

Open
steve-chavez opened this issue Jun 19, 2024 · 1 comment
Open

Transient SSL SYSCALL error: EOF detected #3612

steve-chavez opened this issue Jun 19, 2024 · 1 comment
Labels
logging messages user-facing error/informative messages

Comments

@steve-chavez
Copy link
Member

steve-chavez commented Jun 19, 2024

Problem

Now that we no longer ignore errors on the LISTEN channel (#3533) sometimes there are transient errors that shouldn't affect end users since PostgREST will recover immediately.

One example is SSL SYSCALL error: EOF detected:

Failed listening for notifications on the "pgrst" channel. SSL SYSCALL error: EOF detected
Retrying listening for notifications in 1 seconds...
Listening for notifications on the "pgrst" channel

The LISTEN connection might be interrupted by a proxy. We got the same report on #3313 (reply in thread).

Solution

Detect this error and indicate it's transient on the logs.

@steve-chavez steve-chavez added messages user-facing error/informative messages logging labels Jun 19, 2024
@steve-chavez
Copy link
Member Author

steve-chavez commented Jun 19, 2024

With that said, my own personal opinion is that a transient error with remaining retries does not warrant an error event. Maybe a warning.
dotnet/efcore#15269 (comment)

I agree with the above. We should log the SSL error only at the warning level.

If the retrying delay goes beyond 1 second only then log an error? Or maybe just detect the SSL syscall message?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
logging messages user-facing error/informative messages
Development

No branches or pull requests

1 participant