I'm running Drupal 6 with Nginx 1.5.1 and PHP-FPM (PHP 5.3.26) on a 1GB single core VPS with 3GB of swap space on SSD storage. I just switched from shared hosting to this unmanaged VPS because my site was getting too heavy, so I'm still learning the ropes. I have moderately high traffic, I don't really monitor it closely but Google Adsense usually record close to 30K page views/day. I usually have 50 to 80 authenticated users logged in and a few hundred more anonymous users hitting the Boost static HTML cache at any given moment. I have a maximum of 10 PHP-FPM child processes configured. I am using the "ondemand" PHP-FPM process manager.
I'm running into an occasional error that is really hard to debug because it's seemingly random. Out of maybe 30 intentional posts by users, 1 of them gets duplicated. I configured it so the post button is disabled after the first click, so it's not the result of double clicking. In fact, it even happened to me once when I was posting. The double posts occur within a few seconds of each other. I examined the log files, and the duplicate post always seems to correspond to an nginx POST error:
recv() failed (104: Connection reset by peer) while reading response header from upstream. And this event seems to relate to a PHP-FPM error of an execution timeout error of index.php and subsequent SIGTERM of the PHP-FPM worker process.
Here are links to the nginx access and error logs and the PHP-FPM error log.
They are pruned and slightly obfuscated to show a duplicate post error that just happened today at 12:34 by me with an IP address of "184.108.40.206". The node on which the dupe happened is 22802.
This issue did not occur when I was running on Apache/FastCGI on my previous shared webhost. I should also mention that I am using Redis for caching and the Zend Optimizer+ opcache. But I tried disabling both of those mechanisms to avoid the dupes error, and it made no difference.
Thanks for any help you can provide!