Page MenuHomePhabricator

Side-by-side functionality broken in Chrome and possibly some Internet Explorer
Closed, ResolvedPublic

Description

Following the update to 1.19wmf1 English Wikisource has a break in the side by side viewing of text and image. This basically prevents all use of affected browsers from this functionality. Mostly seems related to vector skin. [Note that FF 10.0.2 unaffected]

Default skin of vector

View https://en.wikisource.org/w/index.php?title=Page:Chesterton_-_A_Short_History_of_England.djvu/214&useskin=vector

Edit https://en.wikisource.org/w/index.php?title=Page:Chesterton_-_A_Short_History_of_England.djvu/214&action=edit&useskin=vector

Monbook

View https://en.wikisource.org/w/index.php?title=Page:Chesterton_-_A_Short_History_of_England.djvu/214&useskin=monobook

Edit https://en.wikisource.org/w/index.php?title=Page:Chesterton_-_A_Short_History_of_England.djvu/214&action=edit&useskin=monobook

Also seeing some image load and lag issues on the pages, presumably related

https://en.wikisource.org/wiki/Wikisource:Scriptorium#Side_by_side_broken

Error log when loading page in vector (not no errors when loading in monobook)

Uncaught TypeError: Object [object Object] has no method 'addSource'
startUpload.php:1
(anonymous function)load.php:151
load.php:142Uncaught TypeError: Cannot read property 'options' of undefined
executeload.php:142
loader.implementload.php:148
(anonymous function)index.php:27
index.php:1127Uncaught TypeError: Cannot call method 'addButton' of undefined
(anonymous function)index.php:1127
loader.usingload.php:148
(anonymous function)index.php:1127
index.php:41Uncaught ReferenceError: addOnloadHook is not defined
(anonymous function)index.php:41
load.php:5Uncaught ReferenceError: addOnloadHook is not defined
(anonymous function)load.php:5
index.php:198Uncaught ReferenceError: addOnloadHook is not defined
(anonymous function)index.php:198
index.php:94Uncaught ReferenceError: addOnloadHook is not defined
(anonymous function)index.php:94
index.php:75Uncaught ReferenceError: addOnloadHook is not defined
(anonymous function)index.php:75
index.php:109Uncaught ReferenceError: addOnloadHook is not defined
(anonymous function)index.php:109
index.php:95Uncaught ReferenceError: hookEvent is not defined
(anonymous function)index.php:95
index.php:83Uncaught ReferenceError: addOnloadHook is not defined
(anonymous function)index.php:83
index.php:86Uncaught TypeError: Cannot call method 'wikiScript' of undefined
mw.loader.using.$.centralNotice.fn.loadBannerListindex.php:86
(anonymous function)index.php:152
jQuery.extend._Deferred.deferred.resolveWithload.php:14
jQuery.extend.readyload.php:6
DOMContentLoadedload.php:12


Version: unspecified
Severity: major

Details

Reference
bz34706

Event Timeline

bzimport raised the priority of this task from to High.Nov 22 2014, 12:14 AM
bzimport set Reference to bz34706.

The core error is 'mw.loader.addSource is not defined', and that was quite clearly caused by the 1.18 version of mw.loader being served from cache. For some reason the cache for mediawiki.js wasn't invalidated on enwikisource, I don't know exactly why, or why this didn't happen to the other wikis that we deployed 1.19 to.

My best guess is that not all servers switched enwikisource to 1.19 at the exact same time, so that the following sequence of events could happen:

  1. client requests startup module for enwikisource
  2. server running 1.19 serves response, Varnish caches it
  3. client requests mediawiki module with the updated timestamp in the URL
  4. server running 1.18 serves response, Varnish caches it
  5. a little while later, all servers run 1.19 for enwikisource, but Varnish is still caching 1.18 versions of modules with 1.19 URLs

I ran purge-varnish en.wikisource.org , which purges all URLs with 'en.wikisource.org' anywhere in them from Varnish (in practice that's all http://bits.wikimedia.org/en.wikisource.org/load.php URLs). After doing that, a hard refresh fixed the issue for me.

I guess we should probably do a Varnish purge for a wiki every time we deploy a completely new version of MediaWiki to it, to prevent this kind of bug from happening.

I confirmed that this works for me now. billinghurst, please reopen this if it doesn't appear to work for you now.