From: | "Peter T(dot) Breuer" <ptb(at)inv(dot)it(dot)uc3m(dot)es> |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | postgresql locks up over the net |
Date: | 2007-05-14 22:31:00 |
Message-ID: | 200705142231.l4EMV1l22869@inv.it.uc3m.es |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
When talking across a net connection, the 8.1.8-1 client eventually hangs
waiting for a reply to a query that the 7.4.7-6 server misses:
CLIENT:
1) send(3, "Q\0\0\0009SELECT key FROM records WHE"..., 58, 0) = 58
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
poll([{fd=3, events=POLLIN|POLLERR, revents=POLLIN}], 1, -1) = 1
2) recv(3, "T\0\0\0\34\0\1key\0\0\1\22e\0\1\0\0\0\27\0\4\377\377\377"..., 16384, 0) = 65
rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0
3) send(3, "Q\0\0\1\232UPDATE records SET magic = "..., 411, 0) = 411
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
poll([{fd=3, events=POLLIN|POLLERR, revents=POLLIN}], 1, -1) = 1
4) recv(3, "C\0\0\0\rUPDATE 1\0Z\0\0\0\5I", 16384, 0) = 20
rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0
5) send(3, "Q\0\0\0008SELECT name from names WHER"..., 57, 0) = 57
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
poll( ....STUCK...
SERVER:
1) recv(8, "Q\0\0\0009SELECT key FROM records WHE"..., 8192, 0) = 58
gettimeofday({1179180003, 769584}, NULL) = 0
send(5, "\4\0\0\0\254\0\0\0\2\0\0\0\215V\0\0\276I\0\0d\0\0\0\2\0"..., 172, 0) = 172
2) send(8, "T\0\0\0\34\0\1key\0\0\1\22e\0\1\0\0\0\27\0\4\377\377\377"..., 65, 0) = 65
3) recv(8, "Q\0\0\1\232UPDATE records SET magic = "..., 8192, 0) = 411
gettimeofday({1179180003, 839197}, NULL) = 0
time(NULL) = 1179180003
_llseek(42, 8142848, [8142848], SEEK_SET) = 0
write(42, "Z\320\1\0\22\0\0\0\0\0\0\0\0@|\2\234\0\0\0\315\253\315"..., 8192) = 8 192
fdatasync(0x2a) = 0
send(5, "\4\0\0\0\254\0\0\0\2\0\0\0\215V\0\0\276I\0\0d\0\0\0\2\0"..., 172, 0) = 172
4) send(8, "C\0\0\0\rUPDATE 1\0Z\0\0\0\5I", 20, 0) = 20
recv(8, ... STUCK...
The server never received the client's send (5) on client channel 3,
server channel 8. It's waiting for a communication that it missed.
This works fine to localhost (i.e. 8.1 to 8.1). How can the server miss
a send from a client? What received the send from the client? The
client thinks it went out! Surely this is tcp? Apparently not! Is
there some way of saying to use tcp? I suppose insisting on ssl would
do.
Peter
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2007-05-14 23:18:34 | Re: Removing pg_auth_members.grantor (was Grantor name gets lost when grantor role dropped) |
Previous Message | Stefan Kaltenbrunner | 2007-05-14 18:30:22 | Re: BUG #3279: insert or update |