Page MenuHomePhabricator

Remove PHP 7.4 from deployment hosts
Closed, ResolvedPublic

Description

As noted in T319432#10745119, the deployment hosts are among the remaining install-base for our PHP 7.4 packages from component/php74. This happens via O:deployment_server::kubernetes -> O:deployment_server -> P:mediawiki::deployment::server -> P:mediawiki::common -> P:mediawiki::php, with the predominant historical use case being the ability to run maintenance scripts locally - e.g., as part of scap deployments.

While that functionality has now been containerized (and that use case migrated to 8.1 in T390225), we still have PHP 7.4 packages installed. As part of fully removing 7.4 from production, we should address that.

Rather than attempting to support, e.g., "no present PHP version" in P:mediawiki::php (given the amount of complexity already present in this family of puppet classes), I'd propose that we simply update to 8.1 in-place, as we already have with parsoidtest1001 in T380485. That's arguably the least surprising solution, particularly if we want to (speculatively) retain the ability to run MediaWiki PHP code locally in some contexts.

Related Objects

StatusSubtypeAssignedTask
ResolvedNone
ResolvedReedy
StalledNone
OpenNone
OpenNone
OpenNone
ResolvedReedy
ResolvedKrinkle
ResolvedKrinkle
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
ResolvedLucas_Werkmeister_WMDE
ResolvedNone
ResolvedJdforrester-WMF
ResolvedDaimona
ResolvedJdforrester-WMF
DeclinedNone
ResolvedScott_French
ResolvedScott_French
ResolvedScott_French
Resolvedcscott
ResolvedScott_French
DuplicatePRODUCTION ERRORNone
ResolvedPRODUCTION ERRORMichael
ResolvedPRODUCTION ERRORMichael
ResolvedMichael
DuplicatePRODUCTION ERRORNone
Resolved Tgr
ResolvedNone
ResolvedDAlangi_WMF
Resolved Tgr
ResolvedDAlangi_WMF
Resolved Tgr
Resolved Tgr
ResolvedAtieno
OpenNone
Resolvedbrouberol
ResolvedScott_French
ResolvedScott_French
ResolvedScott_French
ResolvedScott_French
ResolvedScott_French
ResolvedScott_French
ResolvedKrinkle
ResolvedKrinkle
ResolvedScott_French
ResolvedKrinkle
Resolved Tgr
ResolvedScott_French
Resolvedjnuche
ResolvedJdforrester-WMF
ResolvedBUG REPORTbd808
ResolvedReedy
ResolvedReedy
Resolvedseanleong-WMDE
StalledNone
OpenNone
ResolvedLucas_Werkmeister_WMDE
ResolvedDaimona
ResolvedDaimona
ResolvedDaimona
OpenNone
ResolvedUmherirrender
ResolvedArendpieter
ResolvedUmherirrender
ResolvedUmherirrender
Resolved mszabo
Resolvedtstarling
ResolvedUmherirrender
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedPhysikerwelt
Resolved Tgr
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedNone
ResolvedUmherirrender
ResolvedNone
ResolvedNone
ResolvedkarapayneWMDE
ResolvedAudreyPenven_WMDE
ResolvedAudreyPenven_WMDE
ResolvedLucas_Werkmeister_WMDE
ResolvedLucas_Werkmeister_WMDE
ResolvedUmherirrender
Resolvedthiemowmde
ResolvedLucas_Werkmeister_WMDE
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
Resolved mszabo
ResolvedxSavitar
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
ResolvedUmherirrender
OpenNone
OpenNone
ResolvedArendpieter
OpenNone
ResolvedUmherirrender
Resolved larissagaulia
ResolvedUmherirrender
ResolvedJdforrester-WMF
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
ResolvedUmherirrender
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
ResolvedKrinkle
ResolvedScott_French

Event Timeline

Change #1139910 had a related patch set uploaded (by Scott French; author: Scott French):

[operations/puppet@production] hieradata: remove icu67 override on deployment hosts

https://gerrit.wikimedia.org/r/1139910

Change #1139914 had a related patch set uploaded (by Scott French; author: Scott French):

[operations/puppet@production] hieradata: switch deployment hosts to PHP 8.1

https://gerrit.wikimedia.org/r/1139914

Change #1139910 merged by Scott French:

[operations/puppet@production] hieradata: remove icu67 override on deployment hosts

https://gerrit.wikimedia.org/r/1139910

Change #1139914 merged by Scott French:

[operations/puppet@production] hieradata: switch deployment hosts to PHP 8.1

https://gerrit.wikimedia.org/r/1139914

Mentioned in SAL (#wikimedia-operations) [2025-05-07T17:13:50Z] <swfrench-wmf> disable-puppet "In-place update to PHP 8.1 - T392938" on deploy1003 and deploy2002

Mentioned in SAL (#wikimedia-operations) [2025-05-07T17:35:25Z] <swfrench-wmf> deploy1003 and deploy2002 updated to PHP 8.1 - T392938

This was completed by ~ 17:30 UTC today. No issues encountered on either host during the update, and PHP appears to work via extremely basic tests:

swfrench@deploy1003:~$ apt list --installed | egrep 'php|pcre2'
libpcre2-8-0/oldstable,now 10.36-2+deb11u1 amd64 [installed]
php-common/bullseye-wikimedia,now 2:76+wmf1~bullseye1 all [installed]
php7.4-apcu/bullseye-wikimedia,now 5.1.19+4.0.11-3+wmf2+bullseye1 amd64 [installed]
php7.4-bcmath/bullseye-wikimedia,now 1:7.4.33-1+0~20221108.73+debian10~1.gbpa00350a+wmf11u2 amd64 [installed]
php7.4-bz2/bullseye-wikimedia,now 1:7.4.33-1+0~20221108.73+debian10~1.gbpa00350a+wmf11u2 amd64 [installed]
php7.4-cli/bullseye-wikimedia,now 1:7.4.33-1+0~20221108.73+debian10~1.gbpa00350a+wmf11u2 amd64 [installed]
php7.4-common/bullseye-wikimedia,now 1:7.4.33-1+0~20221108.73+debian10~1.gbpa00350a+wmf11u2 amd64 [installed]
php7.4-curl/bullseye-wikimedia,now 1:7.4.33-1+0~20221108.73+debian10~1.gbpa00350a+wmf11u2 amd64 [installed]
php7.4-dba/bullseye-wikimedia,now 1:7.4.33-1+0~20221108.73+debian10~1.gbpa00350a+wmf11u2 amd64 [installed]
php7.4-excimer/bullseye-wikimedia,now 1.0.2-1+wmf3+bullseye1 amd64 [installed]
php7.4-gd/bullseye-wikimedia,now 1:7.4.33-1+0~20221108.73+debian10~1.gbpa00350a+wmf11u2 amd64 [installed]
php7.4-geoip/bullseye-wikimedia,now 1.1.1-7+wmf2+bullseye1 amd64 [installed]
php7.4-gmp/bullseye-wikimedia,now 1:7.4.33-1+0~20221108.73+debian10~1.gbpa00350a+wmf11u2 amd64 [installed]
php7.4-igbinary/bullseye-wikimedia,now 3.2.1+2.0.8-2+wmf1+bullseye1 amd64 [installed,automatic]
php7.4-intl/bullseye-wikimedia,now 1:7.4.33-1+0~20221108.73+debian10~1.gbpa00350a+wmf11u2 amd64 [installed]
php7.4-json/bullseye-wikimedia,now 1:7.4.33-1+0~20221108.73+debian10~1.gbpa00350a+wmf11u2 amd64 [installed,automatic]
php7.4-luasandbox/bullseye-wikimedia,now 4.1.2-1+deb11u1 amd64 [installed]
php7.4-mbstring/bullseye-wikimedia,now 1:7.4.33-1+0~20221108.73+debian10~1.gbpa00350a+wmf11u2 amd64 [installed]
php7.4-memcached/bullseye-wikimedia,now 3.1.5+2.2.0-5+deb11u1+wmf1+bullseye1 amd64 [installed]
php7.4-msgpack/bullseye-wikimedia,now 2.1.2+0.5.7-2+wmf1+bullseye1 amd64 [installed]
php7.4-mysql/bullseye-wikimedia,now 1:7.4.33-1+0~20221108.73+debian10~1.gbpa00350a+wmf11u2 amd64 [installed]
php7.4-opcache/bullseye-wikimedia,now 1:7.4.33-1+0~20221108.73+debian10~1.gbpa00350a+wmf11u2 amd64 [installed]
php7.4-readline/bullseye-wikimedia,now 1:7.4.33-1+0~20221108.73+debian10~1.gbpa00350a+wmf11u2 amd64 [installed,automatic]
php7.4-redis/bullseye-wikimedia,now 5.3.2+4.3.0-2+deb11u1+wmf2+bullseye1 amd64 [installed]
php7.4-wikidiff2/bullseye-wikimedia,now 1.14.1-0+wmf1+bullseye1 amd64 [installed]
php7.4-xml/bullseye-wikimedia,now 1:7.4.33-1+0~20221108.73+debian10~1.gbpa00350a+wmf11u2 amd64 [installed]
php7.4-yaml/bullseye-wikimedia,now 2.2.1+2.1.0+2.0.4+1.3.2-2+wmf1~bullseye1 amd64 [installed]
swfrench@deploy1003:~$ # [ ... update happens ... ]
swfrench@deploy1003:~$ apt list --installed | egrep 'php|pcre2'
libpcre2-8-0/bullseye-wikimedia,now 10.42-1~wmf11+1 amd64 [installed]
php-common/bullseye-wikimedia,now 2:92+wmf11u1 all [installed]
php8.1-apcu/bullseye-wikimedia,now 5.1.23-1+wmf11u4 amd64 [installed]
php8.1-bcmath/bullseye-wikimedia,now 8.1.32-1+wmf11u1 amd64 [installed]
php8.1-bz2/bullseye-wikimedia,now 8.1.32-1+wmf11u1 amd64 [installed]
php8.1-cli/bullseye-wikimedia,now 8.1.32-1+wmf11u1 amd64 [installed]
php8.1-common/bullseye-wikimedia,now 8.1.32-1+wmf11u1 amd64 [installed]
php8.1-curl/bullseye-wikimedia,now 8.1.32-1+wmf11u1 amd64 [installed]
php8.1-dba/bullseye-wikimedia,now 8.1.32-1+wmf11u1 amd64 [installed]
php8.1-excimer/bullseye-wikimedia,now 1.2.3-1+wmf11u1 amd64 [installed]
php8.1-gd/bullseye-wikimedia,now 8.1.32-1+wmf11u1 amd64 [installed]
php8.1-gmp/bullseye-wikimedia,now 8.1.32-1+wmf11u1 amd64 [installed]
php8.1-igbinary/bullseye-wikimedia,now 3.2.15-1+wmf11u1 amd64 [installed,automatic]
php8.1-intl/bullseye-wikimedia,now 8.1.32-1+wmf11u1 amd64 [installed]
php8.1-luasandbox/bullseye-wikimedia,now 4.1.2-1+wmf11u2 amd64 [installed]
php8.1-mbstring/bullseye-wikimedia,now 8.1.32-1+wmf11u1 amd64 [installed]
php8.1-memcached/bullseye-wikimedia,now 3.2.0++-1+wmf11u1 amd64 [installed]
php8.1-msgpack/bullseye-wikimedia,now 1:2.2.0-4+wmf11u1 amd64 [installed]
php8.1-mysql/bullseye-wikimedia,now 8.1.32-1+wmf11u1 amd64 [installed]
php8.1-opcache/bullseye-wikimedia,now 8.1.32-1+wmf11u1 amd64 [installed]
php8.1-readline/bullseye-wikimedia,now 8.1.32-1+wmf11u1 amd64 [installed,automatic]
php8.1-redis/bullseye-wikimedia,now 6.0.2-1+wmf11u1 amd64 [installed]
php8.1-wikidiff2/bullseye-wikimedia,now 1.14.1-2+wmf11u2 amd64 [installed]
php8.1-xml/bullseye-wikimedia,now 8.1.32-1+wmf11u1 amd64 [installed]
php8.1-yaml/bullseye-wikimedia,now 2.2.3-2+wmf11u1 amd64 [installed]
swfrench@deploy1003:~$ cat version.php 
<?php
echo phpversion() . "\n";
swfrench@deploy1003:~$ php version.php 
8.1.32
swfrench@deploy1003:~$

The notable differences there being the absence of geoip (no longer used) and json (built-in on 8.1+).