From: | Jade Koskela <jkoskela0(at)gmail(dot)com> |
---|---|
To: | "pgsql-odbc(at)postgresql(dot)org" <pgsql-odbc(at)postgresql(dot)org> |
Subject: | Fwd: crash bug on closed connection |
Date: | 2014-10-13 23:44:31 |
Message-ID: | CAN5Zvqy6hsTBg2KcmA1zk1c+vvMNRmaJ5rRLTiBKoYSC=59HRA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-odbc |
I have been looking into this crash for a while now, and I finally have a
good repro.
After digging through it with wireshark I observed this
client tries to send a query
retransmit query
retransmit query
...
client sends TCP [RST],[ACK]
Now it has crashed, so we restart it again and begin another connection
successfully.
It seems that the connection has dropped, but the client was never
informed, and it doesn't handle this gracefully.
I reproed it like this:
On my mac running postgres server:
Setup port forwarding to emulate a proxy or firewall problem
ssh -L [public ip]:5433:localhost:5432 -N localhost
On my windows machine:
Connect to port 5433 on my mac
Run a query
On my mac:
Kill the ssh proxy
sighup postgres
open the ssh proxy again
On my windows machine:
Run another query (machine still thinks connection is ok)
Crash in psqlodbcw.dll
> psqlodbc35w.dll!Exec_with_parameters_resolved(StatementClass_ *
stmt=0x0a6f4fa0, int * exec_end=0x083bf3dc) Line 606 + 0x1b bytes C
psqlodbc35w.dll!PGAPI_Execute(void * hstmt=0x0a6f4fa0, unsigned short
flag=1) Line 1147 + 0xd bytes C
psqlodbc35w.dll!SQLExecute(void * StatementHandle=0x0a6f4fa0) Line 386 +
0xe bytes C
odbc32(dot)dll!_SQLExecute(at)4() + 0x2c1 bytes
> if (sscanf(cmd , "UPDATE %d", &count) == 1) // here cmd is junk but not
null (0xddddddd)
From | Date | Subject | |
---|---|---|---|
Next Message | Jade Koskela | 2014-10-14 05:26:09 | Re: crash bug on closed connection |
Previous Message | Jade Koskela | 2014-10-13 21:02:53 | crash bug on closed connection |