http://bugzilla.spamassassin.org/show_bug.cgi?id=3828





------- Additional Comments From [EMAIL PROTECTED]  2004-11-18 16:23 -------
Good catch, Sebastian!  POSIX::sigaction will, indeed, solve two problems:

- 1. deal with internal timeouts using SIGALRM overwriting our one

- 2. always use "unsafe" signal handlers, which are essential in this case to
  interrupt all possible hangs, including regexp complexity ones.

however Sys::SigAction does also note that in perl versions prior to 5.8,
POSIX::sigaction "does not work correctly".  So I agree with Sidney, we need to
implement code to do the same thing using %SIG, in our codebase.

in the latter case, #1 will be unavoidable.  but that seems to have worked for
Dallas anyway -- I would surmise because the rules that set alarms (namely
DCC/Pyzor/Razor) are happening late enough that the error condition this
catches, has already happened by that stage if it was going to happen.

I think we need a new patch that does the same thing as Dallas' patch, but using
functions that will switch between use of %SIG and POSIX::sigaction depending on
$^V.  btw, any chance someone with a CLA on file could do this?




------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

Reply via email to