ID: 41350 Comment by: jaco at jump dot co dot za Reported By: graham at directhostinguk dot com Status: No Feedback Bug Type: MySQL related Operating System: Windows 2003 PHP Version: 5.2.3 New Comment:
I was able to reproduce this on a very basic instalation: Apache 2.2.4 PHP 5.2.5 Windows 2003 Server NO Database installed <? $fp = fsockopen("192.168.1.105", 3312); fclose($fp) echo "DONE"; exit; ?> This executes 100%, and gives no errors, but as soon as I stop apache, it gives me the message in the apache error log Error in my_thread_global_end(): 1 threads didn't exit So it seems to me more of a sockets problem than a mysql problem. When I run the same script in CLI, I get no error. Previous Comments: ------------------------------------------------------------------------ [2008-01-04 21:44:17] jaco at jump dot co dot za I am having the same and more problems. I am running: Apache 2.2.6 MySQL 5.0.45 PHP 5.2.5 Windows Server 2003 R2 Standard SP2 2 x Quad Core Xeon 4Gb RAM IIS Installed for SMTP, FTP and WWW on port 443 for a single .NET Webservice access (NO PHP connectors installed for IIS). But I am sure this is not IIS related, becuase it still happens even with IIS stopped Whenever apache tries to recycle threads I get: ** Apache Error Log ** [Fri Jan 04 22:37:38 2008] [notice] Child 324: All worker threads have exited. Error in my_thread_global_end(): 1 threads didn't exit exiting because it reached MaxRequestsPerChild. Signaling the parent to restart a new child process. [Fri Jan 04 22:37:42 2008] [notice] Parent: Received restart signal -- Restarting the server. ************************ Note the time difference between the first log and the last log This then causes my Apache to crash and restart. Then I tried to download the latest snapshot of PHP, installed it, but then Apache woould not start at all, just gives me a starting status, but does not het out of it. My problem is also that there is hundreds of php files running and our site is very active, and I have NO idea what is causing this problem. The PHP error log is clean, but the following also shows up AFTER apache crashes. 080104 11:24:26 [Warning] Aborted connection 16865 to db: '********' user: '*****' host: 'localhost' (Got an error reading communication packets) But I am sure that this is just caused by apache that have crashed and the already open calls to the database that was not terminated by the php script. These messages apears in the event log after the crash: Faulting application httpd.exe, version 2.2.6.0, faulting module libapr-1.dll, version 1.2.11.0, fault address 0x000079a0. Faulting application httpd.exe, version 2.2.6.0, faulting module php5ts.dll, version 5.2.5.5, fault address 0x0000acb9. We are using both mysql and mysqli connectors and I have tried to download the ones from the mysql site and again apache refused to start. This is quite serious for us at the moment, becuase its in a live enviroment and the dev servers never had this problem. Hope we can find a solution soon. ------------------------------------------------------------------------ [2008-01-04 18:28:12] jcmelcher at gmail dot com This worked for me... IIS 6.0 with PHP 5.2.5 on Win2K3 SP2 If you download the latest PHP - MySQL connector files direct from MySQL this problem goes away:- http://dev.mysql.com/downloads/connector/php/ ------------------------------------------------------------------------ [2008-01-04 14:30:55] benjamin dot azan at gmail dot com I could not find the new version of mysql connector but I changed the PHP mode from CGI/fastCGI to Apache 2.0 Handler and it fixed the problem. ------------------------------------------------------------------------ [2008-01-04 11:54:05] benjamin dot azan at gmail dot com The mySQL bug http://bugs.mysql.com/bug.php?id=25621 says : " MySQL 5.0.54BK on WinXP localhost does not exhibit the error. " and the PHP 5.2.5 show Client API version 5.0.45 So I think the next version of PHP should contain this new version of the MySQL connector. I'm gonna try to upgrade the mySQL connector on a 5.2.5 PHP version to see if it fixs the bug ------------------------------------------------------------------------ [2008-01-03 16:18:34] stalin dot gsk at gmail dot com Include($header) and function fputs($csvf, "string") not detecting by PHP 5.2.3 Iam using WIN NT server with IIS 6 Error msg: Warning: include() [function.include]: Failed opening '' for inclusion (include_path='.;./includes;./pear') in C:\Inetpub\vhosts\shopinonline.co.in\cgi-bin\checkout.php on line 61 Iam adding the code below plz check if any thing can be done to make it work advanced thanks for those who can try helping me site was launched and this shopping is making plz help soon. PHP code: checkout.php <? //=====================================================================|| // NOP Design JavaScript Shopping Cart || // PHP SCRIPT Checkout Module || // || // For more information on SmartSystems, or how NOPDesign can help you || // Please visit us on the WWW at http://www.nopdesign.com || // || // Javascript portions of this shopping cart software are available as || // freeware from NOP Design. You must keep this comment unchanged in || // your code. For more information contact [EMAIL PROTECTED] || // || // JavaScript Shop Module, V.4.4.0 || //=====================================================================|| // || // Function: Writes available form elements from the NOP || // Free Cart (http://www.nopdesign.com/freecart) || // and other form elements to an email file, and || // send user confirmation || // || //=====================================================================|| //###################################################################### // # // User defined variables: # // $header - string value containing the complete # // path of the HTML page header # // $footer - string value containing the complete # // path of the HTML page footer # // $youremail - string value containing the email address to # // send catalog orders in EMAIL or BOTH modes # // $returnpage - URL to send user when checkout is complete # // $csvfilename - string value containing the complete # // path of the user database. # // $csvquote - string value containing what to use for quotes # // in the csv file (typically "" or \") # // $mode - string value containing 'EMAIL', 'FILE' or # // 'BOTH' to determine if the script should send # // an email to you with the new order, write the # // order to a CSV file, or do both. # //###################################################################### $header = "header.html"; $footer = "footer.html"; $returnpage = "thankyou.html"; $youremail = "[EMAIL PROTECTED]"; $csvfilename = "orders.csv"; $csvquote = "\"\""; $mode = "BOTH"; //############################################################## //#FUNCTION: doFormError # //#RETURNS: # //#PARAMETERS: A error message string. # //#PURPOSE: Generates an HTML page indicating a form # //# submission error occurred. # //############################################################## function doFormError($errString) { include($header); echo "<FONT SIZE=+2>The form you submitted was not complete.<BR><BR></FONT>"; echo "$errString<BR><BR>\n"; echo "<INPUT TYPE=BUTTON ONCLICK='history.back()' VALUE=' Return to the checkout page '><HR>"; include($footer); exit; } //############################################################## //#FUNCTION: doError # //#RETURNS: # //#PARAMETERS: A error message string. # //#PURPOSE: Generates an HTML page indicating an error # //# occurred. # //############################################################## function doError($errString) { include($header); echo "$errString<BR><BR>\n"; include($footer); exit; } //############################################################## //############################################################## //### MAIN ### //############################################################## //############################################################## if (($b_conf == "") || ($b_first == "") || ($b_last == "") || ($b_addr == "") || ($b_city == "") || ($b_state == "") || ($b_zip == "") || ($b_phone == "") || ($b_email == "")) { doFormError("I'm sorry, but it appears that you forgot to fill in a required field. Please go <A HREF='Javascript:history.go(-1);'>back</A> and correct the error."); exit; } //# checks for valid email address if( !(ereg("^(.+)@(.+)\\.(.+)$",$b_email)) ) { doFormError("You submitted an invalid email address. Please go <A HREF='Javascript:history.go(-1);'>back</A> and correct the error."); exit; } $today = date ("l, F jS Y"); $strMessageBody = ""; $strMessageBody .= "A new order has been received. A summary of this order appears below.\n"; $strMessageBody .= "\n"; $strMessageBody .= "Order Date: $today \n"; $strMessageBody .= " \n"; $strMessageBody .= "Bill To: \n"; $strMessageBody .= "-------- \n"; $strMessageBody .= " $b_first $b_last \n"; $strMessageBody .= " $b_addr \n"; $strMessageBody .= " $b_addr2 \n"; $strMessageBody .= " $b_city, $b_state $b_zip \n"; $strMessageBody .= " $b_phone \n"; $strMessageBody .= " $b_fax \n"; $strMessageBody .= " $b_email \n"; $strMessageBody .= " \n"; $strMessageBody .= " \n"; $strMessageBody .= "Ship To: \n"; $strMessageBody .= "-------- \n"; $strMessageBody .= " $s_first $s_last \n"; $strMessageBody .= " $s_addr \n"; $strMessageBody .= " $s_addr2 \n"; $strMessageBody .= " $s_city, $s_state $s_zip \n"; $strMessageBody .= " $s_phone \n"; $strMessageBody .= " \n"; $strMessageBody .= " \n"; $strMessageBody .= "Qty Price(\$) Product ID - Product Name\n"; $strMessageBody .= "===================================================================== \n"; $strMessageBody .= "$QUANTITY_1 \$$PRICE_1 $ID_1 - $NAME_1 $ADDTLINFO_1 \n"; if( $NAME_2 ) {$strMessageBody .= "$QUANTITY_2 \$$PRICE_2 $ID_2 - $NAME_2 $ADDTLINFO_2 \n";} if( $NAME_3 ) {$strMessageBody .= "$QUANTITY_3 \$$PRICE_3 $ID_3 - $NAME_3 $ADDTLINFO_3 \n";} if( $NAME_4 ) {$strMessageBody .= "$QUANTITY_4 \$$PRICE_4 $ID_4 - $NAME_4 $ADDTLINFO_4 \n";} if( $NAME_5 ) {$strMessageBody .= "$QUANTITY_5 \$$PRICE_5 $ID_5 - $NAME_5 $ADDTLINFO_5 \n";} if( $NAME_6 ) {$strMessageBody .= "$QUANTITY_6 \$$PRICE_6 $ID_6 - $NAME_6 $ADDTLINFO_6 \n";} if( $NAME_7 ) {$strMessageBody .= "$QUANTITY_7 \$$PRICE_7 $ID_7 - $NAME_7 $ADDTLINFO_7 \n";} if( $NAME_8 ) {$strMessageBody .= "$QUANTITY_8 \$$PRICE_8 $ID_8 - $NAME_8 $ADDTLINFO_8 \n";} if( $NAME_9 ) {$strMessageBody .= "$QUANTITY_9 \$$PRICE_9 $ID_9 - $NAME_9 $ADDTLINFO_9 \n";} if( $NAME_10 ){$strMessageBody .= "$QUANTITY_10 \$$PRICE_10 $ID_10 - $NAME_10 $ADDTLINFO_10 \n";} if( $NAME_11 ){$strMessageBody .= "$QUANTITY_11 \$$PRICE_11 $ID_11 - $NAME_11 $ADDTLINFO_11 \n";} if( $NAME_12 ){$strMessageBody .= "$QUANTITY_12 \$$PRICE_12 $ID_12 - $NAME_12 $ADDTLINFO_12 \n";} if( $NAME_13 ){$strMessageBody .= "$QUANTITY_13 \$$PRICE_13 $ID_13 - $NAME_13 $ADDTLINFO_13 \n";} $strMessageBody .= "===================================================================== \n"; $strMessageBody .= "SUBTOTAL: $SUBTOTAL \n"; $strMessageBody .= "TOTAL: $TOTAL \n"; $strMessageBody .= "\n"; $strMessageBody .= "FREIGHT: $SHIPPING \n"; $strMessageBody .= "\n\n"; $strMessageBody .= "Comments: \n"; $strMessageBody .= "--------- \n"; $strMessageBody .= "$comment \n"; $strMessageBody .= " \n"; if( $mode == "BOTH" || $mode == "EMAIL") { //# Send email order to you... $mailheaders = "From: $b_email\r\n"; $mailheaders .="X-Mailer: PHP Mail generated by:NOP Design Shopping Cart\r\n"; $subject = "New Online Order"; mail($youremail, $subject, $strMessageBody, $mailheaders); } if( $mode == "BOTH" || $mode == "FILE") { $csvcomments = $comment; if (!$CSVF = fopen($csvfilename,'a')) { doError("Unable to open CSV file for writing. Your order has not been saved."); exit; } fputs($CSVF, $string); fputs($CSVF, "\""); fputs($CSVF, "$today"); fputs($CSVF, "\",\""); fputs($CSVF, "$b_conf"); fputs($CSVF, "\",\""); fputs($CSVF, "$b_first"); fputs($CSVF, "\",\""); fputs($CSVF, "$b_last"); fputs($CSVF, "\",\""); fputs($CSVF, "$b_addr"); fputs($CSVF, "\",\""); fputs($CSVF, "$b_addr2"); fputs($CSVF, "\",\""); fputs($CSVF, "$b_city"); fputs($CSVF, "\",\""); fputs($CSVF, "$b_state"); fputs($CSVF, "\",\""); fputs($CSVF, "$b_zip"); fputs($CSVF, "\",\""); fputs($CSVF, "$b_phone"); fputs($CSVF, "\",\""); fputs($CSVF, "$b_fax"); fputs($CSVF, "\",\""); fputs($CSVF, "$b_email"); fputs($CSVF, "\",\""); fputs($CSVF, "$s_first"); fputs($CSVF, "\",\""); fputs($CSVF, "$s_last"); fputs($CSVF, "\",\""); fputs($CSVF, "$s_addr"); fputs($CSVF, "\",\""); fputs($CSVF, "$s_addr2"); fputs($CSVF, "\",\""); fputs($CSVF, "$s_city"); fputs($CSVF, "\",\""); fputs($CSVF, "$s_state"); fputs($CSVF, "\",\""); fputs($CSVF, "$s_zip"); fputs($CSVF, "\",\""); fputs($CSVF, "$s_phone"); fputs($CSVF, "\",\""); fputs($CSVF, "$QUANTITY_1"); fputs($CSVF, "\",\""); fputs($CSVF, "\$$PRICE_1"); fputs($CSVF, "\",\""); fputs($CSVF, "$ID_1"); fputs($CSVF, "\",\""); fputs($CSVF, "$NAME_1"); fputs($CSVF, "\",\""); fputs($CSVF, "$ADDTLINFO_1"); fputs($CSVF, "\",\""); fputs($CSVF, "$QUANTITY_2"); fputs($CSVF, "\",\""); fputs($CSVF, "\$$PRICE_2"); fputs($CSVF, "\",\""); fputs($CSVF, "$ID_2"); fputs($CSVF, "\",\""); fputs($CSVF, "$NAME_2"); fputs($CSVF, "\",\""); fputs($CSVF, "$ADDTLINFO_2"); fputs($CSVF, "\",\""); fputs($CSVF, "$QUANTITY_3"); fputs($CSVF, "\",\""); fputs($CSVF, "\$$PRICE_3"); fputs($CSVF, "\",\""); fputs($CSVF, "$ID_3"); fputs($CSVF, "\",\""); fputs($CSVF, "$NAME_3"); fputs($CSVF, "\",\""); fputs($CSVF, "$ADDTLINFO_3"); fputs($CSVF, "\",\""); fputs($CSVF, "$QUANTITY_4"); fputs($CSVF, "\",\""); fputs($CSVF, "\$$PRICE_4"); fputs($CSVF, "\",\""); fputs($CSVF, "$ID_4"); fputs($CSVF, "\",\""); fputs($CSVF, "$NAME_4"); fputs($CSVF, "\",\""); fputs($CSVF, "$ADDTLINFO_4"); fputs($CSVF, "\",\""); fputs($CSVF, "$QUANTITY_5"); fputs($CSVF, "\",\""); fputs($CSVF, "\$$PRICE_5"); fputs($CSVF, "\",\""); fputs($CSVF, "$ID_5"); fputs($CSVF, "\",\""); fputs($CSVF, "$NAME_5"); fputs($CSVF, "\",\""); fputs($CSVF, "$ADDTLINFO_5"); fputs($CSVF, "\",\""); fputs($CSVF, "$QUANTITY_6"); fputs($CSVF, "\",\""); fputs($CSVF, "\$$PRICE_6"); fputs($CSVF, "\",\""); fputs($CSVF, "$ID_6"); fputs($CSVF, "\",\""); fputs($CSVF, "$NAME_6"); fputs($CSVF, "\",\""); fputs($CSVF, "$ADDTLINFO_6"); fputs($CSVF, "\",\""); fputs($CSVF, "$QUANTITY_7"); fputs($CSVF, "\",\""); fputs($CSVF, "\$$PRICE_7"); fputs($CSVF, "\",\""); fputs($CSVF, "$ID_7"); fputs($CSVF, "\",\""); fputs($CSVF, "$NAME_7"); fputs($CSVF, "\",\""); fputs($CSVF, "$ADDTLINFO_7"); fputs($CSVF, "\",\""); fputs($CSVF, "$QUANTITY_8"); fputs($CSVF, "\",\""); fputs($CSVF, "\$$PRICE_8"); fputs($CSVF, "\",\""); fputs($CSVF, "$ID_8"); fputs($CSVF, "\",\""); fputs($CSVF, "$NAME_8"); fputs($CSVF, "\",\""); fputs($CSVF, "$ADDTLINFO_8"); fputs($CSVF, "\",\""); fputs($CSVF, "$QUANTITY_9"); fputs($CSVF, "\",\""); fputs($CSVF, "\$$PRICE_9"); fputs($CSVF, "\",\""); fputs($CSVF, "$ID_9"); fputs($CSVF, "\",\""); fputs($CSVF, "$NAME_9"); fputs($CSVF, "\",\""); fputs($CSVF, "$ADDTLINFO_9"); fputs($CSVF, "\",\""); fputs($CSVF, "$QUANTITY_10"); fputs($CSVF, "\",\""); fputs($CSVF, "\$$PRICE_10"); fputs($CSVF, "\",\""); fputs($CSVF, "$ID_10"); fputs($CSVF, "\",\""); fputs($CSVF, "$NAME_10"); fputs($CSVF, "\",\""); fputs($CSVF, "$ADDTLINFO_10"); fputs($CSVF, "\",\""); fputs($CSVF, "$QUANTITY_11"); fputs($CSVF, "\",\""); fputs($CSVF, "\$$PRICE_11"); fputs($CSVF, "\",\""); fputs($CSVF, "$ID_11"); fputs($CSVF, "\",\""); fputs($CSVF, "$NAME_11"); fputs($CSVF, "\",\""); fputs($CSVF, "$ADDTLINFO_11"); fputs($CSVF, "\",\""); fputs($CSVF, "$QUANTITY_12"); fputs($CSVF, "\",\""); fputs($CSVF, "\$$PRICE_12"); fputs($CSVF, "\",\""); fputs($CSVF, "$ID_12"); fputs($CSVF, "\",\""); fputs($CSVF, "$NAME_12"); fputs($CSVF, "\",\""); fputs($CSVF, "$ADDTLINFO_12"); fputs($CSVF, "\",\""); fputs($CSVF, "$QUANTITY_13"); fputs($CSVF, "\",\""); fputs($CSVF, "\$$PRICE_13"); fputs($CSVF, "\",\""); fputs($CSVF, "$ID_13"); fputs($CSVF, "\",\""); fputs($CSVF, "$NAME_13"); fputs($CSVF, "\",\""); fputs($CSVF, "$ADDTLINFO_13"); fputs($CSVF, "\",\""); fputs($CSVF, "$SUBTOTAL"); fputs($CSVF, "\",\""); fputs($CSVF, "$TOTAL"); fputs($CSVF, "\",\""); fputs($CSVF, "$SHIPPING"); fputs($CSVF, "\",\""); fputs($CSVF, "$comment"); fputs($CSVF, "\"\n"); fclose($CSVF); } //# Send email conformation to the customer..... $mailheaders = "From: $youremail\r\n"; $mailheaders .="X-Mailer: PHP Mail generated by:NOP Design Shopping Cart\r\n"; $subject = "Order Confirmation"; mail($b_email, $subject, $strMessageBody, $mailheaders); include($header); echo "<h2>Thank you</h2>"; echo "Thank you for your order from our online store. You will receive a confirmation email of your order "; echo "momentarily. Please contact us at $youremail if you have any questions or concerns."; echo "<P>"; echo "<A HREF=\"$returnpage\" target=_top>Return Home</A>"; echo "<P>"; include($footer); ?> ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/41350 -- Edit this bug report at http://bugs.php.net/?id=41350&edit=1