Page MenuHomePhabricator

Deprecated: strtr(): Passing null to parameter #1 ($string) of type string is deprecated in MemcachedBagOStuff.php on line 68
Closed, ResolvedPublic

Description

( ! ) Deprecated: strtr(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/wiki/mediawiki/core/includes/libs/objectcache/MemcachedBagOStuff.php on line 68
Call Stack
#	Time	Memory	Function	Location
1	0.0001	362528	{main}( )	.../index.php:0
2	0.0426	3579176	wfIndexMain( )	.../index.php:46
3	0.0426	3579288	MediaWiki->run( )	.../index.php:50
4	0.0426	3579288	MediaWiki->main( )	.../MediaWiki.php:569
5	0.0431	3586616	MediaWiki->performRequest( )	.../MediaWiki.php:913
6	0.0512	3790752	MediaWiki->performAction( $article = class Article { protected $mContext = class RequestContext { private $request = class WebRequest { ... }; private $title = class Title { ... }; private $wikipage = class WikiPage { ... }; private $action = 'info'; private $output = class OutputPage { ... }; private $user = class User { ... }; private $authority = NULL; private $lang = class Language { ... }; private $skin = NULL; private $timing = NULL; private $config = class GlobalVarConfig { ... }; private $languageRecursion = FALSE }; protected $mPage = class WikiPage { protected $mTitle = class Title { ... }; protected $mDataLoaded = TRUE; private $mPageIsRedirectField = FALSE; private $mHasRedirectTarget = NULL; protected $mRedirectTarget = NULL; private $mIsNew = FALSE; private $mIsRedirect = FALSE; protected $mLatest = 658; protected $mPreparedEdit = FALSE; protected $mId = 371; protected $mDataLoadedFrom = 0; private $mLastRevision = class MediaWiki\Revision\RevisionStoreCacheRecord { ... }; protected $mTimestamp = '20200629125152'; protected $mTouched = '20200629125152'; protected $mLanguage = NULL; protected $mLinksUpdated = '20200629125152'; private $derivedDataUpdater = NULL }; public $mOldId = 0; public $mRedirectedFrom = NULL; public $mRedirectUrl = FALSE; private $fetchResult = NULL; public $mParserOutput = NULL; protected $viewIsRenderAction = FALSE; protected $linkRenderer = class MediaWiki\Linker\LinkRenderer { private $forceArticlePath = FALSE; private $expandUrls = FALSE; private $comment = FALSE; private $titleFormatter = class MediaWikiTitleCodec { ... }; private $linkCache = class LinkCache { ... }; private $hookRunner = class MediaWiki\HookContainer\HookRunner { ... }; private $specialPageFactory = class MediaWiki\SpecialPage\SpecialPageFactory { ... } }; private $revisionStore = class MediaWiki\Revision\RevisionStore { private $blobStore = class MediaWiki\Storage\SqlBlobStore { ... }; private $wikiId = FALSE; private $loadBalancer = class Wikimedia\Rdbms\LoadBalancer { ... }; private $cache = class WANObjectCache { ... }; private $localCache = class APCUBagOStuff { ... }; private $commentStore = class CommentStore { ... }; private $actorMigration = class ActorMigration { ... }; private $actorStore = class MediaWiki\User\ActorStore { ... }; private $logger = class MediaWiki\Logger\LegacyLogger { ... }; private $contentModelStore = class MediaWiki\Storage\NameTableStore { ... }; private $slotRoleStore = class MediaWiki\Storage\NameTableStore { ... }; private $slotRoleRegistry = class MediaWiki\Revision\SlotRoleRegistry { ... }; private $contentHandlerFactory = class MediaWiki\Content\ContentHandlerFactory { ... }; private $hookRunner = class MediaWiki\HookContainer\HookRunner { ... }; private $pageStore = class MediaWiki\Page\PageStore { ... }; private $titleFactory = class TitleFactory { ... } }; private $watchlistManager = class MediaWiki\Watchlist\WatchlistManager { private $options = class MediaWiki\Config\ServiceOptions { ... }; private $hookRunner = class MediaWiki\HookContainer\HookRunner { ... }; private $readOnlyMode = class ReadOnlyMode { ... }; private $revisionLookup = class MediaWiki\Revision\RevisionStore { ... }; private $talkPageNotificationManager = class MediaWiki\User\TalkPageNotificationManager { ... }; private $watchedItemStore = class WatchedItemStore { ... }; private $userFactory = class MediaWiki\User\UserFactory { ... }; private $nsInfo = class NamespaceInfo { ... }; private $wikiPageFactory = class MediaWiki\Page\WikiPageFactory { ... }; private $notificationTimestampCache = [...] }; private $userNameUtils = class MediaWiki\User\UserNameUtils { private $options = class MediaWiki\Config\ServiceOptions { ... }; private $contentLang = class Language { ... }; private $logger = class MediaWiki\Logger\LegacyLogger { ... }; private $titleParser = class MediaWikiTitleCodec { ... }; private $textFormatter = class MediaWiki\Message\TextFormatter { ... }; private $reservedUsernames = FALSE; private $hookRunner = class MediaWiki\HookContainer\HookRunner { ... }; private $tempUserConfig = class MediaWiki\User\TempUser\RealTempUserConfig { ... } }; private $mRevisionRecord = NULL }, $requestTitle = class Title { private $mTextform = 'Main Page'; private $mUrlform = 'Main_Page'; private $mDbkeyform = 'Main_Page'; private $mNamespace = 0; private $mInterwiki = ''; private $mLocalInterwiki = FALSE; private $mFragment = ''; public $mArticleID = 371; protected $mLatestID = 658; private $mContentModel = 'wikitext'; private $mForcedContentModel = FALSE; private $mEstimateRevisions = NULL; public $prefixedText = 'Main Page'; protected $mLength = 1467; public $mRedirect = FALSE; private $mHasSubpages = NULL; private $mPageLanguage = [0 => 'en-gb', 1 => 'en-gb']; private $mDbPageLanguage = FALSE; private $mTitleValue = NULL; private $mIsBigDeletion = NULL; private $mIsValid = TRUE; private $mInstanceCacheKey = NULL; protected $deprecatedPublicProperties = ['mTextform' => [...], 'mUrlform' => [...], 'mDbkeyform' => [...], 'mNamespace' => [...], 'mInterwiki' => [...], 'mFragment' => [...]]; private $dynamicPropertiesAccessDeprecated = FALSE } )	.../MediaWiki.php:322
7	0.0563	3923152	FormlessAction->show( )	.../MediaWiki.php:549
8	0.0752	5145488	InfoAction->onView( )	.../FormlessAction.php:48
9	0.1060	5484360	MediaWiki\HookContainer\HookRunner->onInfoAction( $context = class RequestContext { private $request = class WebRequest { protected $data = [...]; protected $queryAndPathParams = [...]; protected $queryParams = [...]; protected $headers = [...]; private $response = class WebResponse { ... }; private $ip = '10.13.37.22'; protected $requestTime = 1656456887.4128; protected $protocol = 'http'; protected $sessionId = class MediaWiki\Session\SessionId { ... }; protected $markedAsSafe = FALSE }; private $title = class Title { private $mTextform = 'Main Page'; private $mUrlform = 'Main_Page'; private $mDbkeyform = 'Main_Page'; private $mNamespace = 0; private $mInterwiki = ''; private $mLocalInterwiki = FALSE; private $mFragment = ''; public $mArticleID = 371; protected $mLatestID = 658; private $mContentModel = 'wikitext'; private $mForcedContentModel = FALSE; private $mEstimateRevisions = NULL; public $prefixedText = 'Main Page'; protected $mLength = 1467; public $mRedirect = FALSE; private $mHasSubpages = NULL; private $mPageLanguage = [...]; private $mDbPageLanguage = FALSE; private $mTitleValue = NULL; private $mIsBigDeletion = NULL; private $mIsValid = TRUE; private $mInstanceCacheKey = NULL; protected $deprecatedPublicProperties = [...]; private $dynamicPropertiesAccessDeprecated = FALSE }; private $wikipage = class WikiPage { protected $mTitle = class Title { ... }; protected $mDataLoaded = TRUE; private $mPageIsRedirectField = FALSE; private $mHasRedirectTarget = NULL; protected $mRedirectTarget = NULL; private $mIsNew = FALSE; private $mIsRedirect = FALSE; protected $mLatest = 658; protected $mPreparedEdit = FALSE; protected $mId = 371; protected $mDataLoadedFrom = 0; private $mLastRevision = class MediaWiki\Revision\RevisionStoreCacheRecord { ... }; protected $mTimestamp = '20200629125152'; protected $mTouched = '20200629125152'; protected $mLanguage = NULL; protected $mLinksUpdated = '20200629125152'; private $derivedDataUpdater = NULL }; private $action = 'info'; private $output = class OutputPage { private ${ContextSource}context = ...; protected $mMetatags = [...]; protected $mLinktags = [...]; protected $mCanonicalUrl = FALSE; private $mPageTitle = 'Information for "Main Page"'; private $displayTitle = NULL; private $cacheIsFinal = FALSE; public $mBodytext = ''; private $mHTMLtitle = 'Information for "Main Page" - ReedyDevWiki'; private $mIsArticle = FALSE; private $mIsArticleRelated = TRUE; private $mHasCopyright = FALSE; private $mPrintable = FALSE; private $mSections = [...]; private $mSubtitle = [...]; public $mRedirect = ''; protected $mStatusCode = NULL; protected $mLastModified = ''; protected $mCategoryLinks = [...]; protected $mCategories = [...]; protected $mIndicators = [...]; private $mLanguageLinks = [...]; private $mScripts = ''; protected $mInlineStyles = ''; public $mPageLinkTitle = ''; protected $mAdditionalHtmlClasses = [...]; protected $mHeadItems = [...]; protected $mAdditionalBodyClasses = [...]; protected $mModules = [...]; protected $mModuleStyles = [...]; protected $mResourceLoader = NULL; private $rlClient = NULL; private $rlClientContext = NULL; private $rlExemptStyleModules = NULL; protected $mJsConfigVars = [...]; protected $mTemplateIds = [...]; protected $mImageTimeKeys = [...]; public $mRedirectCode = ''; protected $mFeedLinksAppendQuery = NULL; protected $mAllowedModules = [...]; protected $mDoNothing = FALSE; protected $mParserOptions = NULL; private $mFeedLinks = [...]; protected $mEnableClientCache = TRUE; private $mArticleBodyOnly = FALSE; protected $mNewSectionLink = FALSE; protected $mHideNewSectionLink = FALSE; public $mNoGallery = FALSE; protected $mCdnMaxage = 0; protected $mCdnMaxageLimit = INF; protected $mPreventClickjacking = TRUE; private $mRevisionId = NULL; private $mRevisionTimestamp = NULL; protected $mFileVersion = NULL; protected $styles = [...]; private $mIndexPolicy = 'noindex'; private $mFollowPolicy = 'nofollow'; private $mRobotsOptions = [...]; private $mVaryHeader = [...]; private $mRedirectedFrom = NULL; private $mProperties = [...]; private $mTarget = NULL; private $mEnableTOC = FALSE; private $copyrightUrl = NULL; private $limitReportJSData = [...]; private $contentOverrides = [...]; private $contentOverrideCallbacks = [...]; private $mLinkHeader = [...]; private $CSP = class ContentSecurityPolicy { ... } }; private $user = class User { public $mId = 0; public $mName = '10.13.37.22'; public $mActorId = NULL; public $mRealName = ''; public $mEmail = ''; public $mTouched = '1'; protected $mQuickTouched = NULL; protected $mToken = NULL; public $mEmailAuthenticated = NULL; protected $mEmailToken = ''; protected $mEmailTokenExpires = NULL; protected $mRegistration = '20220628225447'; protected $mLoadedItems = TRUE; public $mFrom = 'session'; protected $mDatePreference = 'default'; private $mBlockedby = -1; protected $mHash = FALSE; protected $mBlockreason = NULL; protected $mGlobalBlock = NULL; protected $mLocked = NULL; private $mHideName = NULL; private $mRequest = class WebRequest { ... }; private $mBlock = NULL; private $mBlockedFromCreateAccount = FALSE; protected $queryFlagsUsed = 0; private $mThisAsAuthority = class MediaWiki\Permissions\UserAuthority { ... }; private $isTemp = NULL }; private $authority = NULL; private $lang = class Language { public $mCode = 'en-gb'; public $mMagicExtensions = [...]; private $mHtmlCode = NULL; public $dateFormatStrings = [...]; public $mExtendedSpecialPageAliases = [...]; protected $namespaceNames = [...]; protected $mNamespaceIds = NULL; protected $namespaceAliases = NULL; private $transformData = [...]; private $namespaceInfo = class NamespaceInfo { ... }; private $localisationCache = class LocalisationCache { ... }; private $langNameUtils = class MediaWiki\Languages\LanguageNameUtils { ... }; private $langFallback = class MediaWiki\Languages\LanguageFallback { ... }; private $grammarTransformCache = NULL; private $converterFactory = class MediaWiki\Languages\LanguageConverterFactory { ... }; private $hookContainer = class MediaWiki\HookContainer\HookContainer { ... }; private $hookRunner = class MediaWiki\HookContainer\HookRunner { ... }; private $config = class GlobalVarConfig { ... } }; private $skin = NULL; private $timing = NULL; private $config = class GlobalVarConfig { private $prefix = 'wg' }; private $languageRecursion = FALSE }, $pageInfo = ['header-basic' => [0 => [...], 1 => [...], 2 => [...], 3 => [...], 4 => [...], 5 => [...], 6 => [...], 7 => [...], 8 => [...], 9 => [...]], 'header-restrictions' => [0 => [...], 1 => [...], 2 => [...]], 'header-edits' => [0 => [...], 1 => [...], 2 => [...], 3 => [...], 4 => [...], 5 => [...], 6 => [...], 7 => [...]]] )	.../InfoAction.php:245
10	0.1060	5484736	MediaWiki\HookContainer\HookContainer->run( $hook = 'InfoAction', $args = [0 => class RequestContext { private $request = class WebRequest { ... }; private $title = class Title { ... }; private $wikipage = class WikiPage { ... }; private $action = 'info'; private $output = class OutputPage { ... }; private $user = class User { ... }; private $authority = NULL; private $lang = class Language { ... }; private $skin = NULL; private $timing = NULL; private $config = class GlobalVarConfig { ... }; private $languageRecursion = FALSE }, 1 => ['header-basic' => [...], 'header-restrictions' => [...], 'header-edits' => [...]]], $options = ??? )	.../HookRunner.php:2148
11	0.1060	5485864	MediaWiki\HookContainer\HookContainer->callLegacyHook( $hook = 'InfoAction', $handler = ['callback' => 'MediaWiki\\Extension\\PageViewInfo\\Hooks::onInfoAction', 'args' => [], 'functionName' => 'MediaWiki\\Extension\\PageViewInfo\\Hooks::onInfoAction'], $args = [0 => class RequestContext { private $request = class WebRequest { ... }; private $title = class Title { ... }; private $wikipage = class WikiPage { ... }; private $action = 'info'; private $output = class OutputPage { ... }; private $user = class User { ... }; private $authority = NULL; private $lang = class Language { ... }; private $skin = NULL; private $timing = NULL; private $config = class GlobalVarConfig { ... }; private $languageRecursion = FALSE }, 1 => ['header-basic' => [...], 'header-restrictions' => [...], 'header-edits' => [...]]], $options = [] )	.../HookContainer.php:137
12	0.1066	5486512	MediaWiki\Extension\PageViewInfo\Hooks::onInfoAction( $ctx = class RequestContext { private $request = class WebRequest { protected $data = [...]; protected $queryAndPathParams = [...]; protected $queryParams = [...]; protected $headers = [...]; private $response = class WebResponse { ... }; private $ip = '10.13.37.22'; protected $requestTime = 1656456887.4128; protected $protocol = 'http'; protected $sessionId = class MediaWiki\Session\SessionId { ... }; protected $markedAsSafe = FALSE }; private $title = class Title { private $mTextform = 'Main Page'; private $mUrlform = 'Main_Page'; private $mDbkeyform = 'Main_Page'; private $mNamespace = 0; private $mInterwiki = ''; private $mLocalInterwiki = FALSE; private $mFragment = ''; public $mArticleID = 371; protected $mLatestID = 658; private $mContentModel = 'wikitext'; private $mForcedContentModel = FALSE; private $mEstimateRevisions = NULL; public $prefixedText = 'Main Page'; protected $mLength = 1467; public $mRedirect = FALSE; private $mHasSubpages = NULL; private $mPageLanguage = [...]; private $mDbPageLanguage = FALSE; private $mTitleValue = NULL; private $mIsBigDeletion = NULL; private $mIsValid = TRUE; private $mInstanceCacheKey = NULL; protected $deprecatedPublicProperties = [...]; private $dynamicPropertiesAccessDeprecated = FALSE }; private $wikipage = class WikiPage { protected $mTitle = class Title { ... }; protected $mDataLoaded = TRUE; private $mPageIsRedirectField = FALSE; private $mHasRedirectTarget = NULL; protected $mRedirectTarget = NULL; private $mIsNew = FALSE; private $mIsRedirect = FALSE; protected $mLatest = 658; protected $mPreparedEdit = FALSE; protected $mId = 371; protected $mDataLoadedFrom = 0; private $mLastRevision = class MediaWiki\Revision\RevisionStoreCacheRecord { ... }; protected $mTimestamp = '20200629125152'; protected $mTouched = '20200629125152'; protected $mLanguage = NULL; protected $mLinksUpdated = '20200629125152'; private $derivedDataUpdater = NULL }; private $action = 'info'; private $output = class OutputPage { private ${ContextSource}context = ...; protected $mMetatags = [...]; protected $mLinktags = [...]; protected $mCanonicalUrl = FALSE; private $mPageTitle = 'Information for "Main Page"'; private $displayTitle = NULL; private $cacheIsFinal = FALSE; public $mBodytext = ''; private $mHTMLtitle = 'Information for "Main Page" - ReedyDevWiki'; private $mIsArticle = FALSE; private $mIsArticleRelated = TRUE; private $mHasCopyright = FALSE; private $mPrintable = FALSE; private $mSections = [...]; private $mSubtitle = [...]; public $mRedirect = ''; protected $mStatusCode = NULL; protected $mLastModified = ''; protected $mCategoryLinks = [...]; protected $mCategories = [...]; protected $mIndicators = [...]; private $mLanguageLinks = [...]; private $mScripts = ''; protected $mInlineStyles = ''; public $mPageLinkTitle = ''; protected $mAdditionalHtmlClasses = [...]; protected $mHeadItems = [...]; protected $mAdditionalBodyClasses = [...]; protected $mModules = [...]; protected $mModuleStyles = [...]; protected $mResourceLoader = NULL; private $rlClient = NULL; private $rlClientContext = NULL; private $rlExemptStyleModules = NULL; protected $mJsConfigVars = [...]; protected $mTemplateIds = [...]; protected $mImageTimeKeys = [...]; public $mRedirectCode = ''; protected $mFeedLinksAppendQuery = NULL; protected $mAllowedModules = [...]; protected $mDoNothing = FALSE; protected $mParserOptions = NULL; private $mFeedLinks = [...]; protected $mEnableClientCache = TRUE; private $mArticleBodyOnly = FALSE; protected $mNewSectionLink = FALSE; protected $mHideNewSectionLink = FALSE; public $mNoGallery = FALSE; protected $mCdnMaxage = 0; protected $mCdnMaxageLimit = INF; protected $mPreventClickjacking = TRUE; private $mRevisionId = NULL; private $mRevisionTimestamp = NULL; protected $mFileVersion = NULL; protected $styles = [...]; private $mIndexPolicy = 'noindex'; private $mFollowPolicy = 'nofollow'; private $mRobotsOptions = [...]; private $mVaryHeader = [...]; private $mRedirectedFrom = NULL; private $mProperties = [...]; private $mTarget = NULL; private $mEnableTOC = FALSE; private $copyrightUrl = NULL; private $limitReportJSData = [...]; private $contentOverrides = [...]; private $contentOverrideCallbacks = [...]; private $mLinkHeader = [...]; private $CSP = class ContentSecurityPolicy { ... } }; private $user = class User { public $mId = 0; public $mName = '10.13.37.22'; public $mActorId = NULL; public $mRealName = ''; public $mEmail = ''; public $mTouched = '1'; protected $mQuickTouched = NULL; protected $mToken = NULL; public $mEmailAuthenticated = NULL; protected $mEmailToken = ''; protected $mEmailTokenExpires = NULL; protected $mRegistration = '20220628225447'; protected $mLoadedItems = TRUE; public $mFrom = 'session'; protected $mDatePreference = 'default'; private $mBlockedby = -1; protected $mHash = FALSE; protected $mBlockreason = NULL; protected $mGlobalBlock = NULL; protected $mLocked = NULL; private $mHideName = NULL; private $mRequest = class WebRequest { ... }; private $mBlock = NULL; private $mBlockedFromCreateAccount = FALSE; protected $queryFlagsUsed = 0; private $mThisAsAuthority = class MediaWiki\Permissions\UserAuthority { ... }; private $isTemp = NULL }; private $authority = NULL; private $lang = class Language { public $mCode = 'en-gb'; public $mMagicExtensions = [...]; private $mHtmlCode = NULL; public $dateFormatStrings = [...]; public $mExtendedSpecialPageAliases = [...]; protected $namespaceNames = [...]; protected $mNamespaceIds = NULL; protected $namespaceAliases = NULL; private $transformData = [...]; private $namespaceInfo = class NamespaceInfo { ... }; private $localisationCache = class LocalisationCache { ... }; private $langNameUtils = class MediaWiki\Languages\LanguageNameUtils { ... }; private $langFallback = class MediaWiki\Languages\LanguageFallback { ... }; private $grammarTransformCache = NULL; private $converterFactory = class MediaWiki\Languages\LanguageConverterFactory { ... }; private $hookContainer = class MediaWiki\HookContainer\HookContainer { ... }; private $hookRunner = class MediaWiki\HookContainer\HookRunner { ... }; private $config = class GlobalVarConfig { ... } }; private $skin = NULL; private $timing = NULL; private $config = class GlobalVarConfig { private $prefix = 'wg' }; private $languageRecursion = FALSE }, $pageInfo = ['header-basic' => [0 => [...], 1 => [...], 2 => [...], 3 => [...], 4 => [...], 5 => [...], 6 => [...], 7 => [...], 8 => [...], 9 => [...]], 'header-restrictions' => [0 => [...], 1 => [...], 2 => [...]], 'header-edits' => [0 => [...], 1 => [...], 2 => [...], 3 => [...], 4 => [...], 5 => [...], 6 => [...], 7 => [...]]] )	.../HookContainer.php:338
13	0.1086	5488120	MediaWiki\Extension\PageViewInfo\CachedPageViewService->getPageData( $titles = [0 => class Title { private $mTextform = 'Main Page'; private $mUrlform = 'Main_Page'; private $mDbkeyform = 'Main_Page'; private $mNamespace = 0; private $mInterwiki = ''; private $mLocalInterwiki = FALSE; private $mFragment = ''; public $mArticleID = 371; protected $mLatestID = 658; private $mContentModel = 'wikitext'; private $mForcedContentModel = FALSE; private $mEstimateRevisions = NULL; public $prefixedText = 'Main Page'; protected $mLength = 1467; public $mRedirect = FALSE; private $mHasSubpages = NULL; private $mPageLanguage = [...]; private $mDbPageLanguage = FALSE; private $mTitleValue = NULL; private $mIsBigDeletion = NULL; private $mIsValid = TRUE; private $mInstanceCacheKey = NULL; protected $deprecatedPublicProperties = [...]; private $dynamicPropertiesAccessDeprecated = FALSE }], $days = 30, $metric = 'view' )	.../Hooks.php:31
14	0.1086	5488120	MediaWiki\Extension\PageViewInfo\CachedPageViewService->getTitlesWithCache( $metric = 'view', $titles = [0 => class Title { private $mTextform = 'Main Page'; private $mUrlform = 'Main_Page'; private $mDbkeyform = 'Main_Page'; private $mNamespace = 0; private $mInterwiki = ''; private $mLocalInterwiki = FALSE; private $mFragment = ''; public $mArticleID = 371; protected $mLatestID = 658; private $mContentModel = 'wikitext'; private $mForcedContentModel = FALSE; private $mEstimateRevisions = NULL; public $prefixedText = 'Main Page'; protected $mLength = 1467; public $mRedirect = FALSE; private $mHasSubpages = NULL; private $mPageLanguage = [...]; private $mDbPageLanguage = FALSE; private $mTitleValue = NULL; private $mIsBigDeletion = NULL; private $mIsValid = TRUE; private $mInstanceCacheKey = NULL; protected $deprecatedPublicProperties = [...]; private $dynamicPropertiesAccessDeprecated = FALSE }] )	.../CachedPageViewService.php:61
15	0.1086	5488560	MediumSpecificBagOStuff->makeKey( $collection = 'pvi', ...$components = variadic(NULL, 60, 'view', 'article', '8ef90d6fe2da950ea6e365958d8d26a7') )	.../CachedPageViewService.php:156
16	0.1086	5489312	MemcachedBagOStuff->makeKeyInternal( $keyspace = 'wikidb-mw_', $components = [0 => 'pvi', 1 => NULL, 2 => 60, 3 => 'view', 4 => 'article', 5 => '8ef90d6fe2da950ea6e365958d8d26a7'] )	.../MediumSpecificBagOStuff.php:974
17	0.1086	5489784	strtr( $string = NULL, $from = ' ', $to = '_' )	.../MemcachedBagOStuff.php:68

Event Timeline

		foreach ( $titles as $title ) {
			$titleToCacheKey[$title->getPrefixedDBkey()] = $this->cache->makeKey( 'pvi', $this->prefix,
				$this->cachedDays, $metric, self::SCOPE_ARTICLE, md5( $title->getPrefixedDBkey() ) );
		}

$this->prefix is null...

Do we want to just swap it to $this->prefix ?? '' or do we need to fix where it's being set?

Which (at least in ServiceWiring.php) is obvious:

		$cachedService = new CachedPageViewService( $service, $cache );
		$cachedService->setCachedDays( $cachedDays );
		$cachedService->setLogger( $logger );
		return $cachedService;

Or set the default to '' in the constructor?

Change 809337 had a related patch set uploaded (by Krinkle; author: Krinkle):

[mediawiki/extensions/PageViewInfo@master] CachedPageViewService: Ensure $prefix is a string

https://gerrit.wikimedia.org/r/809337

		foreach ( $titles as $title ) {
			$titleToCacheKey[$title->getPrefixedDBkey()] = $this->cache->makeKey( 'pvi', $this->prefix,
				$this->cachedDays, $metric, self::SCOPE_ARTICLE, md5( $title->getPrefixedDBkey() ) );
		}

$this->prefix is null...

Do we want to just swap it to $this->prefix ?? '' or do we need to fix where it's being set? […]

Or set the default to '' in the constructor?

Source code: PageViewInfo/CachedPageViewService.php

I'd go with the constructor. Patch is up :)

Change 809337 merged by jenkins-bot:

[mediawiki/extensions/PageViewInfo@master] CachedPageViewService: Ensure $prefix is a string

https://gerrit.wikimedia.org/r/809337

Change 809265 had a related patch set uploaded (by Reedy; author: Krinkle):

[mediawiki/extensions/PageViewInfo@REL1_38] CachedPageViewService: Ensure $prefix is a string

https://gerrit.wikimedia.org/r/809265

Change 809346 had a related patch set uploaded (by Reedy; author: Krinkle):

[mediawiki/extensions/PageViewInfo@REL1_37] CachedPageViewService: Ensure $prefix is a string

https://gerrit.wikimedia.org/r/809346

Change 809347 had a related patch set uploaded (by Reedy; author: Krinkle):

[mediawiki/extensions/PageViewInfo@REL1_35] CachedPageViewService: Ensure $prefix is a string

https://gerrit.wikimedia.org/r/809347

Reedy assigned this task to Krinkle.

Change 809265 merged by jenkins-bot:

[mediawiki/extensions/PageViewInfo@REL1_38] CachedPageViewService: Ensure $prefix is a string

https://gerrit.wikimedia.org/r/809265

Change 809346 merged by jenkins-bot:

[mediawiki/extensions/PageViewInfo@REL1_37] CachedPageViewService: Ensure $prefix is a string

https://gerrit.wikimedia.org/r/809346

Change 809347 merged by jenkins-bot:

[mediawiki/extensions/PageViewInfo@REL1_35] CachedPageViewService: Ensure $prefix is a string

https://gerrit.wikimedia.org/r/809347