php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #15778 Segmentation Fault with iPlanet nsapi module on pthread_key_create
Submitted: 2002-02-28 06:04 UTC Modified: 2003-05-19 09:12 UTC
Votes:16
Avg. Score:5.0 ± 0.0
Reproduced:15 of 15 (100.0%)
Same Version:5 (33.3%)
Same OS:11 (73.3%)
From: lbalbalba at hotmail dot com Assigned:
Status: Not a bug Package: iPlanet related
PHP Version: 4CVS-2003-01-29 (stable) OS: AIX 4.3.3
Private report: No CVE-ID: None
 [2002-02-28 06:04 UTC] lbalbalba at hotmail dot com
When I compile PHP as an iPlanet module, the httpd server crashes on loading the module (php4_init) with a signal 11/segmentation fault. I get the same behaviour with php 4.1.1 and with 4.1.2. (output below is from 4.1.2)

When compiling as a commandline executable, everything seems to work fine though, so I guess its a problem with iPlanet and maybe in combination with AIX 4.3.3 and shared libraries.

I compiled using GCC, not AIX's 'native' compiler.

If more information is needed to address this issue, please let me know. Please be aware though, that even though I am decently skilled in *nix administration, I have no programming or debugging skills, so please provide 'idiot instructions' ;)

The configure line I used:
./configure --with-nsapi=/appl/netscape4/server4 --prefix=/appl/php -exec-prefix=/appl/php --enable-debug

The output of gdb (bt):
# gdb /appl/netscape4/server4/bin/https/bin/ns-httpd /appl/netscape4/server4/https-splu9029/config/config/core


GNU gdb 5.0
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "powerpc-ibm-aix4.3.2.0"...(no debugging symbols found)...
Core was generated by `ns-httpd'.
Program terminated with signal 11, Segmentation fault.
(no debugging symbols found)...#0  0xd1541508 in php4_init (pb=0x5, sn=0x0, rq=0x0) at nsapi.c:492


492             log_error(LOG_INFORM, "php4_init", sn, rq, "Initialized PHP Module\n");
(gdb) bt
#0  0xd1541508 in php4_init (pb=0x5, sn=0x0, rq=0x0) at nsapi.c:492
#1  0xd0d9aca8 in func_native_pool_wait_work ()
#2  0xd0d9bd88 in func_exec_str ()
#3  0xd0d9b2b4 in INTfunc_exec ()
#4  0xd0d8eea0 in INTconf_run_late_init_functions ()
#5  0xd0e11d50 in DaemonProcessorUX::__ct ()
#6  0xd0e105fc in DaemonProcessor::NewDaemonProcessor ()
#7  0xd0e41640 in daemon_run ()
#8  0x10001bac in ?? () from /appl/netscape4/server4/bin/https/bin/ns-httpd



Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-02-28 06:13 UTC] lbalbalba at hotmail dot com
As a test, Ive tried compiling the same version of PHP in combination with the same version of iPlanet on my linux system, and everything seems to work fine on my linux box. 

So I guess this only occurs in combination with AIX.
 [2002-03-01 12:27 UTC] lbalbalba at hotmail dot com
Ok, as another test, Ive tried to compile PHP 4.1.2 on the same AIX 4.3.3 box, but now as an Apache 1.3.22 DSO module, and that seems to work just fine.

And since ive got the same php version (4.1.1 & 4.1.2) in combination with the same iPlanet version (4.1) running correctly on Linux, I guess this means that this only occurs on this specific combined setup:

AIX 4.3.3
iPlanet 4.1
PHP 4.1.1 & 4.1.2 (at least, maybe other versions too)
 [2002-03-28 04:28 UTC] lbalbalba at hotmail dot com
Did a new backtrace on the rc1 of 4.2.0, and im not completly sure that this is the same bug, or a new bug here... 

but anyways, here's the bt:

GNU gdb 5.0-aix43-010414
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "powerpc-ibm-aix4.3.3.0"...(no debugging symbols found)...
Core was generated by `ns-httpd'.
Program terminated with signal 11, Segmentation fault.
(no debugging symbols found)...#0  0xd14d13f8 in pthread_key_create ()
(gdb) bt
#0  0xd14d13f8 in pthread_key_create ()
#1  0xd14d01c4 in tsrm_startup (expected_threads=1, expected_resources=1, debug_level=0, debug_filename=0x0) at TSRM.c:108
#2  0xd1658348 in php4_init (pb=0x20088468, sn=0x0, rq=0x0) at nsapi.c:486
#3  0xd0fdaca8 in func_native_pool_wait_work ()
#4  0xd0fdbd88 in func_exec_str ()
#5  0xd0fdb2b4 in INTfunc_exec ()
#6  0xd0fceea0 in INTconf_run_late_init_functions ()
#7  0xd1051d50 in DaemonProcessorUX::__ct ()
#8  0xd10505fc in DaemonProcessor::NewDaemonProcessor ()
#9  0xd1081640 in daemon_run ()
#10 0x10001bac in ?? () from /appl/netscape4/server4/bin/https/bin/ns-httpd
(gdb)
 [2002-04-06 11:05 UTC] lbalbalba at hotmail dot com
Is the NSAPI Module really supposed to use pthreads ?
In the Netscape Knowledge Base, at :
http://kb.netscape.com/NASApp/kb/Article?id=2861&?GXHC_gx_session_id_=f5d6dd1516942f3c&

its stated that "... NSAPI does not support pthreads ... "

Still, that doesnt explain why the same php versions and iPlanet version *do* work correctly on my Linux box, and not on AIX...

Ive seen some other bug reports here from people having similair problems with iPlanet and php on the Solaris platform, so I guess its not strictly aix related either ...
 [2002-04-12 05:07 UTC] lbalbalba at hotmail dot com
Maybe the following iPlanet Knowledge base article can be of assistance here:

http://knowledgebase.iplanet.com/ikb/kb/articles/4869.html

"Mutli-threaded NSAPI SAFs,Article ID: 4869"


When writing multi-threaded NSAPI Server Application Functions(SAFs) for iPlanet Web Server(iWS) versions 4.1 and later, it is necessary to call the following function: 

   prepare_nsapi_thread (rq, sn)

You should make this call the first call of any new thread.  This call replaces the need to use "systhread_setdata( getThreadMallocKey(), sn->pool )," which was used in earlier versions of the web server. Note: You may need to forward declare the function when compiling with iWS 4.1.  

The declaration should appear as follows: 
   
NSAPI_PUBLIC void prepare_nsapi_thread (Request * rq, Session * sn);
 [2002-10-19 17:11 UTC] iliaa@php.net
Please try using this CVS snapshot:

  http://snaps.php.net/php4-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php4-win32-latest.zip


 [2002-10-21 11:50 UTC] lbalbalba at hotmail dot com
Dear sir,


The project I had been assigned to by our organisation, and which had been the reason for me to spend time on this issue, has been cancelled. Because of the way our organisation works (project based), this effectively means that I will no longer be allowed to spend any more of my time on this issue. As far as I am concerned this means that this bug can be closed, because personally I wont be involved with the use of this product any longer.

For what it's worth: I downloaded the snapshot you mentioned on my own time, and verified that the nsapi php module for iPlanet 4.1 SP7 on AIX 4.3.3 ML10 still causes the web server to crash on initialisation of the php module. I can create and submit a gdb backtrace if anyone at all is still interested, but im afraid that you're going to have to solve this issue on you own from there on.



Sincerely,

J.Smith
 [2002-10-22 01:37 UTC] lbalbalba at hotmail dot com
GNU gdb 5.0-aix43-010414
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "powerpc-ibm-aix4.3.3.0"...(no debugging symbols found)...
Core was generated by `ns-httpd'.
Program terminated with signal 11, Segmentation fault.
#0  0xd0f49ac8 in pthread_key_create ()
(gdb) bt
#0  0xd0f49ac8 in pthread_key_create ()
#1  0xd0f48894 in tsrm_startup (expected_threads=1, expected_resources=1, debug_level=0, 

debug_filename=0x0)
    at /usr/local/src/php/php4-200210210300/TSRM/TSRM.c:108
#2  0xd11593e8 in php4_init (pb=0x2006af08, sn=0x0, rq=0x0) at 

/usr/local/src/php/php4-200210210300/sapi/nsapi/nsapi.c:496
#3  0xd0daeca8 in func_native_pool_wait_work ()
#4  0xd0dafd88 in func_exec_str ()
#5  0xd0daf2b4 in INTfunc_exec ()
#6  0xd0da2ea0 in INTconf_run_late_init_functions ()
#7  0xd0e25d50 in DaemonProcessorUX::__ct ()
#8  0xd0e245fc in DaemonProcessor::NewDaemonProcessor ()
#9  0xd0e55640 in daemon_run ()
#10 0x10001bac in ?? () from /appl/netscape4/server4/bin/https/bin/ns-httpd
 [2002-10-26 14:17 UTC] lbalbalba at hotmail dot com
submitted backtrace for
PHP version: snapshot: php4-200210210300
OS: AIX 4.3.3 ML10
http server: iPlanet 4.1 SP7, nsapi module
 [2002-10-26 14:24 UTC] lbalbalba at hotmail dot com
Changed 'summary' from :
"Segmentation Fault with iPlanet module on php4_init"
to:
"Segmentation Fault with iPlanet nsapi module on pthread_key_create"
 [2003-01-29 07:19 UTC] lbalbalba at hotmail dot com
Bug still present in the latest php4 snapshot php4-STABLE-200301290030.


Running:

OS: AIX 4.3.3 ML10
http server: iPlanet 4.1 SP7, nsapi module
PHP version: 4CVS-2003-01-29 (stable)


Here's the backtrace


# gdb /appl/netscape4/server4/bin/https/bin/ns-httpd /appl/netscape4/server4/https-splu9029/config/core
GNU gdb 5.0-aix43-010414
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "powerpc-ibm-aix4.3.3.0"...(no debugging symbols found)...
Core was generated by `ns-httpd'.
Program terminated with signal 11, Segmentation fault.
#0  0xd17aaf34 in pthread_key_create ()
(gdb) bt
#0  0xd17aaf34 in pthread_key_create ()
#1  0xd17aa208 in tsrm_startup (expected_threads=1, expected_resources=1, debug_level=0, debug_filename=0x0)
    at /usr/local/src/php/php4-STABLE-200301290030/TSRM/TSRM.c:108
#2  0xd18efe8c in php4_init (pb=0x20136c18, sn=0x0, rq=0x0)
    at /usr/local/src/php/php4-STABLE-200301290030/sapi/nsapi/nsapi.c:498
#3  0xd11b8ca8 in func_native_pool_wait_work ()
#4  0xd11b9d88 in func_exec_str ()
#5  0xd11b92b4 in INTfunc_exec ()
#6  0xd11acea0 in INTconf_run_late_init_functions ()
#7  0xd122fd50 in DaemonProcessorUX::__ct ()
#8  0xd122e5fc in DaemonProcessor::NewDaemonProcessor ()
#9  0xd125f640 in daemon_run ()
#10 0x10001bac in ?? () from /appl/netscape4/server4/bin/https/bin/ns-httpd
(gdb)
 [2003-05-19 08:25 UTC] lbalbalba at hotmail dot com
Like I already said, personally I wont be involved with the use of this product any longer because the (PHP implementation) project I had been assigned to by our organisation has been cancelled.

Im afraid that you're going to have to solve this issue on you own from here on.

Sincerely,

J.Smith
 [2003-05-19 09:12 UTC] sniper@php.net
Bogus then. There are other reports about this too.

 
PHP Copyright © 2001-2019 The PHP Group
All rights reserved.
Last updated: Tue Jul 23 04:01:26 2019 UTC