Use cache set options in SqlBlobStore::getBlob
authorAaron Schulz <aschulz@wikimedia.org>
Mon, 18 Dec 2017 20:35:52 +0000 (12:35 -0800)
committerAaron Schulz <aschulz@wikimedia.org>
Fri, 12 Jan 2018 18:42:16 +0000 (18:42 +0000)
This is useful for sanity in the case of DB rollback.

Change-Id: I2e50183835a97bc82efee53a407a624f0e35f53f

includes/Storage/SqlBlobStore.php

index 5ddbd34..ec66431 100644 (file)
@@ -35,6 +35,7 @@ use Language;
 use MWException;
 use WANObjectCache;
 use Wikimedia\Assert\Assert;
+use Wikimedia\Rdbms\Database;
 use Wikimedia\Rdbms\IDatabase;
 use Wikimedia\Rdbms\LoadBalancer;
 
@@ -269,7 +270,10 @@ class SqlBlobStore implements IDBAccessObject, BlobStore {
                        // TODO: change key, since this is not necessarily revision text!
                        $this->cache->makeKey( 'revisiontext', 'textid', $blobAddress ),
                        $this->getCacheTTL(),
-                       function () use ( $blobAddress, $queryFlags ) {
+                       function ( $unused, &$ttl, &$setOpts ) use ( $blobAddress, $queryFlags ) {
+                               list( $index ) = DBAccessObjectUtils::getDBOptions( $queryFlags );
+                               $setOpts += Database::getCacheSetOptions( $this->getDBConnection( $index ) );
+
                                return $this->fetchBlob( $blobAddress, $queryFlags );
                        },
                        [ 'pcGroup' => self::TEXT_CACHE_GROUP, 'pcTTL' => IExpiringStore::TTL_PROC_LONG ]