Hi Curtis, thanks for the report. No, that isn't supposed to happen. I haven't managed to reproduce a silent hang, and looking over the virtual-connection code it looks like any errors (eg, TCP timeout) should be propagated to the caller. On the other hand, I don't have a way of simulating a network outage for testing, so maybe in that case the connection never realizes it is no longer connected, unlike the things I tried.
Could you run your program with db logging at the debug level (eg, set the environment variable PLTSTDERR to "debug@db error") and also add `#:debug? #t` to your call to `postgresql-connect` and see what gets logged/printed before the hang occurs? (You may want to redact the output.)
Ryan