From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org, Craig Ringer <craig(at)2ndquadrant(dot)com> |
Subject: | Dumb mistakes in WalSndWriteData() |
Date: | 2016-10-31 08:59:40 |
Message-ID: | 20161031085940.q6kyakvukgtpjyks@alap3.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
I^Wsomebody appears to have made a number of dumb mistakes in
WalSndWriteData(), namely:
1) The timestamp is set way too late, after
pq_putmessage_noblock(). That'll sometimes work, sometimes not. I
have no idea how that ended up happening. It's eye-wateringly dumb.
2) We only do WalSndKeepaliveIfNecessary() if we're blocked on socket
IO. But on a long-lived connection that might be a lot of data, we
should really do that once *before* trying to send the payload in the
first place.
3) Similarly to 2) it might be worthwhile checking for interrupts
everytime, not just when blocked on network IO.
Greetings,
Andres Freund
From | Date | Subject | |
---|---|---|---|
Next Message | Gilles Darold | 2016-10-31 09:19:18 | Re: Patch to implement pg_current_logfile() function |
Previous Message | Andres Freund | 2016-10-31 08:52:23 | Re: Logical decoding and walsender timeouts |