Page MenuHomePhabricator

Install zip extension for CI
Closed, ResolvedPublicPRODUCTION ERROR

Description

The PHPExcel tests for the following php extensions:

if (!extension_loaded('zip')) {
	die('Missing zip extension.');
}

if (!extension_loaded('xml')) {
	die('Missing xml extension.');
}

if (!extension_loaded('iconv')) {
	die('Missing iconv extension.');
}

But the php zend unit test fails with "Missing zip extension."

Please allow all three php extension to use on jenkins CI.

https://integration.wikimedia.org/ci/job/mwext-testextension-php55-jessie/2445/console

Event Timeline

Interestingly, all these seem enabled/installed on production hhvm/php5

reedy@tin:~$ php -a
Welcome to HipHop Debugger!
Type "help" or "?" for a complete list of commands.

Note: no server specified, debugging local scripts only.
If you want to connect to a server, launch with "-h" or use:
  [m]achine [c]onnect <servername>

hphpd> echo extension_loaded('zip');
echo extension_loaded('zip');
1
hphpd> echo extension_loaded('xml');
echo extension_loaded('xml');
1
hphpd> echo extension_loaded('iconv');
echo extension_loaded('iconv');
1
hphpd> echo extension_loaded('lol');
echo extension_loaded('lol');

hphpd> phpcquit
reedy@tin:~$ php5 -m
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
ereg
exif
fileinfo
filter
ftp
geoip
gettext
hash
iconv
intl
json
libxml
luasandbox
mbstring
memcached
mhash
mysql
mysqli
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlrpc
xmlwriter
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache

reedy@tin:~$

It works for the hhvm unit test, not for the php unit test.

Php 5.5 is not available on Jessie and CI uses custom packages. The zip extension is available at least:

$ apt-cache policy php5.5-zip
php5.5-zip:
  Installed: (none)
  Candidate: 5.5.38-4+wmf1+jessie
  Version table:
     5.5.38-4+wmf1+jessie 0
       1001 http://apt.wikimedia.org/wikimedia/ jessie-wikimedia/component/ci amd64 Packages

It is all about adding it to puppet.git in the list of php5.5 packages to install. modules/contint/manifests/packages/php.pp, get it reviewed/merged by operations and then we can refresh the Nodepool snapshots.

Change 389512 had a related patch set uploaded (by Umherirrender; owner: Umherirrender):
[operations/puppet@production] Install php5.5-iconv, php5.5-xml and php5.5-zip

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

Change 389512 merged by Dzahn:
[operations/puppet@production] contint: Install php5.5-xml and php5.5-zip

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

Now merged, the refresh of the nodepool snapshot is the next step

The snapshot automatically get regenerated at 14:14 UTC. It failed though due to an unrelated issue:

Error: Execution of '/usr/bin/gem install --no-rdoc --no-ri jsduck' returned 1: ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
    bad response first byte timeout 503 (https://api.rubygems.org/api/v1/dependencies?gems=jsduck)

Mentioned in SAL (#wikimedia-releng) [2017-11-07T17:15:49Z] <hashar> Updating Nodepool snapshot to get php5.5-zip - T179772

Mentioned in SAL (#wikimedia-releng) [2017-11-07T17:27:30Z] <hashar> Image snapshot-ci-jessie-1510074928 in wmflabs-eqiad is ready - T179772

Change 389748 had a related patch set uploaded (by Hashar; owner: Hashar):
[mediawiki/extensions/PHPExcel@master] Test Jenkins builb

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

Change 389748 abandoned by Hashar:
Test Jenkins builb

Reason:
\O/

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

mmodell changed the subtype of this task from "Task" to "Production Error".Aug 28 2019, 11:09 PM