Bug 21833 - Unable to load dynamic library /usr/lib64/php/extensions/memcache.so: undefined symbol: mmc_queue_remove in Unknown on line 0
Summary: Unable to load dynamic library /usr/lib64/php/extensions/memcache.so: undefin...
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: 6
Hardware: All Linux
Priority: Normal normal
Target Milestone: ---
Assignee: QA Team
QA Contact:
URL:
Whiteboard: MGA6-64-OK MGA6-32-OK
Keywords: advisory, validated_update
Depends on:
Blocks:
 
Reported: 2017-10-11 15:25 CEST by Raphael Gertz
Modified: 2017-10-20 00:06 CEST (History)
4 users (show)

See Also:
Source RPM: php-memcache-3.0.8-8.mga6.src.rpm
CVE:
Status comment:


Attachments
screeshot of mga6 i586 php (9.91 KB, image/png)
2017-10-19 17:21 CEST, Shlomi Fish
Details

Description Raphael Gertz 2017-10-11 15:25:45 CEST
Description of problem:
php-memcache module is unusable, because of undefined symbol.

There seems to have a problem with some undefined symbols.

Version-Release number of selected component (if applicable):
php-memcache-3.0.8-8.mga6

How reproducible:
Always

Steps to Reproduce:
1. urpmi php-memcache php-cli
2. php
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/extensions/memcache.so' - /usr/lib64/php/extensions/memcache.so: undefined symbol: mmc_queue_remove in Unknown on line 0
3. Ctrl+c
Comment 1 Marja Van Waes 2017-10-11 21:54:43 CEST
Assigning to all packagers collectively, since there is no registered maintainer for this package.

Assignee: bugsquad => pkg-bugs
CC: (none) => marja11

Comment 2 Raphael Gertz 2017-10-13 15:08:05 CEST
Relative to gcc 5 :
https://bugs.php.net/bug.php?id=66230

Found this patch which remove inline (like done for win32 arch) :
https://build.opensuse.org/package/view_file/home:morbid_viper/php5-pecl-memcache/_service:download_src_package:memcache-faulty-inline.diff?expand=1

Porting suggestion :
https://gcc.gnu.org/gcc-5/porting_to.html

Followed this suggestion :
https://stackoverflow.com/questions/13120633/how-to-deal-with-warning-inline-function-stat64-declared-but-never-defined

Patched the redefinition of IS_CALLABLE macro.

I fixed it for mga6 (in update_testing) and cauldron, need someone to test for cauldron.

Status: NEW => RESOLVED
Resolution: (none) => FIXED

Comment 3 Samuel Verschelde 2017-10-13 15:11:01 CEST
Thanks for the fix!

If you want the update to reach Mageia 6 users, please follow https://wiki.mageia.org/en/Updates_policy#Maintainer_.28or_any_interested_packager.29
Comment 4 Samuel Verschelde 2017-10-13 15:11:45 CEST
(reopening since the update is not available to all Mageia 6 users yet)

Resolution: FIXED => (none)
Status: RESOLVED => REOPENED

Comment 5 Raphael Gertz 2017-10-13 15:22:40 CEST
For me it's validated, the package didn't worked anyway for mga6 and cauldron.

Test is simple :
$ urpmi php-cli php-memcache
$ echo '<?php var_dump(class_exists("memcache")); exit; ' | php
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/extensions/memcache.so' - /usr/lib64/php/extensions/memcache.so: undefined symbol: mmc_queue_remove in Unknown on line 0
bool(false)
$ sudo urpmi ../php-memcache.orig/RPMS/x86_64/php-memcache-3.0.8-9.mga6.x86_64.rpm 
SECURITÉ : Les paquetages suivants ne sont _PAS_ signés (OK ((none))) : ../php-memcache.orig/RPMS/x86_64/php-memcache-3.0.8-9.mga6.x86_64.rpm
installation de php-memcache-3.0.8-9.mga6.x86_64.rpm depuis ../php-memcache.orig/RPMS/x86_64
Préparation...                                                 #
      1/1: php-memcache                                        #
      1/1: désinstallation de php-memcache-3.0.8-8.mga6.x86_64 #
$ echo '<?php var_dump(class_exists("memcache")); exit; ' | php
bool(true)

Thank's in advance :)
Comment 6 Raphael Gertz 2017-10-13 16:45:39 CEST
Thank to ‎barjac‎@mageia-dev, cauldron test :
[baz@localhost ~]$ sudo urpmi php-cli php-memcache
Marking php-cli as manually installed, it won't be auto-orphaned
writing /var/lib/rpm/installed-through-deps.list
To satisfy dependencies, the following packages are going to be installed:
  Package                        Version      Release       Arch    
(medium "Core Release")
  cyrus-sasl                     2.1.26       13.mga7       x86_64  
  lib64json2                     0.12.1       2.mga7        x86_64  
  lib64php5_common5              5.6.31       2.mga7        x86_64  
  lib64sasl2-plug-anonymous      2.1.26       13.mga7       x86_64  (recommended)
  lib64sasl2-plug-crammd5        2.1.26       13.mga7       x86_64  
  lib64sasl2-plug-login          2.1.26       13.mga7       x86_64  (recommended)
  lib64sasl2-plug-plain          2.1.26       13.mga7       x86_64  
  memcached                      1.4.25       2.mga6        x86_64  
  php-cli                        5.6.31       2.mga7        x86_64  
  php-ctype                      5.6.31       2.mga7        x86_64  
  php-dom                        5.6.31       2.mga7        x86_64  
  php-filter                     5.6.31       2.mga7        x86_64  
  php-ftp                        5.6.31       2.mga7        x86_64  
  php-gettext                    5.6.31       2.mga7        x86_64  
  php-hash                       5.6.31       2.mga7        x86_64  
  php-ini                        5.6.31       2.mga7        x86_64  
  php-json                       5.6.31       2.mga7        x86_64  
  php-memcache                   3.0.8        10.mga7       x86_64  
  php-openssl                    5.6.31       2.mga7        x86_64  
  php-posix                      5.6.31       2.mga7        x86_64  
  php-session                    5.6.31       2.mga7        x86_64  
  php-suhosin                    0.9.38       1.mga6        x86_64  (recommended)
  php-sysvsem                    5.6.31       2.mga7        x86_64  
  php-sysvshm                    5.6.31       2.mga7        x86_64  
  php-timezonedb                 2017.2       1.mga6        x86_64  
  php-tokenizer                  5.6.31       2.mga7        x86_64  
  php-xml                        5.6.31       2.mga7        x86_64  
  php-xmlreader                  5.6.31       2.mga7        x86_64  
  php-xmlwriter                  5.6.31       2.mga7        x86_64  
  php-zlib                       5.6.31       2.mga7        x86_64  
  webserver-base                 2.0          10.mga6       noarch  
9.7MB of additional disk space will be used.
2.7MB of packages will be retrieved.
Proceed with the installation of the 31 packages? (Y/n) y


    http://192.168.1.64/pub/linux/Mageia/distrib/cauldron/x86_64/media/core/release/php-memcache-3.0.8-10.mga7.x86_64.rpm
installing php-tokenizer-5.6.31-2.mga7.x86_64.rpm lib64sasl2-plug-crammd5-2.1.26-13.mga7.x86_64.rpm lib64sasl2-plug-login-2.1.26-13.mga7.x86_64.rpm php-session-5.6.31-2.mga7.x86_64.rpm php-timezonedb-2017.2-1.mga6.x86_64.rpm php-ini-5.6.31-2.mga7.x86_64.rpm php-dom-5.6.31-2.mga7.x86_64.rpm php-xmlwriter-5.6.31-2.mga7.x86_64.rpm webserver-base-2.0-10.mga6.noarch.rpm php-zlib-5.6.31-2.mga7.x86_64.rpm php-xml-5.6.31-2.mga7.x86_64.rpm php-cli-5.6.31-2.mga7.x86_64.rpm php-filter-5.6.31-2.mga7.x86_64.rpm lib64sasl2-plug-plain-2.1.26-13.mga7.x86_64.rpm php-xmlreader-5.6.31-2.mga7.x86_64.rpm php-sysvshm-5.6.31-2.mga7.x86_64.rpm lib64sasl2-plug-anonymous-2.1.26-13.mga7.x86_64.rpm php-memcache-3.0.8-10.mga7.x86_64.rpm php-openssl-5.6.31-2.mga7.x86_64.rpm php-posix-5.6.31-2.mga7.x86_64.rpm lib64json2-0.12.1-2.mga7.x86_64.rpm memcached-1.4.25-2.mga6.x86_64.rpm php-ftp-5.6.31-2.mga7.x86_64.rpm php-ctype-5.6.31-2.mga7.x86_64.rpm php-suhosin-0.9.38-1.mga6.x86_64.rpm php-sysvsem-5.6.31-2.mga7.x86_64.rpm cyrus-sasl-2.1.26-13.mga7.x86_64.rpm php-json-5.6.31-2.mga7.x86_64.rpm php-hash-5.6.31-2.mga7.x86_64.rpm lib64php5_common5-5.6.31-2.mga7.x86_64.rpm php-gettext-5.6.31-2.mga7.x86_64.rpm from /var/cache/urpmi/rpms
Preparing...                     #########################################################################################################
     1/31: lib64php5_common5     #########################################################################################################
     2/31: php-tokenizer         #########################################################################################################
     3/31: php-dom               #########################################################################################################
     4/31: php-xmlreader         #########################################################################################################
     5/31: php-xmlwriter         #########################################################################################################
     6/31: php-zlib              #########################################################################################################
     7/31: php-xml               #########################################################################################################
     8/31: php-filter            #########################################################################################################
     9/31: php-sysvshm           #########################################################################################################
    10/31: php-openssl           #########################################################################################################
    11/31: php-posix             #########################################################################################################
    12/31: php-ftp               #########################################################################################################
    13/31: php-ctype             #########################################################################################################
    14/31: php-sysvsem           #########################################################################################################
    15/31: php-hash              #########################################################################################################
    16/31: php-gettext           #########################################################################################################
    17/31: cyrus-sasl            #########################################################################################################
    18/31: lib64json2            #########################################################################################################
    19/31: php-json              #########################################################################################################
    20/31: lib64sasl2-plug-plain #########################################################################################################
    21/31: webserver-base        #########################################################################################################
    22/31: php-session           #########################################################################################################
    23/31: php-ini               #########################################################################################################
    24/31: php-timezonedb        #########################################################################################################
    25/31: lib64sasl2-plug-crammd5
                                 #########################################################################################################
    26/31: memcached             #########################################################################################################
    27/31: php-memcache          #########################################################################################################
    28/31: php-cli               #########################################################################################################
    29/31: php-suhosin           #########################################################################################################
    30/31: lib64sasl2-plug-anonymous
                                 #########################################################################################################
    31/31: lib64sasl2-plug-login #########################################################################################################
[baz@localhost ~]$ echo '<?php var_dump(class_exists("memcache"));' | php
bool(true)
[baz@localhost ~]$
Comment 7 Raphael Gertz 2017-10-13 18:04:25 CEST
Advisory :
type: bugfix
subject: Updated php-memcache package fixes undefined symbol: mmc_queue_remove
src:
    6:
        core:
            - php-memcache-3.0.8-9.mga6
description:
    Php-memcache was broken because of a duplicated define and inline behaviour
    change when gcc was updated to version 5.
    The updated package allow memcache class and function to be usable in php.
references:
    - https://bugs.mageia.org/show_bug.cgi?id=21833
ID: MGASA-2017-0368
Comment 8 Raphael Gertz 2017-10-13 18:09:57 CEST
Assign to qa.

Assignee: pkg-bugs => qa-bugs

Comment 9 Raphael Gertz 2017-10-13 18:50:43 CEST
Tested under mga6 x86_64.
Comment 10 Raphael Gertz 2017-10-19 13:46:26 CEST
May someone validate the update_testing rpm so it can be pushed by sysadmin in updates ?
Raphael Gertz 2017-10-19 14:32:14 CEST

Whiteboard: (none) => MGA6-64-OK

Comment 11 Shlomi Fish 2017-10-19 17:20:26 CEST
it is fine in mga6 i586 in a vbox vm.

Whiteboard: MGA6-64-OK => MGA6-64-OK MGA6-32-OK
CC: (none) => shlomif

Comment 12 Shlomi Fish 2017-10-19 17:21:14 CEST
Created attachment 9738 [details]
screeshot of mga6 i586 php
Comment 13 Lewis Smith 2017-10-19 20:55:53 CEST
Validating.
Advisory from comment 7 and bug RPMs link (note that the version cited in comment 7 is 3.0.8-9, in the RPMs list it is 3.0.8-10 ; used the latter).

Keywords: (none) => advisory, validated_update
CC: (none) => lewyssmith, sysadmin-bugs

Comment 14 Mageia Robot 2017-10-20 00:06:32 CEST
An update for this issue has been pushed to the Mageia Updates repository.

https://advisories.mageia.org/MGAA-2017-0097.html

Resolution: (none) => FIXED
Status: REOPENED => RESOLVED


Note You need to log in before you can comment on or make changes to this bug.