Browse Source

Merge pull request #55383 from nextcloud/fix/noid/unique-cache-prefix-per-instanceid

fix(cache): Ensure unique global prefix per instanceid
pull/53048/merge
Ferdinand Thiessen 2 weeks ago
committed by GitHub
parent
commit
496d497f8f
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 10
      lib/private/Memcache/Factory.php

10
lib/private/Memcache/Factory.php

@ -119,7 +119,10 @@ class Factory implements ICacheFactory {
$versions = $appConfig->getAppInstalledVersions();
}
$versions['core'] = implode('.', $this->serverVersion->getVersion());
$this->globalPrefix = hash('xxh128', implode(',', $versions));
// Include instanceid in the prefix, in case multiple instances use the same cache (e.g. same FPM pool)
$instanceid = $config->getValue('instanceid');
$this->globalPrefix = hash('xxh128', $instanceid . implode(',', $versions));
}
return $this->globalPrefix;
}
@ -132,7 +135,10 @@ class Factory implements ICacheFactory {
*/
public function withServerVersionPrefix(\Closure $closure): void {
$backupPrefix = $this->globalPrefix;
$this->globalPrefix = hash('xxh128', implode('.', $this->serverVersion->getVersion()));
// Include instanceid in the prefix, in case multiple instances use the same cache (e.g. same FPM pool)
$instanceid = \OCP\Server::get(SystemConfig::class)->getValue('instanceid');
$this->globalPrefix = hash('xxh128', $instanceid . implode('.', $this->serverVersion->getVersion()));
$closure($this);
$this->globalPrefix = $backupPrefix;
}

Loading…
Cancel
Save