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
pgbouncer appears to lose sync when parameter is set in transaction mode #52
Comments
Losing the setting by getting differerent server connection should be normal. But not losing protocol sync. Could you send pgbouncer -v -v -v log about that query exchange? |
Here you go: https://gist.github.com/roji/4f3205c2e8ffcdd786fb My repro simply connects, sends a Q with I can reproduce this really easily here, let me know if you need any more info. |
problem seems to be that client sent stream of several sync commands (Q and S) to server and pgbouncer switches server after the first. need to think how to solve it. keep a counter? |
Counter should solve bind-sync-exec problem in #44 too? |
yeah I think counter would help with #44 as well |
This avoids releasing server too early. Should fix pgbouncer#44 and pgbouncer#52.
Pushed experimental patch to master, please test if it solves the issue. |
Confirmed, using the latest master the problem doesn't occur, thanks! |
I'm working on the .NET driver for PostgreSQL, Npgsql, and I think I've come across an issue.
During my tests, I set pgbouncer in transaction mode, and sent a packet containing a
SET statement_timeout=30000
simple query message, followed by a regular extended protocol query: this seemed to make pgbouncer "lose sync" in some way. I know SET isn't supported in transaction mode, but I'd have expected a clear error rather than the strange behavior below:Messages sent (as in wireshark): Q/P/D/B/E/S (the first Q is the SET)
Messages received: C/Z
pgbouncer logs:
pgbouncer 1.5.4 on Ubuntu utopic, PostgreSQL 9.3. Let me know if there's any other info that can help.
The text was updated successfully, but these errors were encountered: