You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When a browser sends many requests for image conversion concurrently (e.g. an image gallery is loaded) and the destination directory does not exist, every request tries to create the directory, which ends up with CreateDestinationFolderException because of a race condition.
So instead of
if (! is_dir($dir) && ! mkdir($dir, 0777, true)) {
throw new CreateDestinationFolderException();
}
the following should be used:
if (! is_dir($dir) && ! mkdir($dir, 0777, true) && ! is_dir($dir)) {
throw new CreateDestinationFolderException();
}
When a browser sends many requests for image conversion concurrently (e.g. an image gallery is loaded) and the destination directory does not exist, every request tries to create the directory, which ends up with
CreateDestinationFolderException
because of a race condition.So instead of
the following should be used:
(code is simplified)
More info about this issue:
https://www.google.com/search?q=php+mkdir+race+condition
https://bugs.php.net/bug.php?id=35326
https://stackoverflow.com/questions/44322783/is-is-dir-unreliable-or-are-there-race-conditions-that-can-be-mitigated-here/57939677#57939677
https://app.bountysource.com/issues/49427500-mkdir-race-condition-enhancement
symfony/symfony#11626
The text was updated successfully, but these errors were encountered: