Fix dead-end detection.
This resolves Proboscis' failure to detect the death of the remote end. This
can occur if the backend segfaults out; while this won't normally happen, if it
does, Python's process use will go through the roof in an infinite loop.
An earlier patch resolved the issue with seeing PANIC messages and treating
them as fatal errors.
Additionally, this resolves an issue where Python's CPU use goes through the
roof when processing queries that take exceptional amounts of time to finish.
This is due to transport's former use of non-blocking reads.
This fixes the issue by requiring that at least one byte be read from the pipe.
For sockets, this is done giving the MSG_WAITALL flag to recv.
tracenull.py (r1.5 -> r1.6)
transport.py (r220.127.116.11 -> r1.2)
pgsql-committers by date
|Next:||From: Bruce Momjian||Date: 2006-02-12 06:03:39|
|Subject: pgsql: Allow PL/pgSQL FOR statement to return values to scalars as well |
|Previous:||From: Bruce Momjian||Date: 2006-02-12 05:24:38|
|Subject: pgsql: Use 0x01 for newlines in saved history.|