Last modified: 2014-02-03 04:04:11 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 T53360, the corresponding Phabricator task for complete and up-to-date bug report information.
Bug 51360 - Special:Version with exts in git is too slow, needs caching or using something other than git show
Special:Version with exts in git is too slow, needs caching or using somethin...
Status: NEW
Product: MediaWiki
Classification: Unclassified
Special pages (Other open bugs)
1.22.0
All All
: Normal normal (vote)
: ---
Assigned To: Nobody - You can work on this!
: performance
Depends on: 38783
Blocks: 53335
  Show dependency treegraph
 
Reported: 2013-07-15 11:30 UTC by Ariel T. Glenn
Modified: 2014-02-03 04:04 UTC (History)
3 users (show)

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


Attachments

Description Ariel T. Glenn 2013-07-15 11:30:19 UTC
Special:Version on labs requires digging out the info from git for each extension, this comes down to git show on each extension, which takes far too long.  Either information should be cached and we should be clever about how we check that the cached info for an ext is no longer valid, or we should get the info for multiple repos in a batch, instead of shelling out separately for each one.

Representative is this output:  Served by deployment-apache33 in 28.877 secs.  See http://en.wikipedia.beta.wmflabs.org/wiki/Special:Version to test for yourselves.
Comment 1 Antoine "hashar" Musso (WMF) 2013-07-15 13:54:33 UTC
The code in Special:Version does look for the HEAD sha1 (which first read .git/HEAD then if it is a ref load  .git/refs/origin/master to get the actual sha1).

Then we look for the commit date with getHeadCommitDate() which shells out.  What could be done is to cache the commit date in memcached with a key like git-sha1-date-<the sha1 there>.  That would prevent the shell outs though still requires a bunch of stats() /file reads.

The code is also duplicated in getCreditsForExtension() and thus need to be updated there as well.

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


Navigation
Links