php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #9658 saps Servlet reproducible crash.
Submitted: 2001-03-09 12:28 UTC Modified: 2002-03-27 00:00 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:0 (0.0%)
Same OS:0 (0.0%)
From: alt at gimp dot org Assigned:
Status: No Feedback Package: Java related
PHP Version: 4.0 Latest CVS ( OS: Linux RH 6.1
Private report: No CVE-ID: None
Have you experienced this issue?
Rate the importance of this bug to you:

 [2001-03-09 12:28 UTC] alt at gimp dot org

Servlet sapi seems to be very unstable.

Running the jinfo.php script causes a segv after the third execution (appears at this time it is reusing a previous thread, if it has a new thread it works OK).

Configuration:-

./configure --with-java --with-servlet

Sun JVM (also happens with IBM JVM).
Java version "1.3.0_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0_02)
Java HotSpot(TM) Client VM (build 1.3.0_02, mixed mode)

Dump details:-

Program received signal SIGSEGV, Segmentation fault.
0x48875c5f in zend_hash_index_update_or_next_insert (ht=0x828b27c, h=0, 
    pData=0xbe5ff300, nDataSize=4, pDest=0x0, flag=1) at zend_hash.c:398
398		p = ht->arBuckets[nIndex];

print *ht
$1 = {nTableSize = 175514000, nHashSizeIndex = 9, nNumOfElements = 136884872, 
  nNextFreeElement = 135386148, pHashFunction = 0, 
  pInternalPointer = 0x826ff2c, pListHead = 0x0, pListTail = 0x0, 
  arBuckets = 0x70736572, pDestructor = 0x65736e6f, persistent = 0 '\000', 
  nApplyCount = 0 '\000', bApplyProtection = 1 '\001'}

Back trace:-

#0  0x48875c5f in zend_hash_index_update_or_next_insert (ht=0x828b27c, h=0, 
    pData=0xbe5ff300, nDataSize=4, pDest=0x0, flag=1) at zend_hash.c:398
#1  0x48885f1e in Java_net_php_reflect_setResultFromObject (jenv=0x8167ebc, 
    self=0xbe5ff340, result=135386148, value=0xbe5ff348) at java.c:738
#2  0x806b421 in ?? ()
#3  0x8068d09 in ?? ()
#4  0x8068d09 in ?? ()
#5  0x403ed890 in StubRoutines::_code1 ()
   from /opt/sunj2_02/jdk1.3.0_02/jre/lib/i386/hotspot/libjvm.so
#6  0x401535e2 in JavaCalls::call_helper ()
   from /opt/sunj2_02/jdk1.3.0_02/jre/lib/i386/hotspot/libjvm.so
#7  0x401d0731 in os::os_exception_wrapper ()
   from /opt/sunj2_02/jdk1.3.0_02/jre/lib/i386/hotspot/libjvm.so
#8  0x40153930 in JavaCalls::call ()
   from /opt/sunj2_02/jdk1.3.0_02/jre/lib/i386/hotspot/libjvm.so
#9  0x4015a1ab in jni_invoke ()
   from /opt/sunj2_02/jdk1.3.0_02/jre/lib/i386/hotspot/libjvm.so
#10 0x4015db1a in jni_CallObjectMethod ()
   from /opt/sunj2_02/jdk1.3.0_02/jre/lib/i386/hotspot/libjvm.so
#11 0x4888461f in sapi_servlet_read_cookies (sapi_globals=0x824af20)
    at servlet.c:210
#12 0x48889d29 in sapi_activate (sapi_globals=0x824af20) at SAPI.c:298
#13 0x48886c0c in php_request_startup (compiler_globals=0x824b058, 
    executor_globals=0x8263cb8, core_globals=0x82689c0, 
    sapi_globals=0x824af20) at main.c:594
#14 0x48884a83 in Java_net_php_servlet_send (jenv=0x8167ebc, self=0xbe5ff6f8, 
    requestMethod=0xbe5ff6f4, queryString=0x0, requestURI=0xbe5ff6ec, 
    pathTranslated=0xbe5ff6e8, contentType=0x0, contentLength=-1, 
    authUser=0x0, display_source_mode=0 '\000') at servlet.c:367
#15 0x806b421 in ?? ()
#16 0x8068d09 in ?? ()
#17 0x8068d09 in ?? ()
#18 0x8068d09 in ?? ()
#19 0x8068ddb in ?? ()
#20 0x8068d09 in ?? ()
#21 0x8068d09 in ?? ()
#22 0x8068ddb in ?? ()
#23 0x8068cb5 in ?? ()
#24 0x8068d09 in ?? ()
#25 0x8068d09 in ?? ()
#26 0x8068d09 in ?? ()
#27 0x8068d09 in ?? ()
#28 0x8068d09 in ?? ()
#29 0x8068ddb in ?? ()

#30 0x403ed890 in StubRoutines::_code1 ()
   from /opt/sunj2_02/jdk1.3.0_02/jre/lib/i386/hotspot/libjvm.so
#31 0x401535e2 in JavaCalls::call_helper ()
   from /opt/sunj2_02/jdk1.3.0_02/jre/lib/i386/hotspot/libjvm.so
#32 0x401d0731 in os::os_exception_wrapper ()
   from /opt/sunj2_02/jdk1.3.0_02/jre/lib/i386/hotspot/libjvm.so
#33 0x40153930 in JavaCalls::call ()
   from /opt/sunj2_02/jdk1.3.0_02/jre/lib/i386/hotspot/libjvm.so
#34 0x4015312b in JavaCalls::call_virtual ()
   from /opt/sunj2_02/jdk1.3.0_02/jre/lib/i386/hotspot/libjvm.so
#35 0x40153dbb in JavaCalls::call_virtual ()
   from /opt/sunj2_02/jdk1.3.0_02/jre/lib/i386/hotspot/libjvm.so
#36 0x40187aaf in thread_entry ()
   from /opt/sunj2_02/jdk1.3.0_02/jre/lib/i386/hotspot/libjvm.so
#37 0x401fde9f in JavaThread::thread_main_inner ()
   from /opt/sunj2_02/jdk1.3.0_02/jre/lib/i386/hotspot/libjvm.so
#38 0x40201a07 in JavaThread::run ()
   from /opt/sunj2_02/jdk1.3.0_02/jre/lib/i386/hotspot/libjvm.so
#39 0x401cf4f3 in _start ()
   from /opt/sunj2_02/jdk1.3.0_02/jre/lib/i386/hotspot/libjvm.so
#40 0x4001ceca in pthread_start_thread (arg=0xbe5ffe60) at manager.c:213


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-03-09 13:33 UTC] sniper@php.net
./configure --with-java --with-servlet

Sun JVM (also happens with IBM JVM).
Java version "1.3.0_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0_02)
Java HotSpot(TM) Client VM (build 1.3.0_02, mixed mode)


sapi_servlet_ub_write() and other native methods should
check for java exceptions when calling java methods.

The call to 
(*jenv)->CallVoidMethod(jenv, servlet, write, arg);

should really be followed by :-

{
 jthrowable exc;
 exc = (*jenv)->ExceptionOccurred(jenv);
 if (exc) { 
            (*jenv)->ExceptionClear(jenv);
          } 
}


or similar with reporting capabilities.


(When I applied this patch it seemed to fix the exception problem).


----------

Please update this report and not open any new ones
about same bug. Thank you.

--Jani

 [2001-03-09 17:01 UTC] alt at gimp dot org
Bugs 9658 and 9659 are different.

9658 refers to a crash in the JNI code. No java exceptions were thrown when this stack trace was produced. A simple one line script was run. The script did access many java methods and data items however.

9659 refers to problems explicitly todo with throwing exceptions in java code that has been called from a php script (see the except.php script in the distribution). 

I think these are two separate bugs (unless you class all crashes the same).

After I applies the code changes suggested in 9659 the exception problem went away, however bug 9658 remained. Simple scripts now work reasonably well (apart from the memory usage problems outlined in 9660).




 [2002-02-24 06:05 UTC] yohgaki@php.net
Please test with  PHP 4.1.1+JDK 1.2 and report the result back Thanks.
 [2002-03-27 00:00 UTC] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
 
PHP Copyright © 2001-2020 The PHP Group
All rights reserved.
Last updated: Tue Nov 24 10:01:23 2020 UTC