php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #9398 Apache SIGTERM when loading php with pspell AND sablotron
Submitted: 2001-02-22 05:08 UTC Modified: 2001-07-30 18:41 UTC
From: hgomez at slib dot fr Assigned:
Status: Closed Package: Sablotron XSL
PHP Version: 4.0.4pl1 OS: Linux Redhat 6.2
Private report: No CVE-ID: None
 [2001-02-22 05:08 UTC] hgomez at slib dot fr
I've got Apache (1.3.17 + mod_ssl 2.8.0) SIGTERM when using a php 4.04pl1 and mod_php 4.04pl1 with sablotron and pspell.

There are both present as extension loaded via php.ini.

If I remove sablotron (or pspell), apache with mod_php4 start and works correctly. The problem DIDN'T appears when using php in standalone .... 

It seems that Apache got a problem when loading more than one external modules using libstdc++. I've got a similar error when trying to run apache with the mod_xslt from Xalan-C Project....

---

;; EXTENSION LOADING
extension_dir	=	/usr/lib/php4

;; Global PHP defaults

warn_plus_overloading	=	On	; warn if the + operator is used with strings
track_errors		=	On	; Store the last error/warning message in $php_errormsg (boolean)
track_vars		=	On	; enable the $HTTP_*_VARS[] arrays, where * is one of

magic_quotes_gpc	=	On	; magic quotes for incoming GET/POST/Cookie data
					; many people think that the system is a pain in the
					; a**, but it probably does represent a security 
					; feature for in-experienced PHP developers. Turn it
					; off if you don't want PHP to mess with your incoming
					; variables.
include_path	= ".:/usr/share/php/PEAR"
session.save_path = "/var/state/php"

extension=imap.so
extension=ldap.so
extension=pgsql.so
extension=mysql.so
extension=gd.so
extension=gettext.so
extension=sysvshm.so
extension=sysvsem.so
extension=shmop.so
#extension=pspell.so
extension=snmp.so
extension=sybase_ct.so
extension=pdf.so
extension=swf.so
extension=sockets.so
extension=curl.so
extension=ftp.so
extension=exif.so
extension=ming.so
extension=sablot.so
extension=php_apc_shm.so

---

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-02-23 04:42 UTC] hgomez at slib dot fr
The problem appears to be between pspell and sablotron modules which are using both C++ shared libs.

If we change the load, first sablot and after pspell, that's
works.

I attached two logs for httpd -DSSL -DHAVE_PHP4 -X,
one works, one failed:

Here is what ldd -v return for pspell.so and original sablot.so
 
--- PSPELL

	Version information:
	/usr/lib/libpspell.so:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libltdl.so.0:
		libdl.so.2 (GLIBC_2.1) => /lib/libdl.so.2
		libdl.so.2 (GLIBC_2.0) => /lib/libdl.so.2
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libpspell-modules.so.1:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libstdc++-libc6.2-2.so.3:
		libm.so.6 (GLIBC_2.0) => /lib/libm.so.6
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/lib/libc.so.6:
		ld-linux.so.2 (GLIBC_2.1.1) => /lib/ld-linux.so.2
		ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2
		ld-linux.so.2 (GLIBC_2.2) => /lib/ld-linux.so.2
		ld-linux.so.2 (GLIBC_2.0) => /lib/ld-linux.so.2
	/lib/libdl.so.2:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/lib/libm.so.6:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x4007c000)
	libc.so.6 => /lib/libc.so.6 (0x400bf000)
	libm.so.6 => /lib/libm.so.6 (0x401e8000)
	/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)

--- SABLOT

	Version information:
	/usr/lib/libsablot.so:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/usr/lib/libstdc++-libc6.2-2.so.3:
		libm.so.6 (GLIBC_2.0) => /lib/libm.so.6
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
	/lib/libc.so.6:
		ld-linux.so.2 (GLIBC_2.1.1) => /lib/ld-linux.so.2
		ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2
		ld-linux.so.2 (GLIBC_2.2) => /lib/ld-linux.so.2
		ld-linux.so.2 (GLIBC_2.0) => /lib/ld-linux.so.2
	/lib/libm.so.6:
		libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
		libc.so.6 (GLIBC_2.0) => /lib/libc.so.6

I'm not a specialist in C++ or lib loader problem but a quick fix
was to rebuild sablot.so with -lexpat (just missing) and -lstdc++
With that patch you could load pspell and sablot in any orders.

---

--- Sablot/engine/Makefile.in.orig	Thu Feb 22 23:09:37 2001
+++ Sablot/engine/Makefile.in	Thu Feb 22 23:10:30 2001
@@ -96,7 +96,7 @@
 
 DEFS = @DEFS@ -I. -I$(srcdir) -I../../autocfg
 LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
+LIBS = @LIBS@ $(EXPAT_LIBS) -lstdc++
 libsablot_la_LIBADD = 
 libsablot_la_OBJECTS =  arena.lo base.lo context.lo datastr.lo error.lo \
 expr.lo hash.lo output.lo parser.lo platform.lo proc.lo sablot.lo \

---

 [2001-07-30 18:41 UTC] sterling@php.net
This is a Sablotron patch and problem, please send this to 
sablist@gingerall.com

thanks!

 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Apr 25 11:01:30 2024 UTC