Read ahead: resolve paths before opening connections; a failing readAhead() leaves no spool folder

This commit is contained in:
2026-10-19 01:52:58 +02:00
parent ccbbf01c54
commit 1d7f7e6423
2 changed files with 7 additions and 2 deletions
+2 -1
View File
@@ -257,6 +257,8 @@ final class StorageBackend implements IBackend, IReadsAhead {
if (!$this->sftpReads || $reconnect === null || $ranges === []) {
return null;
}
// before any connection is opened: an invalid path throws
$abs = array_map(fn (array $r): array => [$this->abs($r[0]), $r[1], $r[2]], $ranges);
$storages = [];
$connections = [];
$root = '';
@@ -277,7 +279,6 @@ final class StorageBackend implements IBackend, IReadsAhead {
if ($connections === []) {
return null;
}
$abs = array_map(fn (array $r): array => [$this->abs($r[0]), $r[1], $r[2]], $ranges);
return (static function () use ($storages, $connections, $root, $abs, $spool): \Generator {
// the storages hold their connections: kept until the fetcher is done
try {