We need to move all maintenance scripts to use PHP 7.2 instead of HHVM.
This can be done by simply prepending PHP=php7.2 to all the invocations of mwscript etc in the maintenance scripts.
What needs to be done in detail:
- Separate production maintenance scripts from wikitech ones**
- Pick a few scripts to migrate first, notify the owners, migrate
- Migrate the wikidata dispatcher
- Migrate all other scripts / manually run them
- Set php7.2 as the preferred debian alternative
- Revert all the modifications to the scripts above as we don't need to force
- Some cronjobs are shared with wikitech, which has not been switched to PHP7. To avoid blocking this task we can keep production and wikitech maint jobs separate T222900
Related to: T219135:
Progress # (of 25) | % |
---|---|
24 | 96% |
checked & converted | puppet class name | what does it do | comment | logging ? |
---|---|---|---|---|
☑ | cache_warmup | run APC/Memcached warmup after resetting caches | not a cron, just a package and file | n/a |
☑ | initsitestats | Re-initialise or update the site statistics table | uses 'foreachwiki', uses foreachwikiindblist, bash, hardcodes RUNNER=php | /dev/null |
☑ | purge_expired_userrights | Remove expired userrights from user_groups table and move them to former_user_groups | uses foreachwiki | /dev/null |
☑ | translationnotifications | send email notification to translators | uses mwscript, allows overriding of PHP, ends emailwith DigestEmailer.php to a lot of users https://gerrit.wikimedia.org/r/c/operations/puppet/+/528606 | /var/log |
☑ | uploads | configures wget for server-side uploads of large files | not a cron, just a config file for wget | n/a |
☑ | cirrussearch | build completion indices for search, sanitizes cirrus jobs | uses expanddblist, (PHP) but pipes it into mwscript https://gerrit.wikimedia.org/r/c/operations/puppet/+/529417 , VERY LONG running | /var/log/mediawiki |
☑ | pageassessments | remove unused projects from the page_assessments_projects table | uses foreachwikiindblist | /dev/null |
☑ | purge_old_cx_drafts | purge content translation drafts older than 455 days | uses foreachwikiindblist | /var/log/mediawiki/ |
☑ | update_flaggedrev_stats | updates the flagged revs statistics table | uses mwscriptwikiset (bash), starts mwscript | /dev/null |
☑ | wikidata | starts a dispatcher instance every 3 minutes, wikibase-repo pruning and others | Check https://grafana.wikimedia.org/d/000000156/wikidata-dispatch?refresh=1m&orgId=1 and https://grafana.wikimedia.org/d/000000239/wikidata-dispatch-script?refresh=1m&orgId=1 | /var/log/wikidata |
☑ | cleanup_upload_stash | Remove old or broken uploads from temporary uploaded file storage, clean up associated database records | uses foreachwiki , problems on commons (T230179) | /var/log/mediawiki/ |
☑ | pagetriage | updates expired page metadata | uses mwscript, https://gerrit.wikimedia.org/r/c/operations/puppet/+/528609 . ask Ariel | /var/log/mediawiki |
☑ | purge_securepoll | Purge private data (IP, XFF, UA) from SecurePoll Votes | uses foreachwiki | /dev/null |
☐ | updatequerypages | 6 separate cron jobs!. (Lonelypages, Mostcategories, Mostlinkedcategories, Mostlinkedtemplates, Uncategorizedpages, Wantedtemplates) calling updateSpecialPages.php on all clusters, one job for just en, one for all others | uses updatequerypages::cronjob, uses mwscriptwikiset | /var/log/mediawiki |
☑ | db_lag_stats | dump MediaWiki DB lag times into statsd T149210 | uses mwscript | /dev/null |
☑ | jobqueue_stats | reports the amount of lag for MediaWiki-pooled DBs to StatsD | https://gerrit.wikimedia.org/r/c/operations/puppet/+/528287 | /dev/null |
☑ | parsercachepurging | Remove old objects from the parser cache | uses mwscript,only works if parsercache is a mysql db , very slow!! see T230240 | /dev/null |
☑ | readinglists | purging unneeded DB rows for extension ReadingLists | https://gerrit.wikimedia.org/r/c/operations/puppet/+/528282 | /var/log/mediawiki |
☑ | echo_mail_batch | processes email digest / send notifications to users | uses foreachwikiindblist | /dev/null |
☑ | purge_abusefilter | Purge old IP Address data from AbuseFilter logs | uses foreachwiki | /dev/null |
☑ | refreshlinks | refresh link tables | uses refreshlinks::cronjob, uses mwscriptwikiset | /var/log/mediawiki |
☑ | update_special_pages | updates cached special pages "Run this script periodically if you have miser mode enabled." | uses flock, uses foreachwiki updateSpecialPages.php | /var/log/mediawiki |
☑ | generatecaptcha | Generate fancy captchas using a python script and copy them into storage | uses mwscript GenerateFancyCaptchas from ConfirmEdit extension , BROKEN -> T230245 | /var/log/mediawiki |
☑ | purge_checkuser | Purge expired rows in CheckUser and RecentChanges | uses foreachwiki purgeOldData.php - did https://gerrit.wikimedia.org/r/#/c/operations/puppet/+/528730/ but foreachwiki forces RUNNER=php apparently | /dev/null |
☑ | updatetranslationstats | "Update stats" "https://meta.wikimedia.org/wiki/Meta:Babylon/Translation_stats as User FuzzyBot | runs /usr/local/bin/characterEditStatsTranslate, uses mwscript. tested at https://meta.wikimedia.org/w/index.php?title=Meta:Babylon/Translation_stats&action=history see the edit has the php7 tag | /dev/null |