ID: 35894 Updated by: [email protected] Reported By: jik at kamens dot brookline dot ma dot us -Status: Open +Status: Analyzed Bug Type: Feature/Change Request Operating System: Linux PHP Version: 5.1.2 New Comment:
The problem with PHP setting a handler for SIGUSR2 is that when we are running as a SAPI module inside some other process like Apache or anything using LinuxThreads, grabbing SIGUSR2 may cause problems. Newer Linux kernels provide reserved internals signals for LinuxThreads to use, and Apache should only be using SIGUSR1, but how confident are you that PHP grabbing this signal isn't going to break it in some environments? It may fix the problem in yours, but if it breaks it in many others that is something we need to deal with. Previous Comments: ------------------------------------------------------------------------ [2010-01-10 21:45:30] tdfischer at fedoraproject dot org This bug is still around and can wreak havok for a drupal site that lets users submit content via machine-local mail. Could someone *please* commit it already? ------------------------------------------------------------------------ [2006-01-05 15:56:17] jik at kamens dot brookline dot ma dot us You *don't* want to allow the simultaneous opening of a mailbox by two processes. The whole point of locking is to *prevent* the simultaneous opening of a mailbox by two processes. What the locking is *supposed* to do is to make one process *wait* for the other one, but what it does instead, if you don't catch the USR2 signal, is for the process that got the lock first to *die* after *being killed* by the other one. This is not correct behavior. Incidentally, I just tested with a newly compiled c-client 2004g and confirmed that the problem persists there without my patch. ------------------------------------------------------------------------ [2006-01-05 10:07:30] [email protected] Why would you want to allow opening same mailbox by two simultaneous processes? ------------------------------------------------------------------------ [2006-01-05 04:13:45] jik at kamens dot brookline dot ma dot us Please look carefully at the output. The notices are not "harmless". Note that the message "successfully opened mailbox" only appears *once*. It should appear twice, because there are two processes who both want to open the mailbox. It only appears once because one of the two processes is killed by a USR2 signal as I've described. I don't know why the patch I sent didn't help for you. It reliably solves the problem for me. Perhaps I picked bad preprocessor symbols and it's not actually getting compiled into the object code on your system. Can you put debugging code in to see if the arm_signal calls are actually happening? Thanks. ------------------------------------------------------------------------ [2006-01-05 01:01:06] [email protected] I get the same notices, which seem quite harmless anyway. And your patch did not make any difference whatsoever. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/35894 -- Edit this bug report at http://bugs.php.net/?id=35894&edit=1
