Page MenuHomePhabricator

PHP Notice: Undefined variable: etag (from ResourceLoader.php)
Closed, ResolvedPublicPRODUCTION ERROR

Description

Error
normalized_message
[{reqId}] {exception_url}   PHP Notice: Undefined variable: etag
exception.trace
from /srv/mediawiki/php-1.39.0-wmf.19/includes/ResourceLoader/ResourceLoader.php(856)
#0 /srv/mediawiki/php-1.39.0-wmf.19/includes/ResourceLoader/ResourceLoader.php(856): MWExceptionHandler::handleError(integer, string, string, integer, array)
#1 /srv/mediawiki/php-1.39.0-wmf.19/load.php(53): MediaWiki\ResourceLoader\ResourceLoader->respond(MediaWiki\ResourceLoader\Context)
#2 /srv/mediawiki/php-1.39.0-wmf.19/load.php(39): wfLoadMain()
#3 /srv/mediawiki/w/load.php(3): require(string)
#4 {main}
Impact
Notes

Details

Request URL
https://en.wikipedia.org/w/load.php?lang=*&modules=*&only=*&skin=*&user=*&version=*

Event Timeline

Krinkle triaged this task as High priority.Jul 11 2022, 7:36 PM
Krinkle created this task.

The logic in this file looks wonky indeed.

		$response = '';
		try {
			// ..
			$versionHash = '/* .. */';
			$etag = 'W/"' . $versionHash . '"';
			// ..
		} catch ( TimeoutException $e ) {
			$this->outputErrorAndLog( $e, 'Request timed out' );
		}
		$this->sendResponseHeaders( $context, $etag, (bool)$this->errors, $this->extraHeaders );

I'm not sure why we do an inline timeout handler like this. I'll try to dig up how we ended up with that. We'd probably want to localise that a bit further in some way, or just let it bubble up to the top layer as HTTP 5xx.

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

[mediawiki/core@master] ResourceLoader: Remove outer TimeoutException try-catch in respond()

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

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

[mediawiki/core@master] ResourceLoader: Remove redundant getCombinedVersion() try-catch

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

Change 817924 merged by jenkins-bot:

[mediawiki/core@master] ResourceLoader: Remove outer TimeoutException try-catch in respond()

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

Change 817925 merged by jenkins-bot:

[mediawiki/core@master] ResourceLoader: Remove redundant getCombinedVersion() try-catch

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