GitHub PushEvent at 2014-06-20 01:54:38
Repository: psqlODBC
Actor: ringerc
Payload: {"shas":[["a0a21dc691e580302f4109cfe3a9b9dd7f7b39ce","c4b5a8c0fafd56ae12499ba1d5d55022dbe4108e@2ndquadrant.com","Fix use of server-queried version before connection\n\npsqlODBC attempted to use the version that's queried from the server before it\nwas obtained from the server during the connection setup. Because the server\nversion is initialized to 0.0, tests for \"server version >= 7.4\" or \"server\nversion >= 6.4\" using the PG_VERSION_LT macro were always returning false.\n\nInstead, use PROTOCOL_64 and PROTOCOL_74 tests against conninfo. These don't\noffer any \"greater than\" form, so just test both. There's little point adding\nanything prettier when it can all be removed when v1/v2 protocol support is\nremoved soon anyway.\n\nThe main symptom of this issue was that psqlODBC was sending an invalid\nprotocol message for the v3 protocol, \"Q \\0\", causing the server to wait for\nthe second half of the length word forever. At connection close, the server\nwould emit:\n\n    unexpected EOF within message length word\n\nThis issue was observed while tracking down problems with XA transactions in\nMSDTC failing to commit after a successful prepare because an isolated tx\ncreated via getLockedXAConn() got stuck here, but is not confined to that\nproblem.","Craig Ringer",true]],"size":1,"ref":"refs/heads/fix-febe-protocol-desync-emptyquery","head":"a0a21dc691e580302f4109cfe3a9b9dd7f7b39ce"}