Skip to content

Commit

Permalink
fix: don't propagate future mtimes
Browse files Browse the repository at this point in the history
Signed-off-by: Robin Appelman <robin@icewind.nl>
  • Loading branch information
icewind1991 committed Nov 28, 2024
1 parent 6230849 commit aadfcb3
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions lib/private/Files/Cache/Propagator.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
use OCP\Files\Cache\IPropagator;
use OCP\Files\Storage\IReliableEtagStorage;
use OCP\IDBConnection;
use OCP\Server;
use Psr\Clock\ClockInterface;
use Psr\Log\LoggerInterface;

/**
Expand All @@ -39,10 +41,13 @@ class Propagator implements IPropagator {
*/
private $ignore = [];

private ClockInterface $clock;

public function __construct(\OC\Files\Storage\Storage $storage, IDBConnection $connection, array $ignore = []) {
$this->storage = $storage;
$this->connection = $connection;
$this->ignore = $ignore;
$this->clock = Server::get(ClockInterface::class);
}

/**
Expand All @@ -58,7 +63,9 @@ public function propagateChange($internalPath, $time, $sizeDifference = 0) {
}
}

$storageId = (int)$this->storage->getStorageCache()->getNumericId();
$time = min((int)$time, $this->clock->now()->getTimestamp());

$storageId = $this->storage->getStorageCache()->getNumericId();

$parents = $this->getParents($internalPath);

Expand All @@ -78,7 +85,7 @@ public function propagateChange($internalPath, $time, $sizeDifference = 0) {
}, $parentHashes);

$builder->update('filecache')
->set('mtime', $builder->func()->greatest('mtime', $builder->createNamedParameter((int)$time, IQueryBuilder::PARAM_INT)))
->set('mtime', $builder->func()->greatest('mtime', $builder->createNamedParameter($time, IQueryBuilder::PARAM_INT)))
->where($builder->expr()->eq('storage', $builder->createNamedParameter($storageId, IQueryBuilder::PARAM_INT)))
->andWhere($builder->expr()->in('path_hash', $hashParams));
if (!$this->storage->instanceOfStorage(IReliableEtagStorage::class)) {
Expand Down

0 comments on commit aadfcb3

Please sign in to comment.