Hi All,

I am porting PHP for NetWare. I have run into a problem during unit
testing and I seek inputs from you on this.

I am using two scripts:
1. In one, I am using a simple while loop:
    <?php
        for ($i=0; $i<100000; $i++) {
            echo "Loop no = $i"."<br>";
        }
    ?>

2. In the other, I am just displaying the PHP info using
    <?php
        phpinfo();
    ?>

If I run these scripts individually, it is fine.
Even if run the while loop script simultaneously on two different
browsers, it works fine on both the browsers.

But if I run the first script (while loop) in one browser and while it
is running, if I run the second script from another brower, then my
NetWare server crashes. Strangely, the PHP info output from the second
browser is getting displayed on the first browser (!) where only the
loop numbers are supposed to be displayed. The font and size of the
display also changes. The server abends before the loop is completed.
Nothing is getting displayed on the second brower.

When I walk through the stack, I find that the abend seems to be
happening in the "_zval_ptr_dtor" function that is called after the
function, "zend_stack_apply_with_argument" is called which in turn is
called by the "execute" function.

I feel this may be due to data corruption between different threads in
some specific cases. Is it due to the usage of global variable or the
usage of static variables that are shared across threads?

I would greatly appreciate if anyone can throw some light on this.

Please note that I am using the PHP development version 4.0.8.

Thanks,
Ananth.


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to