Page MenuHomePhabricator

PHP & redis: undefined symbol: igbinary_serialize
Closed, ResolvedPublic

Description

When I start a php script in the cloud (with jstart) I get the following error:

PHP Warning: PHP Startup: Unable to load dynamic library 'redis.so' (tried: /usr/lib/php/20170718/redis.so (/usr/lib/php/20170718/redis.so: undefined symbol: igbinary_serialize), /usr/lib/php/20170718/redis.so.so (/usr/lib/php/20170718/redis.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

Testscript named tst.php is like the following:

<?php
  print strftime("%B", mktime(12, 0, 0, 1, 10, 2000)) . "\n";
?>

I start it with jsub -quiet -N tst -once -mem 750m php ~/tst.php

and after a while I see the waring message from above in tst.err

No such message appears when I run that script locally on tools-sgebastion-08

Event Timeline

Seems to happen at least on tools-sgeexec-0951 (does not happen on a lot of other machines in the cloud)

Happens also on tools-sgeexec-0952

php-igbinary versions seem to differ across exec nodes on a quick check.

tools-sgeexec-0910:~$ apt policy php-igbinary
php-igbinary:
  Installed: 2.0.7-1+0~20180819151949.3+stretch~1.gbpd43851
  Candidate: 2.0.8-1+0~20190218104323.8+stretch~1.gbpb6c89+wmf1
  Version table:
     2.0.8-1+0~20190218104323.8+stretch~1.gbpb6c89+wmf1 1001
       1001 http://apt.wikimedia.org/wikimedia stretch-wikimedia/component/php72 amd64 Packages
 *** 2.0.7-1+0~20180819151949.3+stretch~1.gbpd43851 100
        100 /var/lib/dpkg/status
     2.0.1-1 500
        500 http://deb.debian.org/debian stretch/main amd64 Packages
tools-sgeexec-0951:~$ apt policy php-igbinary
php-igbinary:
  Installed: 2.0.1-1
  Candidate: 2.0.8-1+0~20190218104323.8+stretch~1.gbpb6c89+wmf1
  Version table:
     2.0.8-1+0~20190218104323.8+stretch~1.gbpb6c89+wmf1 1001
       1001 http://apt.wikimedia.org/wikimedia stretch-wikimedia/component/php72 amd64 Packages
 *** 2.0.1-1 500
        500 http://deb.debian.org/debian stretch/main amd64 Packages
        100 /var/lib/dpkg/status

I'm willing to bet this relates to stretch backports issues (since a version clearly went away). However, it looks like the right fix is to move to the component repo version and intentionally installing the package rather than going with a dependency install.

Change 625979 had a related patch set uploaded (by Bstorm; owner: Bstorm):
[operations/puppet@production] tools-grid: Install correct version of php-igbinary

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

Change 625979 merged by Bstorm:
[operations/puppet@production] tools-grid: Install correct version of php-igbinary

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

bstorm@tools-sgeexec-0910:~$ apt policy php-igbinary
php-igbinary:
  Installed: 2.0.8-1+0~20190218104323.8+stretch~1.gbpb6c89+wmf1
  Candidate: 2.0.8-1+0~20190218104323.8+stretch~1.gbpb6c89+wmf1
  Version table:
 *** 2.0.8-1+0~20190218104323.8+stretch~1.gbpb6c89+wmf1 1001
       1001 http://apt.wikimedia.org/wikimedia stretch-wikimedia/component/php72 amd64 Packages
        100 /var/lib/dpkg/status
     2.0.1-1 500
        500 http://deb.debian.org/debian stretch/main amd64 Packages

That looks a lot better.

Yes, looks fine. I do not see that error message now. Thank you!

Bstorm claimed this task.