Thread: UseDeclareFetch=1, Fetch=100, UseServerSidePrepare=1 causes Windows client to intermittently hang

This weekend I tested at a client site the psqlODBC Windows drivers as of
2013/05/21 (what will eventually be 09.02.0100) from the github source. When
printing invoices, intermittently a client (I could reproduce on all three
of the test machines) would hang (freeze--must kill with taskmanager). The
client might have to print just one, or 13, or as high as 61 individual jobs
before the hang would occur. The fix is to set the UseServerSidePrepare back
to 0--then no hangs can be reproduced. Enabling mylog makes it much harder
to reproduce the hang, but I have been able to produce 4 mylog files using
my own test machine that log up to the hang.

Here is the end of one of the mylogs when the hang happened:

[2228-302.275][SQLFreeStmt][2228-302.275]PGAPI_FreeStmt:
entering...hstmt=01B3AA70, fOption=0
[2228-302.275]SC_recycle_statement: self= 01B3AA70
[2228-302.276]QResult: enter DESTRUCTOR
[2228-302.276]QResult: in QR_close_result
[2228-302.276]CC_cursor_count: self=00B7A6A0, num_stmts=64
[2228-302.276]CC_cursor_count: returning 13
[2228-302.276]CC_send_query: conn=00B7A6A0, query='close "SQL_CUR01B3AA70"'
[2228-302.277]in QR_Constructor
[2228-302.277]exit QR_Constructor
[2228-302.277]SOCK_get_id has to eat 1578 bytes
[2228-302.277]SC_set_Result(1c961c0, 1b68380)[2228-302.277]QResult: enter
DESTRUCTOR
[980-302.277]read 6, global_socket_buffersize=4096
[980-302.278]read -1, global_socket_buffersize=4096
[980-302.278]Lasterror=10035

Thanks...jack



--
View this message in context:
http://postgresql.1045698.n5.nabble.com/UseDeclareFetch-1-Fetch-100-UseServerSidePrepare-1-causes-Windows-client-to-intermittently-hang-tp5757049.html
Sent from the PostgreSQL - odbc mailing list archive at Nabble.com.


To bring some closure: Hiroshi Inoue-san created a patch based on the mylogs.
It passed my in-house tests, and today I tested it at the same client site
where I originally discovered the issue, and no problems.

...jack





--
View this message in context:
http://postgresql.1045698.n5.nabble.com/UseDeclareFetch-1-Fetch-100-UseServerSidePrepare-1-causes-Windows-client-to-intermittently-hang-tp5757049p5757710.html
Sent from the PostgreSQL - odbc mailing list archive at Nabble.com.


Hi Jack,

On Mon, May 27, 2013 at 5:38 PM, ljwilson <ljwilson@digitalav.com> wrote:
This weekend I tested at a client site the psqlODBC Windows drivers as of
2013/05/21 (what will eventually be 09.02.0100) from the github source. When
printing invoices, intermittently a client (I could reproduce on all three
of the test machines) would hang (freeze--must kill with taskmanager). The
client might have to print just one, or 13, or as high as 61 individual jobs
before the hang would occur. The fix is to set the UseServerSidePrepare back
to 0--then no hangs can be reproduced. Enabling mylog makes it much harder
to reproduce the hang, but I have been able to produce 4 mylog files using
my own test machine that log up to the hang.

When the client system would hang, would it cause the PG backend to crash and restart? Also, were other clients concurrently connected to the same backend affected as well?

I'm hoping that the issue that you're having is related to the issue I've been having such that a single patch will cure both!

Kind Regards,
-Joshua
Joshua,

> When the client system would hang, would it cause the PG backend to crash
> and restart?

No, the PG backend was unaffected.


> Also, were other clients concurrently connected to the same
> backend affected as well?

No, other clients were not impacted.


> I'm hoping that the issue that you're having is related to the issue I've
> been having such that a single patch will cure both!
> Kind Regards,
> -Joshua

Me too!

...jack



--
View this message in context:
http://postgresql.1045698.n5.nabble.com/UseDeclareFetch-1-Fetch-100-UseServerSidePrepare-1-causes-Windows-client-to-intermittently-hang-tp5757049p5757795.html
Sent from the PostgreSQL - odbc mailing list archive at Nabble.com.