ID: 38757 User updated by: davidb at pins dot net Reported By: davidb at pins dot net -Status: Feedback +Status: Open Bug Type: Apache related Operating System: Solaris 8 PHP Version: 5.1.6 Assigned To: dmitry New Comment:
Greetings. Is the poll() timing out, even though it appeared to get all of the data in fd4? Or, is there additional data that isn't getting passed on for some reason? I can send the entire truss if you'd like. We're running Apache 1.3.33, Solaris 8, on a dual-processor SPARC. I believe it's the 2.4.2 FastCGI. I do note that the read() that a valid post gets is different. In a good truss: poll(0xFFBED8F0, 1, 1000) = 1 read(4, "0101\001\0\b\0\0", 8) = 8 read(4, "\001\0\0\0\0\0\0", 8) = 8 read(4, "0104\001\015\0\0", 8) = 8 read(4, 0xFFBDD918, 21) = 21 0E05 C O N T E N T _ L E N G T H 6 1 0 1 5 read(4, "0104\001\0 V\0\0", 8) = 8 read(4, 0xFFBDD918, 86) = 86 \f H C O N T E N T _ T Y P E m u l t i p a r t / f o r m - d a t a ; b o u n d a r y = - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 9 1 9 4 1 1 2 6 6 2 0 5 9 7 read(4, "0104\001\0 =\0\0", 8) = 8 read(4, 0xFFBDD918, 61) = 61 \r . D O C U M E N T _ R O O T / e x p o r t / h t t p d / D O M A I N S / t e s t 2 . f o r w a r d . c o m / h t d o c s The poll seems to return with a 1, but the data that's read in is the same. Is there something about the submit from different users that would cause the poll() to return differently? I have network snoops, as well. Previous Comments: ------------------------------------------------------------------------ [2006-09-11 07:55:00] [EMAIL PROTECTED] >From the strace log I see: PHP FastCGI server accepts connection and waits 1 sec (in pool()) for any input from HTTP client. It doesn't get any data in a second and does save connection close. Could you describe your environment: CPU speed, WebServer, fastcgi plugin, fastcgi configuraion... ------------------------------------------------------------------------ [2006-09-09 21:09:16] [EMAIL PROTECTED] Dmitry, could you plz check it out? ------------------------------------------------------------------------ [2006-09-09 02:05:01] davidb at pins dot net Well, I tried with the latest 5.2b snapshot, and now it's broken for my PC at home also. Appears to be the identical problem - php just silently stops processing after it reads in the POST data, closes the socket, and then waits for the next request, throwing a 500 server error. Please. ------------------------------------------------------------------------ [2006-09-08 22:09:08] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5.2-latest.tar.gz For Windows: http://snaps.php.net/win32/php5.2-win32-latest.zip ------------------------------------------------------------------------ [2006-09-08 22:04:15] davidb at pins dot net Description: ------------ Greetings. I'm currently observing a reproducible version of bug #26647 in the PHP 5.1 train. For a subset of users running mostly Mac but some PC browsers, the PHP process unceremoniously exists witout comment when the form is POST'ed. A truss of the PHP FastCGI process shows PHP reading in the text (incidently, it's also pointed out a performance issue where php's doing a read() of 8 bytes at a time from the FastCGI stream instead of 8kB at at a time, but I digress). The problem appears to go away when I switch to a non-FastCGI version. The broken users are broken consistently - it would be possible (and easy) to gdb trace it and see why it's exiting. Here's the start/end of the truss: accept(0, 0xFFBEDA50, 0xFFBED99C, 1) = 4 fcntl(0, F_SETLK, 0xFFBEDA28) = 0 poll(0xFFBED8F0, 1, 1000) = 0 shutdown(4, 1, 1) = 0 recv(4, "0101\001\0\b\0\0", 8, 0) = 8 recv(4, "\001\0\0\0\0\0\0", 8, 0) = 8 recv(4, "0104\001\015\0\0", 8, 0) = 8 recv(4, "0E05 C O N T E N", 8, 0) = 8 recv(4, " T _ L E N G T H", 8, 0) = 8 recv(4, " 8 3 5 1 90104\0", 8, 0) = 8 recv(4, "01\0 d\0\0\f V C", 8, 0) = 8 recv(4, " O N T E N T _ T", 8, 0) = 8 recv(4, " Y P E m u l t i", 8, 0) = 8 recv(4, " p a r t / f o r", 8, 0) = 8 recv(4, " m - d a t a ; ", 8, 0) = 8 recv(4, " b o u n d a r y", 8, 0) = 8 recv(4, " m L b O u N d A", 8, 0) = 8 (many many lines) recv(4, " r Y - -\r\n0105", 8, 0) = 8 recv(4, "\001\0\0\0\0", 8, 0) = 6 recv(4, 0xFFBEDA28, 8, 0) = 0 close(4) = 0 fcntl(0, F_SETLKW, 0xFFBEDA28) = 0 accept(0, 0xFFBEDA50, 0xFFBED99C, 1) (sleeping...) Bam. Goodbye. No error, no nothing. Reproduce code: --------------- <html> <head> </head> <body> <form method="post" action="response.php" enctype="multipart/form-data"> <input name="test" type="file"> <input name="submit" value="submit" type="submit" /> </form> </body> </html> Expected result: ---------------- The response.php should work - note, however, that php never even attempts to open the response.php file, which is just a trivial "file uploaded" message, no attempt to save. Actual result: -------------- See above truss - php just exits. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=38757&edit=1