ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> php-Dev
php-Dev
#26060 [NEW]: Not closing download handles
by datacompboy at mail dot ru other posts by this author
Oct 31 2003 5:42PM messages near this date
#26061 [Opn->Csd]: mail function chops html code when is used with php ver 4.3.3 | #26060 [Fbk->NoF]: Not closing download handles
From:             datacompboy at mail dot ru
Operating system: Win2003 adv server
PHP version:      4.3.3
PHP Bug Type:     cURL related
Bug description:  Not closing download handles

Description:
------------
I tried to download file with curl, parse it with external app, show
output and kill temp file. But:
1. if php as isapi module - when several requests at one time some inputs
are locked! Filemon says that it frees by some cmd.exe after all runned
sub-processes already finished. Very strange!
2. if php as fastcgi - it often crashes with error in php_curl (all latest
dlls in system32 upgraded; php4ts only in c:\php, php4isapi also in c:\php
and no in c:\windows\system)
3. if php as cgi - all OK, except of when user cancelled download the
script terminated, but shotdown_procedure not called, so temp files left.

Reproduce code:
---------------
<?ob_start(); $url="http://some.site.com";
  $oinfile = tempnam ("./", "URLIN");
  $infile = preg_replace("#.*[/\\\\](.*?)#","\$1",$oinfile);
  $ooutfile = tempnam ("./", "URLOU");
  $outfile = preg_replace("#.*[/\\\\](.*?)#","\$1",$ooutfile);
  register_shutdown_function(create_function('',
    "@unlink(\"$infile\"); @unlink(\"$outfile\"); @unlink(\"$oinfile\");
@unlink(\"$ooutfile\"); return 1;"));
  $inf = fopen($infile, "w");
  fwrite($inf, "<meta http-equiv=\"Content-Type\"
content=\"text/html\"> \n");

  $ch = curl_init();
  curl_setopt ($ch, CURLOPT_URL, $url);
  curl_setopt ($ch, CURLOPT_FILE, $inf);
  $st=curl_exec ($ch);
  curl_close ($ch);
  fclose($inf);
  echo `filter.exe $lang $infile $outfile 2> &1`;

  ob_end_flush();
?> 

Expected result:
----------------
No .tmp files not in windows\temp\ folder, not in script folder.

Actual result:
--------------
Some .tmp files left and in windows\temp, and in script folder.

-- 
Edit bug report at http://bugs.php.net/?id=26060&edit=1
-- 
Try a CVS snapshot (php4):  http://bugs.php.net/fix.php?id=26060&r=trysnapshot4
Try a CVS snapshot (php5):  http://bugs.php.net/fix.php?id=26060&r=trysnapshot5
Fixed in CVS:               http://bugs.php.net/fix.php?id=26060&r=fixedcvs
Fixed in release:           http://bugs.php.net/fix.php?id=26060&r=alreadyfixed
Need backtrace:             http://bugs.php.net/fix.php?id=26060&r=needtrace
Try newer version:          http://bugs.php.net/fix.php?id=26060&r=oldversion
Not developer issue:        http://bugs.php.net/fix.php?id=26060&r=support
Expected behavior:          http://bugs.php.net/fix.php?id=26060&r=notwrong
Not enough info:            http://bugs.php.net/fix.php?id=26060&r=notenoughinfo
Submitted twice:            http://bugs.php.net/fix.php?id=26060&r=submittedtwice
register_globals:           http://bugs.php.net/fix.php?id=26060&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=26060&r=php3
Daylight Savings:           http://bugs.php.net/fix.php?id=26060&r=dst
IIS Stability:              http://bugs.php.net/fix.php?id=26060&r=isapi
Install GNU Sed:            http://bugs.php.net/fix.php?id=26060&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=26060&r=float
Thread:
datacompboy at mail dot ru


datacompboy at mail dot ru



Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved