Last modified: 2014-09-22 20:49:30 UTC

Wikimedia Bugzilla is closed!

Wikimedia migrated from Bugzilla to Phabricator. Bug reports are handled in Wikimedia Phabricator.
This static website is read-only and for historical purposes. It is not possible to log in and except for displaying bug reports and their history, links might be broken. See T51244, the corresponding Phabricator task for complete and up-to-date bug report information.
Bug 49244 - Infinite loops/excessive execution time in DairikiDiff.php
Infinite loops/excessive execution time in DairikiDiff.php
Status: UNCONFIRMED
Product: MediaWiki
Classification: Unclassified
History/Diffs (Other open bugs)
1.21.x
All Linux
: Normal major (vote)
: ---
Assigned To: Nobody - You can work on this!
: performance
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2013-06-06 10:58 UTC by heidi
Modified: 2014-09-22 20:49 UTC (History)
2 users (show)

See Also:
Web browser: ---
Mobile Platform: ---
Assignee Huggle Beta Tester: ---


Attachments
Local+class variable space (524.88 KB, application/gzip)
2013-06-06 10:59 UTC, heidi
Details

Description heidi 2013-06-06 10:58:50 UTC
Encountered an issue where MediaWiki exhaust allowed execution time in certain functions in DairikiDiff.php on a certain fairly large article (~130KB) with a large table. Triggers at various points in the code, but primarily in _DiffEngine::_diag

[Thu Jun 06 00:43:42 2013] [error] [client 127.0.0.1] PHP Fatal error:  Maximum execution time of 30 seconds exceeded in [...]/includes/diff/DairikiDiff.php on line 1286
[Thu Jun 06 00:43:56 2013] [error] [client 127.0.0.1] PHP Fatal error:  Maximum execution time of 30 seconds exceeded in [...]/includes/diff/DairikiDiff.php on line 1285
[Thu Jun 06 05:14:31 2013] [error] [client 127.0.0.1] PHP Fatal error:  Maximum execution time of 30 seconds exceeded in [...]/includes/diff/DairikiDiff.php on line 402
[Thu Jun 06 05:16:02 2013] [error] [client 127.0.0.1] PHP Fatal error:  Maximum execution time of 30 seconds exceeded in [...]/includes/diff/DairikiDiff.php(399) : assert code on line 1
[Thu Jun 06 05:16:18 2013] [error] [client 127.0.0.1] PHP Fatal error:  Maximum execution time of 30 seconds exceeded in [...]/includes/diff/DairikiDiff.php(399) : assert code on line 1
[Thu Jun 06 05:17:29 2013] [error] [client 127.0.0.1] PHP Fatal error:  Maximum execution time of 30 seconds exceeded in [...]/includes/diff/DairikiDiff.php on line 399
[Thu Jun 06 05:17:44 2013] [error] [client 127.0.0.1] PHP Fatal error:  Maximum execution time of 30 seconds exceeded in [...]/includes/diff/DairikiDiff.php on line 397
[Thu Jun 06 05:19:16 2013] [error] [client 127.0.0.1] PHP Fatal error:  Maximum execution time of 30 seconds exceeded in [...]/includes/diff/DairikiDiff.php on line 399
[Thu Jun 06 05:26:13 2013] [error] [client 127.0.0.1] PHP Fatal error:  Maximum execution time of 30 seconds exceeded in [...]/includes/diff/DairikiDiff.php(399) : assert code on line 1
[Thu Jun 06 05:26:57 2013] [error] [client 127.0.0.1] PHP Fatal error:  Maximum execution time of 30 seconds exceeded in [...]/includes/diff/DairikiDiff.php on line 399
[Thu Jun 06 05:27:16 2013] [error] [client 127.0.0.1] PHP Fatal error:  Maximum execution time of 30 seconds exceeded in [...]/includes/diff/DairikiDiff.php on line 398
[Thu Jun 06 05:27:21 2013] [error] [client 127.0.0.1] PHP Fatal error:  Maximum execution time of 30 seconds exceeded in [...]/includes/diff/DairikiDiff.php on line 397
[Thu Jun 06 05:35:09 2013] [error] [client 127.0.0.1] PHP Fatal error:  Maximum execution time of 30 seconds exceeded in [...]/includes/diff/DairikiDiff.php on line 402

Dumped the local and class variable space in _DiffEngine::_diag on line 375, right before entering the for-loop. It's found in the attached file.

Presumably this is not intended behavior on encountering a large diff? The edits themselves are fairly minor, and it doesn't have any issues on different, much larger (400KB) table.
Comment 1 heidi 2013-06-06 10:59:56 UTC
Created attachment 12474 [details]
Local+class variable space
Comment 2 Bill Traynor 2014-09-22 20:49:30 UTC
MW 1_23
I've been seeing:

PHP Fatal error:  Maximum execution time of 30 seconds exceeded in ...DairikiDiff.php on line 0

in the logs lately.

Note You need to log in before you can comment on or make changes to this bug.


Navigation
Links