Page MenuHomePhabricator

PHP Warning: RedisException: read error on connection (arclamp1001.eqiad.wmnet)
Closed, ResolvedPublicPRODUCTION ERROR

Description

Appears to be triggered by many different code paths. ~2,000 warnings in the last 3 days in our Product Safety and Integrity chore wheel dashboard. Filtering for all instances of this warnings it seems like ~20,000 in the last 3 days (with gaps where the warning does not occur) at https://logstash.wikimedia.org/goto/14ac0cb0f2af21a8c363a224ccf1a082

Error
  • mwversion: 1.47.0-wmf.11
  • timestamp: 2026-07-21T12:15:58.912Z
  • phpversion: 8.3.32
  • reqId: 4687625c-c185-4846-98b4-53a44f8eeb7b
  • Find reqId in Logstash
normalized_message
[{reqId}] {exception_url}   PHP Warning: RedisException: read error on connection to ...
FrameLocationCall
from/srv/mediawiki/src/Profiler.php(338)
#0[internal function]MediaWiki\Exception\MWExceptionHandler::handleError(int, string, string, int)
#1/srv/mediawiki/src/Profiler.php(338)trigger_error(string, int)
#2/srv/mediawiki/src/Profiler.php(235)Wikimedia\MWConfig\Profiler::excimerFlushToArclamp(array, array, string)
#3/srv/mediawiki/php-1.47.0-wmf.11/includes/AutoLoader.php(169)Wikimedia\MWConfig\Profiler::Wikimedia\MWConfig\{closure}(ExcimerLog)
#4/srv/mediawiki/php-1.47.0-wmf.11/extensions/QuickSurveys/includes/SurveyFactory.php(442)AutoLoader::autoload(string)
#5/srv/mediawiki/php-1.47.0-wmf.11/extensions/QuickSurveys/includes/SurveyFactory.php(107)QuickSurveys\SurveyFactory->factoryInternal(array)
#6/srv/mediawiki/php-1.47.0-wmf.11/extensions/QuickSurveys/includes/SurveyFactory.php(42)QuickSurveys\SurveyFactory->newSurvey(array)
#7/srv/mediawiki/php-1.47.0-wmf.11/extensions/QuickSurveys/includes/ServiceWiring.php(38)QuickSurveys\SurveyFactory->parseSurveyConfig(array)
#8/srv/mediawiki/php-1.47.0-wmf.11/vendor/wikimedia/services/src/ServiceContainer.php(440)Wikimedia\Services\ServiceContainer::{closure}(MediaWiki\MediaWikiServices)
#9/srv/mediawiki/php-1.47.0-wmf.11/vendor/wikimedia/services/src/ServiceContainer.php(406)Wikimedia\Services\ServiceContainer->createService(string)
#10/srv/mediawiki/php-1.47.0-wmf.11/includes/MediaWikiServices.php(392)Wikimedia\Services\ServiceContainer->getService(string)
#11/srv/mediawiki/php-1.47.0-wmf.11/extensions/QuickSurveys/includes/Hooks.php(103)MediaWiki\MediaWikiServices->getService(string)
#12/srv/mediawiki/php-1.47.0-wmf.11/includes/HookContainer/HookContainer.php(127)QuickSurveys\Hooks->onResourceLoaderRegisterModules(MediaWiki\ResourceLoader\ResourceLoader)
#13/srv/mediawiki/php-1.47.0-wmf.11/includes/ResourceLoader/HookRunner.php(57)MediaWiki\HookContainer\HookContainer->run(string, array, array)
#14/srv/mediawiki/php-1.47.0-wmf.11/includes/ServiceWiring.php(2296)MediaWiki\ResourceLoader\HookRunner->onResourceLoaderRegisterModules(MediaWiki\ResourceLoader\ResourceLoader)
#15/srv/mediawiki/php-1.47.0-wmf.11/vendor/wikimedia/services/src/ServiceContainer.php(440)Wikimedia\Services\ServiceContainer::{closure}(MediaWiki\MediaWikiServices)
#16/srv/mediawiki/php-1.47.0-wmf.11/vendor/wikimedia/services/src/ServiceContainer.php(406)Wikimedia\Services\ServiceContainer->createService(string)
#17/srv/mediawiki/php-1.47.0-wmf.11/includes/MediaWikiServices.php(392)Wikimedia\Services\ServiceContainer->getService(string)
#18/srv/mediawiki/php-1.47.0-wmf.11/includes/MediaWikiServices.php(2006)MediaWiki\MediaWikiServices->getService(string)
#19/srv/mediawiki/php-1.47.0-wmf.11/extensions/ConfirmEdit/includes/ServiceWiring.php(32)MediaWiki\MediaWikiServices->getResourceLoader()
#20/srv/mediawiki/php-1.47.0-wmf.11/vendor/wikimedia/services/src/ServiceContainer.php(440)Wikimedia\Services\ServiceContainer::MediaWiki\Extension\ConfirmEdit\hCaptcha\{closure}(MediaWiki\MediaWikiServices)
#21/srv/mediawiki/php-1.47.0-wmf.11/vendor/wikimedia/services/src/ServiceContainer.php(406)Wikimedia\Services\ServiceContainer->createService(string)
#22/srv/mediawiki/php-1.47.0-wmf.11/includes/MediaWikiServices.php(392)Wikimedia\Services\ServiceContainer->getService(string)
#23/srv/mediawiki/php-1.47.0-wmf.11/vendor/wikimedia/services/src/ServiceContainer.php(414)MediaWiki\MediaWikiServices->getService(string)
#24/srv/mediawiki/php-1.47.0-wmf.11/extensions/ConfirmEdit/includes/hCaptcha/HCaptcha.php(69)Wikimedia\Services\ServiceContainer->get(string)
#25/srv/mediawiki/php-1.47.0-wmf.11/extensions/ConfirmEdit/includes/Services/CaptchaFactory.php(88)MediaWiki\Extension\ConfirmEdit\hCaptcha\HCaptcha->__construct()
#26/srv/mediawiki/php-1.47.0-wmf.11/extensions/ConfirmEdit/includes/Services/CaptchaFactory.php(135)MediaWiki\Extension\ConfirmEdit\Services\CaptchaFactory->getGlobalInstance(string)
#27/srv/mediawiki/php-1.47.0-wmf.11/extensions/ConfirmEdit/includes/Hooks/Handlers/BeforePageDisplayHookHandler.php(63)MediaWiki\Extension\ConfirmEdit\Services\CaptchaFactory->getGlobalInstanceFromContext(MediaWiki\Output\OutputPage)
#28/srv/mediawiki/php-1.47.0-wmf.11/includes/HookContainer/HookContainer.php(127)MediaWiki\Extension\ConfirmEdit\Hooks\Handlers\BeforePageDisplayHookHandler->onBeforePageDisplay(MediaWiki\Output\OutputPage, MediaWiki\Skins\Vector\SkinVector22)
#29/srv/mediawiki/php-1.47.0-wmf.11/includes/HookContainer/HookRunner.php(1031)MediaWiki\HookContainer\HookContainer->run(string, array, array)
#30/srv/mediawiki/php-1.47.0-wmf.11/includes/Output/OutputPage.php(3094)MediaWiki\HookContainer\HookRunner->onBeforePageDisplay(MediaWiki\Output\OutputPage, MediaWiki\Skins\Vector\SkinVector22)
#31/srv/mediawiki/php-1.47.0-wmf.11/includes/Actions/ActionEntryPoint.php(162)MediaWiki\Output\OutputPage->output(bool)
#32/srv/mediawiki/php-1.47.0-wmf.11/includes/MediaWikiEntryPoint.php(180)MediaWiki\Actions\ActionEntryPoint->execute()
#33/srv/mediawiki/php-1.47.0-wmf.11/index.php(44)MediaWiki\MediaWikiEntryPoint->run()
#34/srv/mediawiki/w/index.php(3)require(string)
#35{main}

Notes: additional report T432771: PHP Warning: RedisException: read error on connection to arclamp1001.eqiad.wmnet:6379

Details

Request URL
https://hr.wikipedia.org/wiki/Popis_filozofa_znanosti?action=edit

Event Timeline

Adding SRE for triage (not sure who maintains the service that caused the warning)

jijiki renamed this task from PHP Warning: RedisException: read error on connection to PHP Warning: RedisException: read error on connection (arclamp1001.eqiad.wmnet).Wed, Jul 22, 8:49 AM
jijiki updated the task description. (Show Details)
jijiki edited projects, added: observability; removed: ServiceOps-Mediawiki.
jijiki added a subscriber: dancy.
colewhite subscribed.

The redis logs don't have anything really interesting in them. I restarted redis on arclamp1001 as a first step to see if these errors clear up. I will circle back on the logs later this week to see if this issue persists.

I think the hosts are periodically running out of memory. The graphs are sometimes noisier/less obvious than other times, but e.g. this time period in Grafana shows what looks to me like a clear memory problem that overwhelms the host to the point of suddenly not responding to Prometheus metric collection:

image.png (1,793×1,285 px, 338 KB)

(bottom graph edited to show points -- note the lack of points shortly after memory utilization maxes out, and then the host coming back with low memory utilization, presumably after OOM killer does its job?)

I do not know what makes the memory spikes happen, but I'm quite convinced that it's worth looking at this angle.

The restart doesn't appear to have alleviated the problem - I see more redis connection exceptions since the restart.

Chances are it's hitting out of memory, as you say, due to flamegraph generation. Since this is a physical host, memory upgrades will have to be coordinated with dc-ops.

Memory was upgraded on arclamp1001 today and I'm seeing used memory max out at around 32GB. I'll keep an eye on it.

Adding SRE for triage (not sure who maintains the service that caused the warning)

For future routing of the issues, I added ownership information to Redis clusters Wikitech page

Seems the memory upgrade has had a positive effect. Optimistically resolving!