diff --git a/lib/private/Snowflake/FileSequence.php b/lib/private/Snowflake/FileSequence.php index 53a3bc24069..0079aafbfb6 100644 --- a/lib/private/Snowflake/FileSequence.php +++ b/lib/private/Snowflake/FileSequence.php @@ -33,6 +33,9 @@ class FileSequence implements ISequence { private function ensureWorkdirExists(): void { if (is_dir($this->workDir)) { + if (!is_writable($this->workDir)) { + throw new \Exception('File sequence directory exists but is not writable'); + } return; } @@ -104,6 +107,6 @@ class FileSequence implements ISequence { } private function getFilePath(int $fileId): string { - return $this->workDir . sprintf(self::LOCK_FILE_FORMAT, $fileId); + return $this->workDir . '/' . sprintf(self::LOCK_FILE_FORMAT, $fileId); } } diff --git a/tests/lib/Snowflake/FileSequenceTest.php b/tests/lib/Snowflake/FileSequenceTest.php index 70054fee144..08e6357f363 100644 --- a/tests/lib/Snowflake/FileSequenceTest.php +++ b/tests/lib/Snowflake/FileSequenceTest.php @@ -30,6 +30,5 @@ class FileSequenceTest extends ISequenceBase { foreach (glob($lockDirectory . '/*') as $file) { unlink($file); } - rmdir($lockDirectory); } }