postgres-nio icon indicating copy to clipboard operation
postgres-nio copied to clipboard

Successfully closing connection logs `PSQLError`

Open slashmo opened this issue 2 years ago • 0 comments

Describe the bug

When successfully closing a connection, PostgresNIO includes a misleading "error" in its log statement.

To Reproduce

Steps to reproduce the behavior:

  1. Set a breakpoint in PostgresChannelHandler: https://github.com/vapor/postgres-nio/blob/1.18.1/Sources/PostgresNIO/New/PostgresChannelHandler.swift#L566
  2. Set log level to .trace or .debug
  3. Successfully establish a connection
  4. Close connection using connection.close()
  5. Using LLDB, inspect cleanup.error
  6. Find the log statement: psql_connection_id=0 psql_error=PSQLError – Generic description to prevent accidental leakage of sensitive data. For debugging details, use String(reflecting: error). [PostgresNIO] Cleaning up and closing connection.

Expected behavior

I would expect not to see an error in the log statement when the connection was closed successfully.

Environment

  • PostgresNIO version: 1.18.1
  • OS version: macOS 14.0 (23A344)

Additional context

I can see that closeConnectionAndCleanup already treats the error code clientConnectionClosed a special since it doesn't fire an error for it: https://github.com/vapor/postgres-nio/blob/abca6b390235ae337999d367c40cc40c99629385/Sources/PostgresNIO/New/PostgresChannelHandler.swift#L579 Perhaps the log statement could also conditionally exclude the error metadata if the code is clientConnectionClosed?

slashmo avatar Sep 30 '23 20:09 slashmo