#43086 [Opn->Asn]: FastCGI Broken due to session file

From: Date: Mon, 29 Oct 2007 14:36:47 +0000
Subject: #43086 [Opn->Asn]: FastCGI Broken due to session file
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-119033@lists.php.net to get a copy of this message
ID: 43086 Updated by: jani@php.net Reported By: davidb at chelsea dot net -Status: Open +Status: Assigned Bug Type: CGI related Operating System: Solaris 2.8 PHP Version: 5.2.4 -Assigned To: +Assigned To: dmitry New Comment: Dmitry, can you check this out please? Previous Comments: ------------------------------------------------------------------------ [2007-10-27 22:40:06] davidb at chelsea dot net I thought I updated this, but I don't see my comments. The /var/tmp/fastcgi files were where I saved the output when running truss on the php processes. I looked for the session filenames. Previously, it seems PHP was opening the session file in the cgi-bin directory that the php launch script was located in. Now, with the "/" in front, it's opening it in the root directory which doesn't work. ------------------------------------------------------------------------ [2007-10-25 12:28:48] jani@php.net Exactly where does this /var/tmp/fastcgi.out file come from? (It's definately not something PHP outputs!) ------------------------------------------------------------------------ [2007-10-23 15:37:40] davidb at chelsea dot net Description: ------------ PHP 5.2.1 and forward (I think) breaks under the FastCGI/apache proc manager. When the parent is launched, it fails to open the socket due to trying to open the socket in a directory that doesn't allow it. If I compare two traces of an older version (5.2.0) and the newer version (running 5.2.4): Working: /var/tmp/fastcgi.out:1786: unlink("session_mm_cgi-fcgi3357.sem") = 0 /var/tmp/fastcgi.out:1786: open("session_mm_cgi-fcgi3357.sem", O_RDWR|O_CREAT, 0600) = 3 Broken: /var/tmp/fastcgi1.out:1648: unlink("/session_mm_cli4416.sem") Err#2 ENOENT /var/tmp/fastcgi1.out:1648: open("/session_mm_cli4416.sem", O_RDWR|O_CREAT, 0600) Err#13 EACCES Note that this puts the "/" in place, which is a bad assumption. Is it possible this is related to bug 42815 in some way? It's more severe, in that php won't even run, though. Reproduce code: --------------- PHP fails to start. Expected result: ---------------- I think that this should be hard-coded to a /tmp directory, or else somewhere else that the php process will have the ability to write to. Unless there's a way to fix this behavior with a correct php.ini setup. We're running with vhosts and suexec, so the owner of the php process manager won't be able to write to the ServerRoot or the root filesystem (nor do we want it to!) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=43086&edit=1

« previous php.bugs (#119033) next »