On Sun, 1 Jan 2006, Tom Lane wrote:
> Qingqing Zhou <zhouqq@cs.toronto.edu> writes:
> > I understand put a CHECK_FOR_INTERRUPTS() in the retry-loop may make more
> > graceful stop, but it won't work in some cases -- notice that the io
> > routines we will patch can be used before the signal mechanism is setup.
>
> I don't think it will help much at all: too many of the operations in
> question are invoked in places where CHECK_FOR_INTERRUPTS is a no-op.
> Examples:
> * disk writes are mostly done by the bgwriter and not backends at all
> * unlinks are generally done during xact commit/rollback
>
Right.
> Qingqing's point about failures in system()-invoked commands (think
> archive_command for PITR) is a mighty good one too. That puts a
> serious crimp into any illusion that we can really fix this in any
> reliable way.
>
Not my credit, I just collect Rod & Greg's posts about this here :-) And I
still not sure what exactly the problem we want to fix here -- think our
target is the "operation should not faild because of EINTR".
Regards,
Qingqing