#17020 [Com]: Servlet sapi native code problems

From: Date: Tue, 13 Aug 2002 20:20:38 +0000
Subject: #17020 [Com]: Servlet sapi native code problems
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-16640@lists.php.net to get a copy of this message
 ID:               17020
 Comment by:       trhaverstock@yahoo.com
 Reported By:      mark@tapinternet.com
 Status:           Open
 Bug Type:         Servlet related
 Operating System: Linux - 2.4.18
 PHP Version:      4.2.0
 New Comment:

System config: Win2K, JDK 1.4, PHP 4.2.2, Tomcat 4

I *CAN* get PHP 4.0.6 to work as a servlet with the above config, but
cannot get the latest release to work.  I compiled the phpsrvlt.jar
myself with 4.2.2 and 4.0.6 and could only get 4.0.6 to work
successfully.  

Is there anyone that *can* get 4.2.2 to work on Windows as a servlet?


Previous Comments:
------------------------------------------------------------------------

[2002-07-26 10:05:35] henrik.hermansson@hem.passagen.se

Thanks Mark!

I followed your instructions and its way better. No crasch yet. I am
now able to run phpBB under Tomcat (with custom authorization using
servlet filters).

Still, something tells me the bugs are still there, just not as easy to
provoke...

PHP 4.2.1 + Tomcat 4.0.4 + Java 1.4.0 (Linux 2.4.7)

------------------------------------------------------------------------

[2002-07-12 17:17:07] mark@tapinternet.com

Compiling with --enable-debug and the CFLAG -g3 seems to 
make the servlet SAPI a lot more stable.  add 
--enable-debug to your configure script.  And export an 
environment variable CFLAGS before you configure. 
 
export CFLAGS ="-O3 -mcpu=i686 -march=i686 
-malign-functions=4  -pthread -g3 -Wall -DZTS -prefer-pic" 
 
Make sure that INLINE_CFLAGS is set to this in the 
Zend/Makefile and the TSRM/Makefile.  If not, just change 
them and remake.  You might have to remove libphp4.so and 
sapi/servlet/phpsrvlt.jar to make sure the recompile works 
properly.  Copy the phpsrvlt.jar back to your tomcat 
shared/lib/ folder and re run tomcat.  Now, every php page 
you hit you should see this on the command line: 
 
fopen_wrappers.c(656) :  Freeing 0x084E2DE8 (41 bytes), 
script=- 
servlet.c(334) :  Freeing 0x0822EF30 (4 bytes), script=- 
 
If you see this, you know you're good to go.  Hopefully 
the servlet SAPI will improve stability with ZE2.  I just 
got this working for more than 10 requests, so email me if 
you need any help.  Seems rock solid so far.

------------------------------------------------------------------------

[2002-07-12 13:48:23] mark@tapinternet.com

latest php-4.2.1 
latest tomcat-4.1.7 
sun jvm 1.4.0 
After running any php script about 10 times, the whole 
tomcat server dies with output like the following.  All 
signals originatre from zend_hash.c from various functions 
including zend_hash_rehash() and 
zend_hash_index_update_or_next_insert() 
 
 
An unexpected exception has been detected in native code 
outside the VM. 
Unexpected Signal : 11 occurred at PC=0x4CB77EEB 
Function=zend_hash_index_update_or_next_insert+0x2B 
Library=/usr/local/php-servlet/lib/php/libphp4.so 
 
Current Java thread: 
        at net.php.reflect.setResultFromObject(Native 
Method) 
        at net.php.reflect.setResult(reflect.java:105) 
        at net.php.servlet.readCookies(servlet.java:93) 
        at net.php.servlet.send(Native Method) 
        at net.php.servlet.service(servlet.java:188) 
        at net.php.servlet.service(servlet.java:212) 
        at 
javax.servlet.http.HttpServlet.service(HttpServlet.java:853) 
...

------------------------------------------------------------------------

[2002-07-11 00:29:20] zack@nostromocorp.com

I'm also having this problem, but I was only able to get to this point
by downloading the source and recompiling the phpsrvlt.jar myself
because the jar in the binary distribution did not contain any *.class
files!

------------------------------------------------------------------------

[2002-05-05 15:32:58] mark@tapinternet.com

Native code problems with the current servlet sapi.
I've had this problem for over a year.  No one reports that they 
have been successfull getting the servlet sapit to work.
Please help me get PHP to be better.

php-4.2.0
tomcat 4.0.3
j2sdk-1.4.0

info.php
<? phpinfo(); ?>

javax.servlet.ServletException: bailout
	at net.php.servlet.send(Native Method)
	at net.php.servlet.service(servlet.java:188)
	at net.php.servlet.service(servlet.java:212)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)
	at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)
	at java.lang.Thread.run(Thread.java:536)



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=17020&edit=1



Thread (11 messages)

« previous php.bugs (#16640) next »