Bug #73039 [Com]: Temporary files not being cleaned up when shell_exec called
| From: | chu_man_fu at hotmail dot com | Date: | Fri, 09 Sep 2016 14:56:09 +0000 |
| Subject: | Bug #73039 [Com]: Temporary files not being cleaned up when shell_exec called | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-203924@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=73039&edit=1
ID: 73039
Comment by: chu_man_fu at hotmail dot com
Reported by: chu_man_fu at hotmail dot com
Summary: Temporary files not being cleaned up when shell_exec
called
Status: Feedback
Type: Bug
Package: Streams related
Operating System: Windows Server 2012 R2
PHP Version: 5.6.25
Block user comment: N
Private report: N
New Comment:
Hi,
We get no errors or events and the script doesn't acutally bail out. It carries on but the temp
file is never cleaned up.
I have changes the script so that shell_exec is calling CLS rather than DIR and I get the same
problem.
Thanks
Previous Comments:
------------------------------------------------------------------------
[2016-09-08 13:19:11] ab@php.net
Thanks for the report. Could you please check error logs? Or the event log, if applicable. I see no
direct connection to shell_exec, except a command would run over the timeout limit and cause a
premature script bailout.
Thanks.
------------------------------------------------------------------------
[2016-09-07 12:56:18] chu_man_fu at hotmail dot com
Description:
------------
I have noticed the temp directory on the web server is full of files named php*.tmp.
The contents of these files is POST data for various ajax calls (mainly the same group of calls).
There isn't a temp file per call. If I watch the directoy I can see most temp files appear and
then get deleted. However, for whatever reason, sometimes these files are not cleaned up.
The only way I have been able to reproduce this error is using apache bench to post data (26KB) to a
script which uses the shell_exec, exec, popen command:
<?php
shell_exec("dir");
echo "FINISHED";
?>
It will only produce the temp file when there is concurrency and lots of requests for each:
ab -p <post_data_file> -c 3 -n 30 <url_to_script>
Our system does perform calls to popen() but the POST data temp files which are being left behind
are not always for calls which invoke this function.
I can produce the issue on 5.6.24 and 5.6.25.
I have tried on the following versions and not been able to reproduce it: 5.4.44, 5.5.25, 7.1
I not beein able to reproduce the issue on a Mac running 5.6.18.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=73039&edit=1