Page MenuHomePhabricator

wikifunctions.org failures in codfw with 414 error
Closed, ResolvedPublicPRODUCTION ERROR

Description

Hi, unsure which exact tag to add, so tagging with Abstract Wikipedia team, hoping it will be good enough as a starting tag.

Today at 13:10:21 UTC we had a paging incident for wikifunctions.org (the actual wiki, not the orchestrator/evaluator).

FIRING: ProbeDown: Service mw-wikifunctions:4451 has failed probes (http_mw-wikifunctions_ip4) - https://wikitech.wikimedia.org/wiki/Runbook#mw-wikifunctions:4451 - https://grafana.wikimedia.org/d/O0nHhdhnz/network-probes-overview?var-job=probes/service&var-module=All - https://alerts.wikimedia.org/?q=alertname%3DProbeDown

Looking at grafana this only manifested in our Dallas DC, a pretty good sign this is related to some specific regional traffic. This is also corroborated by PHP FPM workers for this specific wiki that start at ~11:00 UTC to be way more utilized, at times up to 100%

image.png (323×1 px, 55 KB)

Traffic hasn't increased correspondingly, it's still at the [same levels as before the event depicted above]
(https://grafana.wikimedia.org/d/35WSHOjVk/application-servers-red-k8s?orgId=1&from=1725605323479&to=1725630378539&var-site=codfw&var-deployment=mw-wikifunctions&var-method=GET&var-code=200&var-handler=php&var-service=mediawiki), namely max 6 rps

image.png (424×635 px, 58 KB)

Latencies and error rates has also increased considerably.

The amount of traffic making it to the service (max 6 rps) and the still in development nature of wikifunctions doesn't makes it unappealing to yield any ban hammer against whatever traffic is causing this.

Apache logs have the following:

{"timestamp": "2024-09-06T12:55:08", "RequestTime": "101", "Client-IP": "127.0.0.1", "Handle/Status": "-/414", "ResponseSize": "248", "Method": "-", "Url": "http://--", "MimeType": "text/html", "Referer": "-", "X-Forwarded-For": "-", "User-Agent": "-", "Accept-Language": "-", "X-Analytics": "-", "User": "-", "UserHeader": "-", "Connect-IP": "127.0.0.1", "X-Request-Id": "-", "X-Client-IP": "-"}

but not much more.

php fpm logs are more telling (I think)

[06-Sep-2024 13:57:02] WARNING: [pool www] child 255443, script '/srv/mediawiki/docroot/wikifunctions.org/w/api.php' (request: "GET /w/api.php?action=wikilambda_perform_test&format=json&uselang=en&wikilambda_perform_test_zfunction=Z10132&wikilambda_perform_test_zimplementations=Z10133&wikilambda_perform_test_ztesters=Z10134") execution timed out (202.138660 sec), terminating

HTTP 414 stands for URI Too Long

Event Timeline

Mentioned in SAL (#wikimedia-operations) [2024-09-06T14:07:43Z] <akosiaris> silence alerts based on alertname=PHPFPMTooBusy,deployment=mw-wikifunctions,site=codfw T374241

hashar subscribed.

There have been roughly 2500 of them since 10:30 UTC. https://logstash.wikimedia.org/goto/edd6a2109bb2c3fc5faa485ec6c28881 . The errors do not show up cause the MediaWiki stacktrace is so long that the json formatted log ends up being truncated (I thought we had MediaWiki to truncate fields that are too long to prevent that, but I have dreamed).

An example trace:

stacktrace
[6cb71780-e468-4045-8a02-ffba853029c3] /w/api.php?action=wikilambda_perform_test&format=json&uselang=en&wikilambda_perform_test_zfunction=Z10883&wikilambda_perform_test_zimplementations=Z15705%7CZ10926%7CZ10884&wikilambda_perform_test_ztesters=Z10885%7CZ10886%7CZ10887%7CZ13130   Wikimedia\\RequestTimeout\\RequestTimeoutException: The maximum execution time of 60 seconds was exceeded","type":"mediawiki","channel":"exception","level":"ERROR","monolog_level":400,"wiki":"wikifunctionswiki","mwversion":"1.43.0-wmf.21","reqId":"6cb71780-e468-4045-8a02-ffba853029c3","url":"/w/api.php?action=wikilambda_perform_test&format=json&uselang=en&wikilambda_perform_test_zfunction=Z10883&wikilambda_perform_test_zimplementations=Z15705%7CZ10926%7CZ10884&wikilambda_perform_test_ztesters=Z10885%7CZ10886%7CZ10887%7CZ13130","http_method":"GET","server":"www.wikifunctions.org","referrer":"https://www.wikifunctions.org/wiki/Z10883?uselang=en&direction=next&oldid=46381","phpversion":"7.4.33","servergroup":"kube-mw-wikifunctions","normalized_message":"[{reqId}] {exception_url}   Wikimedia\\RequestTimeout\\RequestTimeoutException: The maximum execution time of {limit} seconds was exceeded","shard":"s5","exception":{"class":"Wikimedia\\RequestTimeout\\RequestTimeoutException","message":"The maximum execution time of 60 seconds was exceeded","code":0,"file":"/srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/request-timeout/src/Detail/ExcimerTimerWrapper.php:97","trace":"from /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/request-timeout/src/Detail/ExcimerTimerWrapper.php(97)
#0 /srv/mediawiki/php-1.43.0-wmf.21/vendor/wikimedia/request-timeout/src/Detail/ExcimerTimerWrapper.php(72): Wikimedia\\RequestTimeout\\Detail\\ExcimerTimerWrapper->onTimeout(int)
#1 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/URI.php(354): Wikimedia\\RequestTimeout\\Detail\\ExcimerTimerWrapper->Wikimedia\\RequestTimeout\\Detail\\{closure}(int)
#2 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(352): Opis\\JsonSchema\\URI::parseTemplate(string, stdClass)
#3 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(329): Opis\\JsonSchema\\Validator->validateRef(string, string, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#4 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(799): Opis\\JsonSchema\\Validator->validateSchema(string, string, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#5 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(523): Opis\\JsonSchema\\Validator->validateConditionals(string, string, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#6 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(332): Opis\\JsonSchema\\Validator->validateKeywords(string, string, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#7 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(457): Opis\\JsonSchema\\Validator->validateSchema(string, string, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#8 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(329): Opis\\JsonSchema\\Validator->validateRef(string, string, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#9 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(799): Opis\\JsonSchema\\Validator->validateSchema(stdClass, string, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#10 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(523): Opis\\JsonSchema\\Validator->validateConditionals(stdClass, string, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#11 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(332): Opis\\JsonSchema\\Validator->validateKeywords(stdClass, string, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#12 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(403): Opis\\JsonSchema\\Validator->validateSchema(stdClass, string, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#13 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(329): Opis\\JsonSchema\\Validator->validateRef(stdClass, string, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#14 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(799): Opis\\JsonSchema\\Validator->validateSchema(stdClass, string, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#15 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(523): Opis\\JsonSchema\\Validator->validateConditionals(stdClass, string, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#16 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(332): Opis\\JsonSchema\\Validator->validateKeywords(stdClass, string, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#17 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(403): Opis\\JsonSchema\\Validator->validateSchema(stdClass, string, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#18 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(329): Opis\\JsonSchema\\Validator->validateRef(stdClass, string, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#19 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(1959): Opis\\JsonSchema\\Validator->validateSchema(stdClass, string, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#20 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(953): Opis\\JsonSchema\\Validator->validateObject(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult, null)
#21 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(519): Opis\\JsonSchema\\Validator->validateProperties(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult, null)
#22 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(332): Opis\\JsonSchema\\Validator->validateKeywords(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#23 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(403): Opis\\JsonSchema\\Validator->validateSchema(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#24 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(329): Opis\\JsonSchema\\Validator->validateRef(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#25 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(799): Opis\\JsonSchema\\Validator->validateSchema(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#26 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(523): Opis\\JsonSchema\\Validator->validateConditionals(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#27 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(332): Opis\\JsonSchema\\Validator->validateKeywords(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#28 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(403): Opis\\JsonSchema\\Validator->validateSchema(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#29 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(329): Opis\\JsonSchema\\Validator->validateRef(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#30 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(799): Opis\\JsonSchema\\Validator->validateSchema(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#31 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(523): Opis\\JsonSchema\\Validator->validateConditionals(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#32 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(332): Opis\\JsonSchema\\Validator->validateKeywords(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#33 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(457): Opis\\JsonSchema\\Validator->validateSchema(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#34 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(329): Opis\\JsonSchema\\Validator->validateRef(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#35 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(1655): Opis\\JsonSchema\\Validator->validateSchema(array, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#36 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(950): Opis\\JsonSchema\\Validator->validateArray(array, array, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#37 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(519): Opis\\JsonSchema\\Validator->validateProperties(array, array, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult, null)
#38 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(332): Opis\\JsonSchema\\Validator->validateKeywords(array, array, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#39 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(457): Opis\\JsonSchema\\Validator->validateSchema(array, array, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#40 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(329): Opis\\JsonSchema\\Validator->validateRef(array, array, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#41 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(799): Opis\\JsonSchema\\Validator->validateSchema(array, array, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#42 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(523): Opis\\JsonSchema\\Validator->validateConditionals(array, array, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#43 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(332): Opis\\JsonSchema\\Validator->validateKeywords(array, array, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#44 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(457): Opis\\JsonSchema\\Validator->validateSchema(array, array, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#45 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(329): Opis\\JsonSchema\\Validator->validateRef(array, array, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#46 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(1915): Opis\\JsonSchema\\Validator->validateSchema(stdClass, array, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#47 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(953): Opis\\JsonSchema\\Validator->validateObject(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult, null)
#48 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(519): Opis\\JsonSchema\\Validator->validateProperties(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult, null)
#49 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(332): Opis\\JsonSchema\\Validator->validateKeywords(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#50 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(403): Opis\\JsonSchema\\Validator->validateSchema(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#51 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(329): Opis\\JsonSchema\\Validator->validateRef(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#52 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(799): Opis\\JsonSchema\\Validator->validateSchema(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#53 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(523): Opis\\JsonSchema\\Validator->validateConditionals(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#54 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(332): Opis\\JsonSchema\\Validator->validateKeywords(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#55 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(457): Opis\\JsonSchema\\Validator->validateSchema(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#56 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(329): Opis\\JsonSchema\\Validator->validateRef(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#57 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(1915): Opis\\JsonSchema\\Validator->validateSchema(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#58 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(953): Opis\\JsonSchema\\Validator->validateObject(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult, null)
#59 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(519): Opis\\JsonSchema\\Validator->validateProperties(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult, null)
#60 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(332): Opis\\JsonSchema\\Validator->validateKeywords(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#61 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(403): Opis\\JsonSchema\\Validator->validateSchema(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#62 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(329): Opis\\JsonSchema\\Validator->validateRef(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#63 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(799): Opis\\JsonSchema\\Validator->validateSchema(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#64 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(523): Opis\\JsonSchema\\Validator->validateConditionals(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#65 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(332): Opis\\JsonSchema\\Validator->validateKeywords(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#66 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(403): Opis\\JsonSchema\\Validator->validateSchema(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#67 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(329): Opis\\JsonSchema\\Validator->validateRef(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#68 /srv/mediawiki/php-1.43.0-wmf.21/vendor/opis/json-schema/src/Validator.php(97): Opis\\JsonSchema\\Validator->validateSchema(stdClass, stdClass, array, array, Opis\\JsonSchema\\Schema, stdClass, Opis\\JsonSchema\\ValidationResult)
#69 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/Validation/SchemaWrapper.php(43): Opis\\JsonSchema\\Validator->schemaValidation(stdClass, Opis\\JsonSchema\\Schema, int)
#70 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/Validation/ZObjectStructureValidator.php(79): MediaWiki\\Extension\\WikiLambda\\Validation\\SchemaWrapper->validate(stdClass)
#71 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(163): MediaWiki\\Extension\\WikiLambda\\Validation\\ZObjectStructureValidator->validate(stdClass)
#72 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(97): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::validatePersistentKeys(stdClass)
#73 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectContent.php(175): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createPersistentContent(stdClass)
#74 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectContent.php(188): MediaWiki\\Extension\\WikiLambda\\ZObjectContent->validateContent()
#75 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectContent.php(314): MediaWiki\\Extension\\WikiLambda\\ZObjectContent->isValid()
#76 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/Registry/ZTypeRegistry.php(424): MediaWiki\\Extension\\WikiLambda\\ZObjectContent->getZType()
#77 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(548): MediaWiki\\Extension\\WikiLambda\\Registry\\ZTypeRegistry->isZObjectKeyKnown(string)
#78 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(329): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::extractObjectType(stdClass)
#79 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(408): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(stdClass)
#80 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(337): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createKeyValues(array, string)
#81 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(302): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(stdClass)
#82 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(408): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(array)
#83 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(337): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createKeyValues(array, string)
#84 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(213): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(stdClass)
#85 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(129): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::create(stdClass)
#86 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectContent.php(175): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createPersistentContent(stdClass)
#87 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectContent.php(188): MediaWiki\\Extension\\WikiLambda\\ZObjectContent->validateContent()
#88 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectContent.php(314): MediaWiki\\Extension\\WikiLambda\\ZObjectContent->isValid()
#89 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/Registry/ZTypeRegistry.php(424): MediaWiki\\Extension\\WikiLambda\\ZObjectContent->getZType()
#90 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(548): MediaWiki\\Extension\\WikiLambda\\Registry\\ZTypeRegistry->isZObjectKeyKnown(string)
#91 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(329): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::extractObjectType(stdClass)
#92 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(408): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(stdClass)
#93 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(337): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createKeyValues(array, string)
#94 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(302): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(stdClass)
#95 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(408): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(array)
#96 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(337): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createKeyValues(array, string)
#97 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(213): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(stdClass)
#98 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(129): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::create(stdClass)
#99 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectContent.php(175): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createPersistentContent(stdClass)
#100 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectContent.php(188): MediaWiki\\Extension\\WikiLambda\\ZObjectContent->validateContent()
#101 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectContent.php(314): MediaWiki\\Extension\\WikiLambda\\ZObjectContent->isValid()
#102 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/Registry/ZTypeRegistry.php(424): MediaWiki\\Extension\\WikiLambda\\ZObjectContent->getZType()
#103 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(548): MediaWiki\\Extension\\WikiLambda\\Registry\\ZTypeRegistry->isZObjectKeyKnown(string)
#104 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(329): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::extractObjectType(stdClass)
#105 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(408): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(stdClass)
#106 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(337): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createKeyValues(array, string)
#107 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(302): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(stdClass)
#108 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(408): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(array)
#109 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(337): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createKeyValues(array, string)
#110 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(213): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(stdClass)
#111 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(129): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::create(stdClass)
#112 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectContent.php(175): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createPersistentContent(stdClass)
#113 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectContent.php(188): MediaWiki\\Extension\\WikiLambda\\ZObjectContent->validateContent()
#114 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectContent.php(314): MediaWiki\\Extension\\WikiLambda\\ZObjectContent->isValid()
#115 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/Registry/ZTypeRegistry.php(424): MediaWiki\\Extension\\WikiLambda\\ZObjectContent->getZType()
#116 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(548): MediaWiki\\Extension\\WikiLambda\\Registry\\ZTypeRegistry->isZObjectKeyKnown(string)
#117 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(329): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::extractObjectType(stdClass)
#118 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(408): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(stdClass)
#119 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(337): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createKeyValues(array, string)
#120 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(302): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(stdClass)
#121 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(408): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(array)
#122 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(337): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createKeyValues(array, string)
#123 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(213): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(stdClass)
#124 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(129): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::create(stdClass)
#125 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectContent.php(175): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createPersistentContent(stdClass)
#126 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectContent.php(188): MediaWiki\\Extension\\WikiLambda\\ZObjectContent->validateContent()
#127 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectContent.php(314): MediaWiki\\Extension\\WikiLambda\\ZObjectContent->isValid()
#128 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/Registry/ZTypeRegistry.php(424): MediaWiki\\Extension\\WikiLambda\\ZObjectContent->getZType()
#129 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(548): MediaWiki\\Extension\\WikiLambda\\Registry\\ZTypeRegistry->isZObjectKeyKnown(string)
#130 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(329): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::extractObjectType(stdClass)
#131 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(408): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(stdClass)
#132 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(337): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createKeyValues(array, string)
#133 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(302): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(stdClass)
#134 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(408): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(array)
#135 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(337): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createKeyValues(array, string)
#136 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(213): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(stdClass)
#137 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(129): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::create(stdClass)
#138 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectContent.php(175): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createPersistentContent(stdClass)
#139 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectContent.php(188): MediaWiki\\Extension\\WikiLambda\\ZObjectContent->validateContent()
#140 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectContent.php(314): MediaWiki\\Extension\\WikiLambda\\ZObjectContent->isValid()
#141 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/Registry/ZTypeRegistry.php(424): MediaWiki\\Extension\\WikiLambda\\ZObjectContent->getZType()
#142 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(548): MediaWiki\\Extension\\WikiLambda\\Registry\\ZTypeRegistry->isZObjectKeyKnown(string)
#143 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(329): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::extractObjectType(stdClass)
#144 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(408): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(stdClass)
#145 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(337): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createKeyValues(array, string)
#146 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(302): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(stdClass)
#147 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(408): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(array)
#148 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(337): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createKeyValues(array, string)
#149 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(213): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createChild(stdClass)
#150 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(129): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::create(stdClass)
#151 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectContent.php(175): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::createPersistentContent(stdClass)
#152 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectContent.php(188): MediaWiki\\Extension\\WikiLambda\\ZObjectContent->validateContent()
#153 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectContent.php(314): MediaWiki\\Extension\\WikiLambda\\ZObjectContent->isValid()
#154 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/Registry/ZTypeRegistry.php(424): MediaWiki\\Extension\\WikiLambda\\ZObjectContent->getZType()
#155 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(548): MediaWiki\\Extension\\WikiLambda\\Registry\\ZTypeRegistry->isZObjectKeyKnown(string)
#156 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(329): MediaWiki\\Extension\\WikiLambda\\ZObjectFactory::extractObjectType(stdClass)
#157 /srv/mediawiki/php-1.43.0-wmf.21/extensions/WikiLambda/includes/ZObjectFactory.php(408): MediaWiki\\Extension

Change #1071257 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/extensions/WikiLambda@master] ZObjectStore::findZTesterResult: Trim our own error so we don't break logstash

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

Jdforrester-WMF triaged this task as Unbreak Now! priority.Sep 6 2024, 6:40 PM
Jdforrester-WMF changed the subtype of this task from "Task" to "Production Error".
Jdforrester-WMF subscribed.

Have written a quick patch to avoid the jsonTruncated issue.

This looks like something is causing JsonSchema to recurse indefinitely?

Change #1071261 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/extensions/WikiLambda@master] ZObjectStructureValidator::validate: use set_time_limit() to limit in the case of run-away JsonSchema

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

Change #1071257 merged by jenkins-bot:

[mediawiki/extensions/WikiLambda@master] ZObjectStore::findZTesterResult: Trim our own error so we don't break logstash

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

Change #1071266 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/extensions/WikiLambda@wmf/1.43.0-wmf.21] ZObjectStore::findZTesterResult: Trim our own error so we don't break logstash

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

In my opinion, the current design of wikilambda_perform_test is really, really bad (resulting in execution timed out frequently). I have described the issues in T374306: Do not run tests synchronously in wikilambda_perform_test.

Change #1071266 merged by jenkins-bot:

[mediawiki/extensions/WikiLambda@wmf/1.43.0-wmf.21] ZObjectStore::findZTesterResult: Trim our own error so we don't break logstash

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

Mentioned in SAL (#wikimedia-operations) [2024-09-09T17:31:55Z] <jforrester@deploy1003> Started scap sync-world: Backport for [[gerrit:1071266|ZObjectStore::findZTesterResult: Trim our own error so we don't break logstash (T374241)]]

Mentioned in SAL (#wikimedia-operations) [2024-09-09T17:33:49Z] <jforrester@deploy1003> jforrester: Backport for [[gerrit:1071266|ZObjectStore::findZTesterResult: Trim our own error so we don't break logstash (T374241)]] synced to the testservers (https://wikitech.wikimedia.org/wiki/Mwdebug)

Mentioned in SAL (#wikimedia-operations) [2024-09-09T17:44:00Z] <jforrester@deploy1003> Finished scap sync-world: Backport for [[gerrit:1071266|ZObjectStore::findZTesterResult: Trim our own error so we don't break logstash (T374241)]] (duration: 12m 05s)

Change #1071261 merged by jenkins-bot:

[mediawiki/extensions/WikiLambda@master] ZObjectStructureValidator::validate: use set_time_limit() to limit in the case of run-away JsonSchema

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

Change #1071690 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/extensions/WikiLambda@wmf/1.43.0-wmf.21] ZObjectStructureValidator::validate: use set_time_limit() to limit in the case of run-away JsonSchema

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

Change #1071690 merged by jenkins-bot:

[mediawiki/extensions/WikiLambda@wmf/1.43.0-wmf.21] ZObjectStructureValidator::validate: use set_time_limit() to limit in the case of run-away JsonSchema

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

Mentioned in SAL (#wikimedia-operations) [2024-09-09T19:25:10Z] <jforrester@deploy1003> Started scap sync-world: Backport for [[gerrit:1071690|ZObjectStructureValidator::validate: use set_time_limit() to limit in the case of run-away JsonSchema (T374241)]]

Mentioned in SAL (#wikimedia-operations) [2024-09-09T19:27:11Z] <jforrester@deploy1003> jforrester: Backport for [[gerrit:1071690|ZObjectStructureValidator::validate: use set_time_limit() to limit in the case of run-away JsonSchema (T374241)]] synced to the testservers (https://wikitech.wikimedia.org/wiki/Mwdebug)

Mentioned in SAL (#wikimedia-operations) [2024-09-09T19:33:29Z] <jforrester@deploy1003> Finished scap sync-world: Backport for [[gerrit:1071690|ZObjectStructureValidator::validate: use set_time_limit() to limit in the case of run-away JsonSchema (T374241)]] (duration: 08m 19s)

Change #1071950 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/extensions/WikiLambda@master] ZObjectFactory::validatePersistentKeys: Disable use of JsonSchema, at least temporarily

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

Change #1071950 merged by jenkins-bot:

[mediawiki/extensions/WikiLambda@master] ZObjectFactory::validatePersistentKeys: Disable use of JsonSchema, at least temporarily

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

Change #1072189 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/extensions/WikiLambda@wmf/1.43.0-wmf.21] ZObjectFactory::validatePersistentKeys: Disable use of JsonSchema, at least temporarily

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

Change #1072190 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/extensions/WikiLambda@wmf/1.43.0-wmf.22] ZObjectFactory::validatePersistentKeys: Disable use of JsonSchema, at least temporarily

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

Change #1072189 merged by jenkins-bot:

[mediawiki/extensions/WikiLambda@wmf/1.43.0-wmf.21] ZObjectFactory::validatePersistentKeys: Disable use of JsonSchema, at least temporarily

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

Change #1072190 merged by jenkins-bot:

[mediawiki/extensions/WikiLambda@wmf/1.43.0-wmf.22] ZObjectFactory::validatePersistentKeys: Disable use of JsonSchema, at least temporarily

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

Mentioned in SAL (#wikimedia-operations) [2024-09-11T21:51:41Z] <jforrester@deploy1003> Started scap sync-world: Backport for [[gerrit:1072189|ZObjectFactory::validatePersistentKeys: Disable use of JsonSchema, at least temporarily (T374241)]], [[gerrit:1072190|ZObjectFactory::validatePersistentKeys: Disable use of JsonSchema, at least temporarily (T374241)]]

Mentioned in SAL (#wikimedia-operations) [2024-09-11T21:53:47Z] <jforrester@deploy1003> jforrester: Backport for [[gerrit:1072189|ZObjectFactory::validatePersistentKeys: Disable use of JsonSchema, at least temporarily (T374241)]], [[gerrit:1072190|ZObjectFactory::validatePersistentKeys: Disable use of JsonSchema, at least temporarily (T374241)]] synced to the testservers (https://wikitech.wikimedia.org/wiki/Mwdebug)

Mentioned in SAL (#wikimedia-operations) [2024-09-11T21:59:33Z] <jforrester@deploy1003> Finished scap sync-world: Backport for [[gerrit:1072189|ZObjectFactory::validatePersistentKeys: Disable use of JsonSchema, at least temporarily (T374241)]], [[gerrit:1072190|ZObjectFactory::validatePersistentKeys: Disable use of JsonSchema, at least temporarily (T374241)]] (duration: 07m 51s)

Change #1072304 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/extensions/WikiLambda@master] [DNM] Disable all other JsonSchema validation

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

Since September 6th, wikifunctions has been generating jsonTruncated errors due to stacktraces being too large and the requests reaching a 60 seconds timeout. There are a few patches sent but the issue is still going on. We also receive alerts on IRC while doing deployment which leads us to wonder whether something break.

wikifunctions_truncated.png (261×681 px, 14 KB)

Does anyone know what is the root cause?

Is that due to new code pushed which sounds unlikely given it started on Sept 6th 10:45UTC which was a Friday.

Can this bit a bot hammering a slow entry point and thus resulting in a DoS?

Is the code wrong and having some kind of infinite recursion while validating a JSON schema?

Change #1074213 had a related patch set uploaded (by Genoveva Galarza; author: Genoveva Galarza):

[mediawiki/extensions/WikiLambda@master] Stop infinite loop when validating types and their keys

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

This should have stopped occurring. The issue was the following edit on Wikifunctions, which was reverted (here is the revert). That one triggered an infinite recursion during validation. Geno's patch above should make this not happen again, and for now the revert should stop the ongoing issues.

https://www.wikifunctions.org/wiki/Z40?uselang=en&diff=next&oldid=128109

Change #1074213 merged by jenkins-bot:

[mediawiki/extensions/WikiLambda@master] Stop infinite loop when validating types and their keys

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

Thank you for the explanation @DVrandecic ! I am quite happy you found the root cause and a fix!

Change #1074951 had a related patch set uploaded (by JMeybohm; author: JMeybohm):

[operations/puppet@production] Revert "Disable paging for mw-wikifunctions"

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

Change #1074951 merged by JMeybohm:

[operations/puppet@production] Revert "Disable paging for mw-wikifunctions"

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

Change #1072304 merged by jenkins-bot:

[mediawiki/extensions/WikiLambda@master] Disable all other JsonSchema validation

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

Change #1093860 had a related patch set uploaded (by Genoveva Galarza; author: Genoveva Galarza):

[mediawiki/extensions/WikiLambda@master] Remove ZObjectFactory::createChild in favor of ZObjectFactory::create

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