Req #35326 [Opn]: Concurrency issue with recursive mkdir
| From: | pajoye@php.net | Date: | Tue, 01 Oct 2013 04:21:25 +0000 |
| Subject: | Req #35326 [Opn]: Concurrency issue with recursive mkdir | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-181856@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=35326&edit=1
ID: 35326
Updated by: pajoye@php.net
Reported by: bugs dot php dot net at chsc dot dk
Summary: Concurrency issue with recursive mkdir
Status: Open
Type: Feature/Change Request
Package: *General Issues
Operating System: Linux
PHP Version: 5.1.6
Block user comment: N
Private report: N
New Comment:
Should have been:
... and will drastically affect performance without actually solving the
problem....
Previous Comments:
------------------------------------------------------------------------
[2013-10-01 04:15:57] pajoye@php.net
I am not sure it is actually a PHP problem. To create the right locking mechanism
to avoid such issue to happen between (almost) simultaneous requests is the
application developer job, not the core.
Adding such tests should be done in almost all file creation operations (and some
other) and will drastically performance without actually solving the problem.
------------------------------------------------------------------------
[2013-09-30 10:39:45] me at vlastv dot ru
Problem still exists in PHP 5.4.1.
------------------------------------------------------------------------
[2013-07-23 22:55:07] gustavo dot straube at gmail dot com
Problem still exists in PHP 5.3.3.
------------------------------------------------------------------------
[2006-10-10 07:25:52] bugs dot php dot net at chsc dot dk
Problem still exists in PHP 5.1.6.
------------------------------------------------------------------------
[2005-11-22 13:52:24] bugs dot php dot net at chsc dot dk
Yes, it also occurs with the CVS snapshot (this time I tried with the CGI version).
AFAICS the problem is in php_plain_files_mkdir in main/streams/plain_wrapper.c. If php_mkdir() or
VCWD_MKDIR() returns false, the method gives up instead of checking whether directory exists anyway,
i.e. if it was created by another thread.
------------------------------------------------------------------------
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
https://bugs.php.net/bug.php?id=35326
--
Edit this bug report at https://bugs.php.net/bug.php?id=35326&edit=1