Re: Random crud left behind by aborted TAP tests

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Random crud left behind by aborted TAP tests
Дата
Msg-id 9068.1449248366@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Random crud left behind by aborted TAP tests  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Ответы Re: Random crud left behind by aborted TAP tests  (Michael Paquier <michael.paquier@gmail.com>)
Список pgsql-hackers
Alvaro Herrera <alvherre@2ndquadrant.com> writes:
>> Hmm ... I would have supposed that this directory should have been
>> removed by File::Temp's END block.  Are END blocks abandoned completely
>> when a signal is received?  That seems pretty surprising.

> Yes, they are.  Quoth man perlmod:

>        An "END" code block is executed as late as possible, that is,
>        after perl has finished running the program and just before
>        the interpreter is being exited, even if it is exiting as a
>        result of a die() function.  (But not if it's morphing into
>        another program via "exec", or being blown out of the water
>        by a signal--you have to trap that yourself (if you can).)

> One option is to install a signal handler somewhere to clean this up.
> Perhaps we can just set $SIG{INT} to a function that calls "die" or
> something like that.  But this doesn't solve the problem if the system
> crashes while a test is running, for instance, so perhaps your idea of
> moving these directories to inside tmp_check/ is good.

A second signal received while we're trying to respond to the first
would break it too.  (What I was actually doing was strace'ing the whole
process, which would've slowed things down enough that that wouldn't
be an unlikely thing ...)

Let's just put the cruft in tmp_check/ and call it good.
        regards, tom lane



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: Random crud left behind by aborted TAP tests
Следующее
От: Anastasia Lubennikova
Дата:
Сообщение: Re: WIP: Covering + unique indexes.