Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 83553 - mod_php-4.3.10 with apache-2.0.52-r2 wont load turck-mmcache-2.4.6
Summary: mod_php-4.3.10 with apache-2.0.52-r2 wont load turck-mmcache-2.4.6
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Server (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: PHP Bugs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-02-28 06:52 UTC by Michael Zeidler
Modified: 2005-06-09 23:40 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 Michael Zeidler 2005-02-28 06:53:09 UTC
looking on the phpinfo()-output shows that no turck-mmcache-zend_extension is loaded. Only the php-cli version shows the right output.
No error messages are shown in the apache-error-log, only when the mmcache.so is intergrated as a normal extension (php.ini "extension=mmcache.so" + right extension_dir) the error appears that the module could not be loaded. But this way to produce this error doesn
Comment 1 Michael Zeidler 2005-02-28 06:53:09 UTC
looking on the phpinfo()-output shows that no turck-mmcache-zend_extension is loaded. Only the php-cli version shows the right output.
No error messages are shown in the apache-error-log, only when the mmcache.so is intergrated as a normal extension (php.ini "extension=mmcache.so" + right extension_dir) the error appears that the module could not be loaded. But this way to produce this error doesn´t count, as it is said to include the extension with "zend_extension=/usr/lib/extensions/no-debug-non-zts-20020429/mmcache.so" in php.ini.
I also tried "zend_extension_ts=/usr/..", with no success.


Reproducible: Always
Steps to Reproduce:
1.
2.
3.




emerge -pv =apache-2.0.52-r2

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild   R   ] net-www/apache-2.0.52-r2  +berkdb -debug -doc -gdbm +ipv6 +ldap
+php +ssl -static +threads 0 kB 
-------------------------------------------------------------------------------
# emerge -pv turck-mmcache

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild   R   ] dev-php/turck-mmcache-2.4.6  0 kB
-------------------------------------------------------------------------------
# emerge -pv mod_php

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild   R   ] dev-php/mod_php-4.3.10  +X +apache2 +berkdb +crypt +curl -debug
-doc -fdftk -firebird -flash -freetds +gd -gd-external -gdbm -gmp -hardenedphp
+imap -informix +ipv6 -java +jpeg -kerberos +ldap -mcal -memlimit -mssql +mysql
+nls -oci8 +odbc +pam +pdflib +png -postgres +qt -snmp +spell +ssl +tiff
+truetype +xml2 -yaz 0 kB 
------------------------------------------------------------------------------
# emerge --info
Portage 2.0.51-r15 (default-linux/x86/2004.3, gcc-3.3.4,
glibc-2.3.4.20050125-r0, 2.6.10-gentoo-r6 i686)
=================================================================
System uname: 2.6.10-gentoo-r6 i686 AMD Athlon(tm) XP 2800+
Gentoo Base System version 1.6.9
Python:              dev-lang/python-2.3.5 [2.3.5 (#1, Feb 26 2005, 18:39:17)]
dev-lang/python:     2.3.5
sys-devel/autoconf:  2.59-r6, 2.13
sys-devel/automake:  1.7.9-r1, 1.8.5-r3, 1.5, 1.4_p6, 1.6.3, 1.9.4
sys-devel/binutils:  2.15.92.0.2-r4
sys-devel/libtool:   1.5.10-r5
virtual/os-headers:  2.4.22-r1
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-mcpu=athlon-xp -O3 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-mcpu=athlon-xp -O3 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig buildpkg ccache digest distlocks fixpackages
sfperms"
GENTOO_MIRRORS="http://ftp.uni-erlangen.de/pub/mirrors/gentoo
ftp://ftp.uni-erlangen.de/pub/mirrors/gentoo http://gentoo.oregonstate.edu
http://www.ibiblio.org/pub/Linux/distributions/gentoo
http://gentoo.mirrors.pair.com ftp://gentoo.mirrors.pair.com"
LANG="de_AT@euro"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage/overlays/local
/usr/local/portage/overlays/gentoo-de"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="x86 3dnow 3dnowex X X509 Xaw3d aac aalib acl acpi acpi4linux aim alsa
apache2 async audiofile avi bash-completion bdf berkdb bindist bitmap-fonts
calendar cap caps cddb cdparanoia cdrom chroot codecs crypt css cups curl
curlwrappers dba devmap dga dio divx4linux drac dts dv dvd dvdr emboss encode
esd evms2 evo exif f77 faac faad fam fbcon fbdev ffmpeg flac flatfile fltk
fluidsynth fmod font-server foomaticdb foreign-package foreign-sysvinit fortran
freetype ftp gb gcj gd gif gimp gimpprint gpm graphviz gs gtk gtk2 icq idea
ieee1394 imagemagick imap imlib imlib2 inifile innodb insecure-drivers ipv6
ipv6arpa jabber javascript jbig jp2 jpeg lcms ldap libg++ libsamplerate libwww
live lm_sensors lufsusermount lzo lzw lzw-tiff mad maildir mbox mdb mikmod mime
mmap mmx mng motif mozcalendar mozp3p mozsvg mozxmlterm mp3 mpeg mpeg4 mpi
mplayer msn mysql ncurses network nls no-htdocs ntlm odbc oggvorbis opengl pam
pcre pdflib perl php png pnp posix pthreads python qt quicktime readline real
rtc ruby samba sasl sdl shared sharedmem slang slp sockets socks5 sox speedo
spell sse ssl svg svga sysvipc szip tcpd tga threads tidy tiff transcode
truetype truetype-fonts type1 type1-fonts usb v4l2 vcd winbind wmf xanim xfs
xine xinerama xml2 xmlrpc xmms xosd xpm xsl xv xvid zlib video_cards_3dfx
video_cards_gamma video_cards_i810 video_cards_i830 video_cards_matrox
video_cards_rage128 video_cards_radeon video_cards_sis"
Unset:  ASFLAGS, CBUILD, CTARGET, LC_ALL, LDFLAGS
Comment 2 Sven Wegener gentoo-dev 2005-02-28 07:12:17 UTC
Could it be the case that you recently updated mod_php and need to re-emerge
turck-mmache to build against the new mod_php?
Comment 3 Michael Zeidler 2005-02-28 07:54:08 UTC
hi sven once again,
alright I re-emerged turck-mmcache, now an error message in the apache-error log appears:
---------------------------------------------------------------------------
# /etc/init.d/apache2 restart
 * Stopping apache2 ...                                                                                                                                    [ ok ]
Failed loading /usr/lib/extensions/no-debug-non-zts-20020429/mmcache.so:  /usr/lib/extensions/no-debug-non-zts-20020429/mmcache.so: undefined symbol: output_globals
Failed loading /usr/lib/extensions/no-debug-non-zts-20020429/mmcache.so:  /usr/lib/extensions/no-debug-non-zts-20020429/mmcache.so: undefined symbol: output_globals
[Mon Feb 28 16:38:38 2005] [notice] caught SIGTERM, shutting down
Failed loading /usr/lib/extensions/no-debug-non-zts-20020429/mmcache.so:  /usr/lib/extensions/no-debug-non-zts-20020429/mmcache.so: undefined symbol: output_globals
 * Starting apache2 ...                                                                                                                                    [ ok ]
# [Mon Feb 28 16:38:41 2005] [notice] Digest: generating secret for digest authentication ...
[Mon Feb 28 16:38:41 2005] [notice] Digest: done
[Mon Feb 28 16:38:42 2005] [notice] Apache/2.0.52 (Gentoo/Linux) mod_ssl/2.0.52 OpenSSL/0.9.7e PHP/4.3.10 configured -- resuming normal operations
----------------------------------------------------------------------------

still no right output with phpinfo() as initialy mentioned.

Interessting is that this error message appeared the first time after remerging turck-mmcache. after this it never appeared again in the logs; now it runs like I explained in my first message for this bug. Very strange!
Maybe its a good idea to mention that I also suffer under the "to-much-apache-processes"-bug (http://bugs.gentoo.org/show_bug.cgi?id=81161)
Comment 4 Michael Zeidler 2005-02-28 07:58:13 UTC
> Sven Wegener  2005-02-28 07:12 PST -------
> Could it be the case that you recently updated mod_php and need to re-emerge
> turck-mmache to build against the new mod_php?

shouldn
Comment 5 Michael Zeidler 2005-02-28 07:58:13 UTC
> Sven Wegener  2005-02-28 07:12 PST -------
> Could it be the case that you recently updated mod_php and need to re-emerge
> turck-mmache to build against the new mod_php?

shouldn´t the portage system catch this?
Comment 6 Sven Wegener gentoo-dev 2005-02-28 08:04:48 UTC
No, portage has no reverse-dependencies yet. and revdep-rebuilt doesn't catch it
because it's no broken library, turck-mmache checks the php version and refuses
to work with other php versions than it was compiled against.

Just a rough guess: Are you using the worker MPM? Or any other MPM that uses threads?
Comment 7 Michael Zeidler 2005-02-28 08:45:21 UTC
as you can see in the "emerge -pv =apache-2.0.52-r2"-output above the "+threads"-use-flag is on. So I assume that my apache-installation supports threads.

The compiled MPM-modules can be listed with this:
# apache2 -l
Compiled in modules:
  core.c
  worker.c
  http_core.c
  mod_so.c
 
so actually worker is set here. The "tread"-USE-Flag determines if any MPM-modules should be compiled into apache? How could I choose, let say between worker and preforked?
What conflicts is this producing here?
Comment 8 Sven Wegener gentoo-dev 2005-02-28 09:00:39 UTC
Ah, due to the line wrap I oversaw the rest of the emerge output line.

    if use threads; then
        einfo "Enabling threads support"
        myconf="${myconf} --with-mpm=worker"
    else
        myconf="${myconf} --with-mpm=${MPM:=prefork}"
    fi

You choose at build time which to use. If USE="threads" the worker MPM will be
used. If USE="-threads" the default is prefork, but may be overwritten by the
MPM variable. To me it looks like turck-mmcache is incompatible with MPMs that
use threads.
Comment 9 Michael Zeidler 2005-02-28 10:33:26 UTC
Right prediction, sven. I re-emerged apache whithout the threads-flag, after that the same with mod_php and turck-mmcache. Now the apache-server runs with MPM-preforked and the phpinfo() gives the right output.
So the turck-mmcache
Comment 10 Michael Zeidler 2005-02-28 10:33:26 UTC
Right prediction, sven. I re-emerged apache whithout the threads-flag, after that the same with mod_php and turck-mmcache. Now the apache-server runs with MPM-preforked and the phpinfo() gives the right output.
So the turck-mmcache´s ebuild and probably many more (for instance xdebug) must include some code similar to that one you droped in the last post.
A way would be to check with what USE-flags apache itself was emerged (USE="-threads" emerge ...).
Comment 11 Jakub Moc (RETIRED) gentoo-dev 2005-03-23 08:04:29 UTC
I have tried both turck-mmcache and eaccelerator with mod-php/4.3.10-r1 and neither of then works. Exactly the same behaviour like in this bug
Comment 12 Jakub Moc (RETIRED) gentoo-dev 2005-03-23 08:04:29 UTC
I have tried both turck-mmcache and eaccelerator with mod-php/4.3.10-r1 and neither of then works. Exactly the same behaviour like in this bug´s description. Testing apache-2.0.53 with prefork, no threads flag is set. :-(
Comment 13 Ed Wildgoose 2005-03-28 05:33:12 UTC
...bet you didn't rebuild mod_php after you rebuilt "apache -threads"...?

This "fixed" it for me.  Would be useful to at least have a note about this issue somewhere.  It seems to affect php-accelerator and all the other php speedup apps as well
Comment 14 Jakub Moc (RETIRED) gentoo-dev 2005-03-28 05:56:04 UTC
Ed, no need to rebuild for me, this is a fresh Gentoo install. 
Comment 15 deoren 2005-03-30 16:37:29 UTC
Same issue here.  I built Apache2 with threads, then emerged mod_php php and then turck-mmcache.

Strangely enough the directory: /usr/lib/php/extensions/no-debug-non-zts-20020429/
was created whether apache used threads or not.

I did notice when visiting the "results" of phpinfo(); that with the threads use flag that the worker MPM was used, and when -threads was used prefork MPM was used along with whether Thread Safety was enabled or not.

Like others have noted, building apache with threads disabled (prefork) results in turck-mmcache working.  With threads enabled turck-mmcache fails.

This posting: http://forums.gentoo.org/viewtopic-p-2252501.html#2178999 
is perhaps a solution?
Comment 16 Jakub Moc (RETIRED) gentoo-dev 2005-04-12 15:42:11 UTC
OK, so dev-php/eaccelerator-0.9.2a and dev-php/turck-mmcache-2.4.6 only work for me if I

- add -DZTS -DPTHREADS to CFLAGS to emerge it

AND

- set zend_extension_ts="/usr/lib/php/extensions/no-debug-non-zts-20020429/eaccelerator.so"

zend_extension or extension does not work at all.

Apache flags on the test machine:

[ebuild   R   ] net-www/apache-2.0.53  +apache2 -debug +doc -ldap -mpm-leader -mpm-peruser +mpm-prefork -mpm-threadpool +mpm-worker -no-suexec +ssl -static-modules -threads 0 kB
Comment 17 Jakub Moc (RETIRED) gentoo-dev 2005-05-20 10:44:27 UTC
Still the same story as in Comment #12 with 0.9.3. :-(
Comment 18 Stuart Herbert (RETIRED) gentoo-dev 2005-05-31 15:18:31 UTC
turck-mmcache is scheduled for removal from Portage, and is no longer supported.
 We'll shortly be removing the ability to install multiple MPMs w/ Apache 2.

Best regards,
Stu
Comment 19 Sebastian Bergmann (RETIRED) gentoo-dev 2005-06-09 23:40:09 UTC
dev-php/turck-mmcache has been removed from the tree.