MobileFrontend/Deployment
MobileFrontend has some deployment procedures/considerations beyond the normal WMF deployment procedures. This page serves to document these and is meant to be an addendum to How to deploy code.
Contents |
ResourceLoader
There is a bug in resource loader (#37812) that prevents module timestamps from properly updating in certain situations (eg when a resource path gets updated or a resource gets removed and nothing else in the module changes). This can result in outdated JS/CSS getting served. To fix this, first touch one of the resources of the affected module on Fenari:
$ cd /home/wikipedia/common $ touch php-1.21wmf1/extensions/MobileFrontend/javascripts/modules/mf-search.js
Then, sync the file to the cluster:
$ sync-file php-1.21wmf1/extensions/MobileFrontend/javascripts/modules/mf-search.js 'touch file'
You may need to wait up to 5 minutes for the cached resources to expire.
Mobile varnish cache
If HTML in the mobile version of the site is getting updated during a MobileFrontend deployment, you will likely need to get someone to manually purge the mobile varnish cache. Ping someone in ops (binasher, mutante, and LeslieCarr have typically helped me with this) to perform the flush. Instructions can be found on MobileFrontend#Flushing_the_cache.
Performance
On the WMF cluster, it is vital to maintain a reasonable cache hit ratio of the mobile varnish servers. Mobile varnish stats can be monitored using Ganglia. Keep an eye on this for a while after a deployment.
Apache logs
During and after a deployment, you should keep an eye on the apache logs on Fenari. We have had a number of instances of a deployment resulting in spamming the apache logs with errors and warnings that were not caught until some time after deployment. From fenari:
$ fatalmonitor
Or if you prefer to tail the log apache logs:
$ tail -f /home/wikipedia/logs/syslog/apache.log