ID: 16690 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] Status: Open -Bug Type: Apache2 related +Bug Type: Java related Operating System: Linux 2.4 glibc 2.2.3 PHP Version: 4.2.0 New Comment:
Not Apache 2 issue, rather a problem with ext/java/ not being thread safe, reclassifying. Previous Comments: ------------------------------------------------------------------------ [2002-06-12 15:06:14] [EMAIL PROTECTED] Just as I expected, everything now works normally and consistently the the ext/java extension using the "prefork" MPM with Apache2 and PHP 4.2.1. The various problems reported with the ext/java methods "timing out"/"not loading" after one or a few successful hits clearly appears to be with multithreaded web server installations and PHP (Apache2 with worker MPM, IIS, etc..) My latest, successful configure script: LDFLAGS='-lstdc++' \ ./configure \ --with-apxs2=/usr/local/apache2/bin/apxs \ --with-config-file-path=/usr/local/etc \ --with-tsrm-pthreads \ --enable-memory-limit \ --without-pear \ --disable-posix \ --enable-mbstring \ --enable-calendar \ --enable-wddx \ --enable-sockets \ --enable-ftp \ --with-zlib \ --with-bz2 \ --with-mhash \ --with-iconv \ --with-openssl \ --with-expat-dir \ --with-dom \ --with-dom-xslt \ --with-dom-exslt \ --enable-xslt \ --with-xslt-sablot \ --with-mysql=no \ --with-iodbc \ --with-ldap \ --with-imap \ --with-curl \ --with-png-dir \ --with-jpeg-dir \ --with-freetype-dir \ --with-gd \ --enable-gd-native-ttf \ --with-java=/usr/local/java/jdk1.2.2 ------------------------------------------------------------------------ [2002-06-11 22:09:12] [EMAIL PROTECTED] More info: Downgraded to Sun JDK 1.2.2 (from 1.4.0_01), recompiled PHP 4.2.1 (DSO into Apache 2.0.36), *and* removed the --enable-xslt and --with-xslt-sablot directives (because of some other reported bugs about ext/xslt and ext/java not playing nice) - all of this just to try a sane/clean build. ...but keeping the Apache 2.0.36 MPM as "worker" not "prefork". Problem still occurs. Basic PHP page with the usual example simple Java code loads/works correctly. I can refresh the page every couple of seconds and it keeps working. If I let it sit for a minute, and re-execute, the page returns blank and the PHP error log contains: "PHP Fatal error: Unable to create Java Virtual Machine ....". Sometimes, if I wait for a few minutes and try again, the page loads again correctly without error, but it is rather unpredictable exactly when it will work and when it wont (in other words, I can't set a stop watch by it). I am now going to try build Apache2 with the prefork MPM and see if the behavior continues. ------------------------------------------------------------------------ [2002-06-11 16:53:01] [EMAIL PROTECTED] This exact problem appears for me too on similar and different setups. I get JVM timeouts on both Apache2(worker MPM)/Linux and Windows/IIS. The commonality is that they are both multi-threaded (same as reported). Working setups where JVM works one or a few times and then "dies". - Linux RH7.2/Apache 2.0.36 (worker MPM)/PHP 4.2.1/Sun JDK 1.4.0_01 (the "bleeding edge") - Windows 2000/IIS/PHP 4.2.1/Sun JDK 1.3.1 ------------------------------------------------------------------------ [2002-04-18 19:56:10] [EMAIL PROTECTED] To get things working, I compiled PHP with these options: ./configure --with-bz2 --enable-ftp \ --with-gd --with-ttf --enable-gd-native-ttf --with-jpeg-dir \ --with-freetype-dir \ --with-png-dir --with-zlib-dir \ --with-tiff-dir \ --with-java --with-ldap \ --with-mcrypt --with-mhash \ --with-pdflib --without-mysql \ --with-pgsql --with-snmp --enable-shared \ --enable-calendar --with-dom --with-openssl \ --with-iconv=/usr/local/lib/libiconv.so \ --with-apxs2 --enable-experimental-zts and Apache2 with these: ./configure --enable-ssl \ --enable-module=so \ --enable-modules=all \ --enable-mods-shared=all \ --with-mpm=prefork ------------------------------------------------------------------------ [2002-04-18 19:37:09] [EMAIL PROTECTED] I want Java support in PHP pages, and I had it with PHP 4.1, Apache 1.3 and J2SDK 1.3. When I tried to build PHP 4.2.0RC4 with J2SDK 1.4.0 and Apache 2.0.35 the first problems were some seg faults in PHP. I found out (using PHP as CGI to get error messages) that I "MUST" compile PHP with --enable-experimental-zts or otherwise it misses php_core_globals. After some undocumented php.ini configurations(available throght PHPBUILDER), I could finally get all three pieces working together, but only once. If I call a page more than once, PHP reports that it canīt create the Virtual Machine. I searched throght php.net and somebody posted a response that PHP creates one VM per thread. So, if my Apache2 is multithreaded, PHP is creating many VM per processes, i thought. Thatīs it. When I compiled Apache2 with "prefork" (not multithreaded), my Java-enabled PHP pages worked just fine. Iīm reporting this bug, since PHP must work with Apache2 "worker" (multithreaded). ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=16690&edit=1