Commit e59ccc5f authored by Thomas Müller's avatar Thomas Müller
Browse files

Merge pull request #24299 from owncloud/availability-avoid-concurrency

Prevent concurrent storage availability checks
parents f79a8125 77cec29b
......@@ -40,9 +40,13 @@ class Availability extends Wrapper {
}
/**
* Only called if availability === false
*
* @return bool
*/
private function updateAvailability() {
// reset availability to false so that multiple requests don't recheck concurrently
$this->setAvailability(false);
try {
$result = $this->test();
} catch (\Exception $e) {
......
......@@ -74,9 +74,12 @@ class Availability extends \Test\TestCase {
$storage->expects($this->once())
->method('test')
->willReturn(true);
$storage->expects($this->once())
$storage->expects($this->exactly(2))
->method('setAvailability')
->with($this->equalTo(true));
->withConsecutive(
[$this->equalTo(false)], // prevents concurrent rechecks
[$this->equalTo(true)] // sets correct availability
);
$storage->expects($this->once())
->method('mkdir');
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment