Thread
-
Intermittent hang in SQLConnect (ODBC, PostgreSQL 15, Windows)
shashi B savarn <shashi.savarn@gmail.com> — 2026-06-22T08:19:19Z
Hi all, We are encountering an intermittent issue where our Windows-based application hangs indefinitely during SQLConnect when connecting to a PostgreSQL server via ODBC. Environment - PostgreSQL version: 15.0.15.25315 - ODBC driver: psqlODBC 16.00.0007 - Connection type: ODBC using certificate-based authentication - Deployment: Application and PostgreSQL server both run on the same machine (localhost) Application Behavior - The application maintains: - Some long-lived persistent connections - A few short-lived connections (3–4) that are opened/closed periodically - Connection pooling is enabled (we also tested with pooling disabled and reduced timeouts—no change) Configuration - Connection timeout is explicitly set before calling SQLConnect - TCP keepalive parameters are configured - Both settings are visible in PostgreSQL ODBC trace logs Issue Description On a subset of systems, intermittently (roughly once a week, sometimes more frequently), the SQLConnect call: - Hangs indefinitely - Does not return or timeout Observations / Troubleshooting - Initially suspected Microsoft Defender or network filtering: - Added PostgreSQL data directory to exclusions → no improvement - No network filtering/firewall issues observed - Adjusted connection pooling and timeout values → no impact Call Stack During Hang mswsock!WSPStartup mswsock!WSPStartup ws2_32!select libpq!PQsocketPoll libpq!PQsocketPoll libpq!PQgetResult psqlodbc35w!Ordinal94 psqlodbc35w!Ordinal94 psqlodbc35w!Ordinal94 psqlodbc35w!SQLConnectW odbc32!SQLConnectW odbc32!ODBCSetTryWaitValue comsvcs!DispManGetContext comsvcs!DispManGetContext odbc32!SQLDriverConnectW odbc32!SQLDriverConnectW odbc32!SQLFreeStmt odbc32!SQLConnectW odbc32!SQLConnect From the stack, it appears the hang occurs in: - libpq!PQsocketPoll / PQgetResult, which eventually blocks in - ws2_32!select This suggests the thread is waiting on a socket event during connection establishment (possibly SSL/certificate handshake or server response). Questions - Has anyone experienced similar behavior with PostgreSQL 15 and psqlODBC on Windows? - Are there known issues where SQLConnect can block indefinitely despite configured timeouts? - Could this be related to libpq socket polling behavior or SSL/cert authentication edge cases? Any insights or suggestions for further diagnostics would be greatly appreciated. Thanks in advance.