Make makeKeyInternal() limit more conservative

This should avoid error log entries for long WAN cache keys

Change-Id: I401482d25dd5bf47052a3c6729c5f8bc9fd68770
This commit is contained in:
Aaron Schulz 2015-11-01 19:19:38 -08:00
parent 87a998f482
commit d2d935483f
2 changed files with 4 additions and 3 deletions

View file

@ -103,8 +103,9 @@ class MemcachedBagOStuff extends BagOStuff {
public function makeKeyInternal( $keyspace, $args ) {
// Memcached keys have a maximum length of 255 characters. From that,
// subtract the number of characters we need for the keyspace and for
// the separator character needed for each argument.
$charsLeft = 255 - strlen( $keyspace ) - count( $args );
// the separator character needed for each argument. To handle some
// custom prefixes used by thing like WANObjectCache, limit to 205.
$charsLeft = 205 - strlen( $keyspace ) - count( $args );
$args = array_map(
function ( $arg ) use ( &$charsLeft ) {

View file

@ -42,7 +42,7 @@ class MemcachedBagOStuffTest extends MediaWikiTestCase {
);
$this->assertEquals(
'test:##5820ad1d105aa4dc698585c39df73e19',
'test:##dc89dcb43b28614da27660240af478b5',
$this->cache->makeKey( '𝕖𝕧𝕖𝕟', '𝕚𝕗', '𝕨𝕖', '𝕄𝔻𝟝', '𝕖𝕒𝕔𝕙',
'𝕒𝕣𝕘𝕦𝕞𝕖𝕟𝕥', '𝕥𝕙𝕚𝕤', '𝕜𝕖𝕪', '𝕨𝕠𝕦𝕝𝕕', '𝕤𝕥𝕚𝕝𝕝', '𝕓𝕖', '𝕥𝕠𝕠', '𝕝𝕠𝕟𝕘' )
);