php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #16690 Java support in PHP with Apache2 multithreaded server doesn't work
Submitted: 2002-04-18 19:37 UTC Modified: 2003-11-17 22:38 UTC
Votes:64
Avg. Score:4.7 ± 0.7
Reproduced:52 of 53 (98.1%)
Same Version:33 (63.5%)
Same OS:40 (76.9%)
From: cunha17 at uol dot com dot br Assigned:
Status: Wont fix Package: Java related
PHP Version: 4.3.2RC4-dev OS: any
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: cunha17 at uol dot com dot br
New email:
PHP Version: OS:

 

 [2002-04-18 19:37 UTC] cunha17 at uol dot com dot br
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).

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-04-18 19:56 UTC] cunha17 at uol dot com dot br
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-06-11 16:53 UTC] robert at ud dot com
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-06-11 22:09 UTC] robert at ud dot com
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-12 15:06 UTC] robert at ud dot com
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-10-04 16:45 UTC] iliaa@php.net
Not Apache 2 issue, rather a problem with ext/java/ not being thread safe, reclassifying.
 [2002-10-04 17:33 UTC] kalowsky@php.net
This really falls inline with the numerous Java/Windows bugs that we have logged.  My initial debugging of it shows that their problems are being caused by the non-multi-thread safe code.  Havne't been able to fix it yet though.
 [2003-05-21 17:40 UTC] cunha17 at uol dot com dot br
Why the status changed to SUSPENDED?
Does it mean that it is not important?
 [2003-11-17 22:38 UTC] sniper@php.net
Java support in PHP 4 has been extremely experimental since it was introduced. And the support for it has been dropped.

 [2004-07-04 03:37 UTC] rustamabd at columbus dot rr dot com
Without this fix, Java support is useless.
recommend reopening with highest priority.
 [2004-07-27 15:36 UTC] engel_o at yahoo dot com
Me too !
The interaction between Java and PHP is really important
 [2004-10-05 21:00 UTC] Supergurl11191 at aol dot com
jghjgjghjghj
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Nov 22 22:01:30 2024 UTC