PHP Bad File Descriptor Error

apache, php

Solution

It turns out that this error was caused by our configuration of OPcache which was enabled during the PHP upgrade process. When I disable it for command line operations by removing this setting from php.ini everything works fine.

opcache.enable_cli=1

Problem

We've recently upgraded our servers from PHP 5.4.15 to 5.5.1 and have started getting this error in the logs Fatal Error Unable to create lock file: Bad file descriptor I've tracked it down to this bit a code that opens another small PHP script which uploads a file to S3 in the background. ``` // Grab uploaded file and assign a working name $fileTemp = $_FILES['file']['tmp_name']; $pathToWorkingFile = tempnam($g_TmpDirectory, "TR-"); // Move the file to our working area if (move_uploaded_file($fileTemp, $pathToWorkingFile) === false) throw new Exception("Cannot move file to staging area.", 1011); // Where the file will end up on S3 $s3Bucket = "test.bucket.com"; $uploadDest = "/uploads/image123.jpg"; // Create process to upload file in background popen("/usr/local/bin/php /path/to/uploadScript.php $pathToWorkingFile $s3Bucket $uploadDest &", 'r'); ```

Original source