Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 430344 - dev-php/pecl-memcached-2.1.0 - PHP Startup: Unable to load dynamic library '/usr/lib64/php5.4/lib/extensions/no-debug-zts-20100525/memcached.so' - /usr/lib64/php5.4/lib/extensions/no-debug-zts-20100525/memcached.so: undefined symbol: memcached_server_micr
Summary: dev-php/pecl-memcached-2.1.0 - PHP Startup: Unable to load dynamic library '/...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Robin Johnson
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-08-07 18:03 UTC by Guillaume Castagnino
Modified: 2012-10-10 09:38 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Guillaume Castagnino 2012-08-07 18:03:32 UTC
After upgrading to pecl-memcached-2.1.0, memcache support is broken. At startup, I get this message:
PHP Startup: Unable to load dynamic library '/usr/lib64/php5.4/lib/extensions/no-debug-zts-20100525/memcached.so' - /usr/lib64/php5.4/lib/extensions/no-debug-zts-20100525/memcached.so: undefined symbol: memcached_server_micro_version in Unknown on line 0


This is because the libmemcached version in portage (1.0.4) is too old. The API fix is here : http://bazaar.launchpad.net/~tangent-org/libmemcached/trunk/revision/1032#libmemcached-1.0/server.h


Quick fix: upgrade dev-libs/libmemcached to 1.0.10 (so please, bump it ! ;)), and raise the pecl-memcached dependancy to require this version at least.

Thanks !
Comment 1 Guillaume Castagnino 2012-09-05 10:56:52 UTC
Hi,

Any news here ? pecl-memcached-2.1.0 is still broken in tree due to the missing libmemcached-1.0.10

Bump is requested here: #431440 and here: #429542
Comment 2 Ole Markus With (RETIRED) gentoo-dev 2012-09-05 11:25:58 UTC
Using 1.0.4 I get the following:

hermes ~ # php -i | grep memcached
memcached support => enabled
libmemcached version => 1.0.4
memcached.compression_factor => 1.3 => 1.3
memcached.compression_threshold => 2000 => 2000
memcached.compression_type => fastlz => fastlz
memcached.serializer => php => php
memcached.sess_binary => 0 => 0
memcached.sess_lock_wait => 150000 => 150000
memcached.sess_locking => 1 => 1
memcached.sess_prefix => memc.sess.key. => memc.sess.key.
Registered save handlers => files user memcached 

So it works fine with 1.0.4. The upstream changelog also says it requires only 1.0.x.

The dep string in pecl-memcached was wrong though, so I created a revbump to fix that.
Comment 3 Guillaume Castagnino 2012-09-05 11:35:34 UTC
So how can be explained the undefined symbol message I get when starting php ??? which is solved by upgrading libmemcached...
The libmemcached commit is pretty obvious...


For the record, the emerge --info (this is a hardened system, may be it can make the linker behave differently, stricter ?):
# emerge --info pecl-memcached
Portage 2.2.0_alpha124 (hardened/linux/amd64/no-multilib, gcc-4.6.3, glibc-2.15-r2, 3.5.3-hardened-r1 x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-3.5.3-hardened-r1-x86_64-Intel-R-_Atom-TM-_CPU_D510_@_1.66GHz-with-gentoo-2.2
Timestamp of tree: Tue, 04 Sep 2012 19:15:01 +0000
app-shells/bash:          4.2_p37
dev-lang/python:          2.7.3-r2, 3.2.3-r1
dev-util/cmake:           2.8.9
dev-util/pkgconfig:       0.27.1
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.10.5
sys-apps/sandbox:         2.6
sys-devel/autoconf:       2.69
sys-devel/automake:       1.12.3
sys-devel/binutils:       2.22.90
sys-devel/gcc:            4.6.3
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r3
sys-kernel/linux-headers: 3.5 (virtual/os-headers)
sys-libs/glibc:           2.15-r2
Repositories: gentoo gcpan xwing local_portage
Installed sets: @system
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -mtune=native -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /usr/share/openvpn/easy-rsa /var/bind"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.4/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=native -O2 -mtune=native -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps y"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs buildsyspkg collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://dagobah.xwing.info/ ftp://ftp.free.fr/mirrors/ftp.gentoo.org/     http://mirror.ovh.net/gentoo-distfiles/ http://gentoo.tiscali.nl/"
LANG="fr_FR.utf8"
LC_ALL="fr_FR.utf8"
LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,--sort-common"
LINGUAS="fr"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages" 
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" 
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage/gcpan-portage /usr/local/portage/portage /usr/local/portage/local-portage"
SYNC="rsync://dagobah.xwing.info/gentoo-portage"
USE="acl acpi amd64 bash-completion bashlogger bzip2 caps cli cracklib crypt cups cxx dri fontconfig hardened iconv idled idn iproute2 ipv6 ithreads jpeg justify mmx mudflap ncurses nls nptl openldap openmp pam pax_kernel pcre png pppd readline sasl session sieve sse sse2 sse3 ssl ssse3 syslog tcpd threads tiff udev unicode urandom usb vim-pager vim-syntax xattr zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="fr" NGINX_MODULES_HTTP="access auth_basic autoindex browser charset empty_gif fastcgi gzip headers_more limit_req limit_conn map proxy realip referer rewrite stub_status upstream_ip_hash userid" PHP_TARGETS="php5-4" PYTHON_TARGETS="python3_2 python2_7" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga neomagic nouveau nv r128 radeon savage sis tdfx trident vesa via vmware dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

=================================================================
                        Package Settings
=================================================================

dev-php/pecl-memcached-2.1.0 was built with the following:
USE="session (-igbinary)" PHP_TARGETS="php5-4 -php5-3"
Comment 4 Guillaume Castagnino 2012-09-05 11:43:43 UTC
Currently, I make pecl-memcached-2.1.0 run with a libmemcached-1.0.10 in a local overlay. If I downgrade libmemcached to 1.0.4, it fails to start again:

# php -i | grep memcached
/etc/php/cli-php5.4/ext-active/memcached.ini
memcached
memcached support => enabled
libmemcached version => 1.0.10
memcached.compression_factor => 1.3 => 1.3
memcached.compression_threshold => 2000 => 2000
memcached.compression_type => fastlz => fastlz
memcached.serializer => php => php
memcached.sess_binary => 0 => 0
memcached.sess_lock_wait => 150000 => 150000
memcached.sess_locking => 1 => 1
memcached.sess_prefix => memc.sess.key. => memc.sess.key.
Registered save handlers => files user memcached
Comment 5 Guillaume Castagnino 2012-10-10 09:38:30 UTC
this is solved for me with the libmemcached bump to 1.0.11