ID:               35791
 User updated by:  jgmtfia at gmail dot com
 Reported By:      jgmtfia at gmail dot com
 Status:           Wont fix
 Bug Type:         Filesystem function related
 Operating System: Linux
 PHP Version:      5CVS-2006-01-03 (snap)
 New Comment:

The last test also fails on an up to date debian testing system (with
or without an apache2 module)


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

[2006-01-05 21:41:49] [EMAIL PROTECTED]

Yes, but it's just that very very old Debian with very very old glibc.
Wont fix.

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

[2006-01-05 20:10:15] jgmtfia at gmail dot com

The test given above passes when the non-threaded apache2 MPM is used
for both the cli and apache2 API's.

However this test, which shows what I actually need to accomplish,
fails on both the cli and apache2 API's.  Same sort of problem:
<?php

`echo file A > A; echo file B > B; ln -fs A C`;

echo 'Checking: ';

$FILES = array('A', 'B', 'C');
foreach(array('A', 'B', 'C') as $FILE){
    echo "$FILE ";
    if(!file_exists($FILE)){
        echo "$FILE does not exist.<br>";
        exit;
    }
}

echo "- ok<br><pre>".`ls -l A B C 2>&1`."</pre><br>";

clearstatcache();

echo "Contents of C => ".file_get_contents('C')."<br>";

echo "Remove C -> A, replace with C -> B<br>";
unlink('C');
clearstatcache();
symlink('B', 'C');

echo "<br><pre>".`ls -l A B C 2>&1`."</pre><br>";

$B = trim(file_get_contents('C'));
$RES = '<font color="'.(($B == 'file B') ?
    'green">Pass' : 'red">Fail').'</font>';

echo "Contents of C => $B $RES<br>";
?>

Gives the output:

Checking: A B C - ok

-rw-r--r--    1 nobody   -1           7 Jan  5 19:05 A
-rw-r--r--    1 nobody   -1           7 Jan  5 19:05 B
lrwxrwxrwx    1 nobody   -1           1 Jan  5 19:05 C -> A


Contents of C => file A
Remove C -> A, replace with C -> B

-rw-r--r--    1 nobody   -1           7 Jan  5 19:05 A
-rw-r--r--    1 nobody   -1           7 Jan  5 19:05 B
lrwxrwxrwx    1 nobody   -1           1 Jan  5 19:05 C -> B


Contents of C => file A Fail

An strace of the cli version running the given test shows again that
php is doing an 
    open("/home/user/x/A", O_RDONLY)
when it should be doing    
    open("/home/user/x/C", O_RDONLY)

So it is the same kind of problem as the first test shows, but it did
not go away when the apache MPM was changed to non-threaded.

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

[2006-01-05 16:36:34] jgmtfia at gmail dot com

I will provide it to your email address this morning.

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

[2006-01-05 00:55:27] [EMAIL PROTECTED]

Can you still send me the config.log you got with the threaded server?
I'd like to see why some of those tests failed..

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

[2006-01-04 23:44:17] jgmtfia at gmail dot com

I removed the apache2 threaded MPM that I had and replaced it with the
prefork MPM and the test now passes when ./configure
--with-apxs2=/usr/bin/apxs2 is used.

Thank you for your help with this.  I had no reason to suspect this was
an apache related problem as the CLI API had the same problem as the
apache2 module.

Is it possible to modify the configure script to detect when a threaded
apache2 MPM is being used to avoid problems in the future?

On another note, the strace of the cli PHP running the test case now
looks more like what would be expected:
write(1, "Checking A.\n", 12C) = 12
access("A", F_OK) = 0
write(1, "Checking C.\n", 12) = 12
access("C", F_OK) = 0
write(1, "Unlinking C.\n", 13) = 13
unlink("C") = 0
write(1, "Checking C: ", 12) = 12
access("C", F_OK) = -1 ENOENT (No such file or directory)

Again thank you.

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

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/35791

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

Reply via email to