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
|
Список | 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 по дате отправления: