Hello,
I recently done the update from version 3.0.4 to 3.0.8. At first it seemed that everything was working properly, then in charge of currency translation (800 - 900 users) apache's process began to multiply, leaving open connections to the database, processes them to just go up to saturate the server's RAM .
By performing an analysis of the log of apache processes we discovered that the file posting.php was waiting for a lock on the file /cache/queue.php.lock . We noticed that the code /includes/functions_messagger.php that manages event lock has been changed from 3.0.4 to 3.0.8.
Now we have modify the configuration of queue_interval from 60 to 15, and the activity of the apache's process now is normal, but this a quick workaround.
Someone has had the same problem and knows a solution?
Queue lock is supposed to be released when queue processing is done. If your installation for whatever reason does not complete queue processing normally (killed by php time limit, errors, etc.) apache process is likely to retain a lock for an extended period of time, blocking other apache processes. You can check for this problem by setting MaxRequestsPerChild to 1 and restoring queue interval to the original value of 60.
Reducing queue interval makes the queue be processed more frequently, which should reduce its average size and therefore make each processing run take less time, therefore avoiding death by time limit. If you don't have any problems with outgoing email, a queue interval of 15 is fine.
You can delete the lock file, but it will simply be recreated the next time mail is sent. Current implementation of mail queue never deletes the lock file.