(Sorry if this goes through twice. The first time I sent it there was a big attachment and I tried to cancel it.)
I've run into a perlfilter problem on a custom 64-bit Linux system. I do not see this problem on an identically configured 32-bit courier install. The perlfilter will start and seemingly run ok, but almost always when I try to stop it, it goes into some kind of loop. It endlessly respawns all of the perlfitler processes except one, which I assume must be some kind of "root" perlfilter process, as when I manually kill that one, the rest of them finally die for good and the courierfilter stops. Oddly enough, the act of running an strace on the root perlfilter process seems to fix the problem. If I run strace on the root perlfilter _before_ trying to stop courierfilter, I never see any looping when I shut it down. And if I run strace on the root perlfilter process _after_ trying to stop courierfilter, while all of the rest of the perlfilter processes are respawning, then the respawning immediately stops and the courierfitler stops. The results of the tests I ran are shown below. Timestamps are included so you can see how fast the processes are respawning. =========================================== Start testing... =========================================== [EMAIL PROTECTED] ./sbin/courierfilter start [EMAIL PROTECTED] ps -efww | grep courier courier 24720 1 0 07:10 ? 00:00:00 ./sbin/courierfilter start courier 24722 1 0 07:10 ? 00:00:00 /pkg/courier-authlib/0.59.3/.001/sbin/courierlogger courierfilter courier 24723 24720 0 07:10 ? 00:00:00 perlfilter courier 24724 24723 0 07:10 ? 00:00:00 perlfilter courier 24725 24723 0 07:10 ? 00:00:00 perlfilter courier 24726 24723 0 07:10 ? 00:00:00 perlfilter courier 24727 24723 0 07:10 ? 00:00:00 perlfilter courier 24728 24723 0 07:10 ? 00:00:00 perlfilter root 24731 8432 0 07:10 pts/1 00:00:00 grep courier ===================================================== The filter starts up fine, everything looks normal ===================================================== [EMAIL PROTECTED] date; ./sbin/courierfilter stop Fri Apr 27 07:11:06 GMT 2007 [EMAIL PROTECTED] date; ps -efww | grep courier Fri Apr 27 07:11:12 GMT 2007 courier 24720 1 0 07:10 ? 00:00:00 ./sbin/courierfilter start courier 24722 1 0 07:10 ? 00:00:00 /pkg/courier-authlib/0.59.3/.001/sbin/courierlogger courierfilter courier 24723 24720 0 07:10 ? 00:00:00 perlfilter courier 26156 24723 0 07:11 ? 00:00:00 [perlfilter] <defunct> courier 26157 24723 0 07:11 ? 00:00:00 [perlfilter] <defunct> courier 26158 24723 0 07:11 ? 00:00:00 [perlfilter] <defunct> root 26161 8432 0 07:11 pts/1 00:00:00 grep courier courier 26162 24723 0 07:11 ? 00:00:00 [perlfilter] <defunct> courier 26163 24723 0 07:11 ? 00:00:00 perlfilter ================================================================ But notice when it is stopped, a bunch of defunct processes ================================================================ [EMAIL PROTECTED] date; ps -efww | grep courier Fri Apr 27 07:11:18 GMT 2007 courier 24720 1 0 07:10 ? 00:00:00 ./sbin/courierfilter start courier 24722 1 0 07:10 ? 00:00:00 /pkg/courier-authlib/0.59.3/.001/sbin/courierlogger courierfilter courier 24723 24720 0 07:10 ? 00:00:00 perlfilter courier 27599 24723 0 07:11 ? 00:00:00 [perlfilter] <defunct> courier 27600 24723 0 07:11 ? 00:00:00 [perlfilter] <defunct> courier 27601 24723 0 07:11 ? 00:00:00 [perlfilter] <defunct> root 27604 8432 0 07:11 pts/1 00:00:00 grep courier courier 27605 24723 0 07:11 ? 00:00:00 perlfilter courier 27606 24723 0 07:11 ? 00:00:00 perlfilter ============================================================= See how fast they are respawning: ~1500 in 6 seconds Except that first one (pid 24723) -- it never dies. ============================================================= [EMAIL PROTECTED] strace -vfp 24723 &>strace.txt [EMAIL PROTECTED] date; ps -efww | grep courier Fri Apr 27 07:11:49 GMT 2007 root 1773 8432 0 07:11 pts/1 00:00:00 grep courier =============================================================== But here I ran strace on the "root" perlfilter process, and all the rest of them died off for good. Link to strace output: http://karmak.org/2007/strace.txt =============================================================== ============================================================ Now for test #2... ============================================================ [EMAIL PROTECTED] date; ./sbin/courierfilter start Fri Apr 27 07:12:08 GMT 2007 [EMAIL PROTECTED] date; ps -efww | grep courier Fri Apr 27 07:12:11 GMT 2007 courier 1778 1 0 07:12 ? 00:00:00 ./sbin/courierfilter start courier 1780 1 0 07:12 ? 00:00:00 /pkg/courier-authlib/0.59.3/.001/sbin/courierlogger courierfilter courier 1781 1778 0 07:12 ? 00:00:00 perlfilter courier 1782 1781 0 07:12 ? 00:00:00 perlfilter courier 1783 1781 0 07:12 ? 00:00:00 perlfilter courier 1784 1781 0 07:12 ? 00:00:00 perlfilter courier 1785 1781 0 07:12 ? 00:00:00 perlfilter courier 1786 1781 0 07:12 ? 00:00:00 perlfilter root 1789 8432 0 07:12 pts/1 00:00:00 grep courier [EMAIL PROTECTED] strace -vfp 1781 &>/dev/null ============================================================== Here I've started back up again, and I now I strace the root process *before* trying to stop courierfilter. (There is nothing interesting in this strace, so it is just sent to /dev/null) ============================================================== [EMAIL PROTECTED] date; ps -efww | grep courier Fri Apr 27 07:12:49 GMT 2007 courier 1778 1 0 07:12 ? 00:00:00 ./sbin/courierfilter start courier 1780 1 0 07:12 ? 00:00:00 /pkg/courier-authlib/0.59.3/.001/sbin/courierlogger courierfilter courier 1781 1778 0 07:12 ? 00:00:00 perlfilter courier 1782 1781 0 07:12 ? 00:00:00 perlfilter courier 1783 1781 0 07:12 ? 00:00:00 perlfilter courier 1784 1781 0 07:12 ? 00:00:00 perlfilter courier 1785 1781 0 07:12 ? 00:00:00 perlfilter courier 1786 1781 0 07:12 ? 00:00:00 perlfilter root 1793 8432 0 07:12 pts/1 00:00:00 grep courier [EMAIL PROTECTED] date; ./sbin/courierfilter stop Fri Apr 27 07:12:52 GMT 2007 [EMAIL PROTECTED] date; ps -efww | grep courier Fri Apr 27 07:12:53 GMT 2007 root 1798 8432 0 07:12 pts/1 00:00:00 grep courier ========================================================== As you can see, now when I stop courierfilter it shuts down like it should. The act of running strace on the perlfilter process in advance "fixed" it. ========================================================== ========================================================== Ok, one last test... ========================================================== [EMAIL PROTECTED] date; ./sbin/courierfilter start Fri Apr 27 07:12:59 GMT 2007 [EMAIL PROTECTED] date; ps -efww | grep courier Fri Apr 27 07:13:09 GMT 2007 courier 1803 1 0 07:13 ? 00:00:00 ./sbin/courierfilter start courier 1805 1 0 07:13 ? 00:00:00 /pkg/courier-authlib/0.59.3/.001/sbin/courierlogger courierfilter courier 1806 1803 0 07:13 ? 00:00:00 perlfilter courier 1807 1806 0 07:13 ? 00:00:00 perlfilter courier 1808 1806 0 07:13 ? 00:00:00 perlfilter courier 1809 1806 0 07:13 ? 00:00:00 perlfilter courier 1810 1806 0 07:13 ? 00:00:00 perlfilter courier 1811 1806 0 07:13 ? 00:00:00 perlfilter root 1814 8432 0 07:13 pts/1 00:00:00 grep courier ========================================================= Start courierfilter. Everything is ok. ========================================================= [EMAIL PROTECTED] date; ./sbin/courierfilter stop Fri Apr 27 07:13:11 GMT 2007 [EMAIL PROTECTED] date; ps -efww | grep courier Fri Apr 27 07:13:12 GMT 2007 courier 1803 1 0 07:12 ? 00:00:00 ./sbin/courierfilter start courier 1805 1 0 07:12 ? 00:00:00 /pkg/courier-authlib/0.59.3/.001/sbin/courierlogger courierfilter courier 1806 1803 0 07:12 ? 00:00:00 perlfilter courier 2081 1806 0 07:13 ? 00:00:00 [perlfilter] <defunct> courier 2082 1806 0 07:13 ? 00:00:00 [perlfilter] <defunct> courier 2083 1806 0 07:13 ? 00:00:00 [perlfilter] <defunct> root 2086 8432 0 07:13 pts/1 00:00:00 grep courier courier 2087 1806 0 07:13 ? 00:00:00 perlfilter courier 2088 1806 0 07:13 ? 00:00:00 perlfilter ======================================================== Try to stop it though, and the respawning starts. ======================================================== [EMAIL PROTECTED] date; ps -efww | grep courier Fri Apr 27 07:13:18 GMT 2007 courier 1803 1 0 07:13 ? 00:00:00 ./sbin/courierfilter start courier 1805 1 0 07:13 ? 00:00:00 /pkg/courier-authlib/0.59.3/.001/sbin/courierlogger courierfilter courier 1806 1803 0 07:13 ? 00:00:00 perlfilter courier 3320 1806 0 07:13 ? 00:00:00 [perlfilter] <defunct> courier 3321 1806 0 07:13 ? 00:00:00 [perlfilter] <defunct> courier 3322 1806 0 07:13 ? 00:00:00 [perlfilter] <defunct> courier 3323 1806 0 07:13 ? 00:00:00 [perlfilter] <defunct> root 3326 8432 0 07:13 pts/1 00:00:00 grep courier [EMAIL PROTECTED] kill 1806 [EMAIL PROTECTED] date; ps -efww | grep courier Fri Apr 27 07:13:29 GMT 2007 root 5580 8432 0 07:13 pts/1 00:00:00 grep courier =============================================================== But when I killed the "root" perlfitler, all the rest died and courierfitler stopped. =============================================================== ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ courier-users mailing list courier-users@lists.sourceforge.net Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users