diff --git a/lib/private/Snowflake/FileSequence.php b/lib/private/Snowflake/FileSequence.php index 53a3bc240690d..0079aafbfb619 100644 --- a/lib/private/Snowflake/FileSequence.php +++ b/lib/private/Snowflake/FileSequence.php @@ -33,6 +33,9 @@ public function __construct( 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 @@ public function nextId(int $serverId, int $seconds, int $milliseconds): int { } 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 70054fee14473..08e6357f363c1 100644 --- a/tests/lib/Snowflake/FileSequenceTest.php +++ b/tests/lib/Snowflake/FileSequenceTest.php @@ -30,6 +30,5 @@ public function tearDown():void { foreach (glob($lockDirectory . '/*') as $file) { unlink($file); } - rmdir($lockDirectory); } }