I noticed a failure of ext/standard/tests/strings/006.phpt on my machine.
this is 5.3.0, debug-zts, mac os x 10.5.3, intel, 32-bit build
This test, in my case, returns "Inappropriate ioctl for device" error
instead of "File name too long". Looks, like errno is already set to
25 (which corresponds to my error) in php_execute_script(), which
leads me to the conclusion that the problem is deeper than
highlight_file()
I still do not feel myself comfortable during deep debugging. Any hints?
p.s. http://news.php.net/php.qa.reports/8536
--
Alexey Zakhlestin
http://blog.milkfarmsoft.com/
I noticed a failure of ext/standard/tests/strings/006.phpt on my machine.
this is 5.3.0, debug-zts, mac os x 10.5.3, intel, 32-bit buildThis test, in my case, returns "Inappropriate ioctl for device" error
instead of "File name too long". Looks, like errno is already set to
25 (which corresponds to my error) in php_execute_script(), which
leads me to the conclusion that the problem is deeper than
highlight_file()
It might also mean that the error message is different on Mac OS or the error code is different.
I've seen that many times on different platforms.
--
Wbr,
Antony Dovgal
I noticed a failure of ext/standard/tests/strings/006.phpt on my machine.
this is 5.3.0, debug-zts, mac os x 10.5.3, intel, 32-bit buildThis test, in my case, returns "Inappropriate ioctl for device" error
instead of "File name too long". Looks, like errno is already set to
25 (which corresponds to my error) in php_execute_script(), which
leads me to the conclusion that the problem is deeper than
highlight_file()
It might also mean that the error message is different on Mac OS or the
error code is different.
I've seen that many times on different platforms.
that's what I thought at first, but testing showed, that it is not that simple.
plain fopen()
in C on large file-name results in "File name too long" error.
php never reaches open() call and error "Inappropriate ioctl for
divice" is already set at the very first line of php_execute_script
(probably even earlier)
looks like there's some uncaught error during initialization of php
--
Alexey Zakhlestin
http://blog.milkfarmsoft.com/
It might also mean that the error message is different on Mac OS or the
error code is different.
I've seen that many times on different platforms.that's what I thought at first, but testing showed, that it is not that simple.
plain
fopen()
in C on large file-name results in "File name too long" error.
php never reaches open() call and error "Inappropriate ioctl for
divice" is already set at the very first line of php_execute_script
(probably even earlier)
looks like there's some uncaught error during initialization of php
Do you have a strace log?
--
Wbr,
Antony Dovgal
It might also mean that the error message is different on Mac OS or the
error code is different.
I've seen that many times on different platforms.that's what I thought at first, but testing showed, that it is not that
simple.plain
fopen()
in C on large file-name results in "File name too long"
error.
php never reaches open() call and error "Inappropriate ioctl for
divice" is already set at the very first line of php_execute_script
(probably even earlier)
looks like there's some uncaught error during initialization of phpDo you have a strace log?
I will try to make one (we use dtrace here)
--
Alexey Zakhlestin
http://blog.milkfarmsoft.com/
some more details.
the return-chain in this case is following:
virtual_file_ex(..., path, ...) -> returns 1, because path_length >= MAXPATHLEN
expand_filepath(filepath, ...) -> returns null
_php_stream_fopen(filename, ...) -> returns null
php_plain_files_stream_opener(..., path, ...) -> returns null
_php_stream_open_wrapper_ex(path, ...) calls php_stream_display_wrapper_errors()
php_stream_display_wrapper_errors() checks errno-value
I don't see how any function here might set errno to any value. How
does this work on other operating-systems?
It might also mean that the error message is different on Mac OS or the
error code is different.
I've seen that many times on different platforms.that's what I thought at first, but testing showed, that it is not that
simple.plain
fopen()
in C on large file-name results in "File name too long"
error.
php never reaches open() call and error "Inappropriate ioctl for
divice" is already set at the very first line of php_execute_script
(probably even earlier)
looks like there's some uncaught error during initialization of phpDo you have a strace log?
I will try to make one (we use dtrace here)
--
Alexey Zakhlestin
http://blog.milkfarmsoft.com/
--
Alexey Zakhlestin
http://blog.milkfarmsoft.com/
some more details.
the return-chain in this case is following:virtual_file_ex(..., path, ...) -> returns 1, because path_length >= MAXPATHLEN
expand_filepath(filepath, ...) -> returns null
_php_stream_fopen(filename, ...) -> returns null
php_plain_files_stream_opener(..., path, ...) -> returns null
_php_stream_open_wrapper_ex(path, ...) calls php_stream_display_wrapper_errors()
php_stream_display_wrapper_errors() checks errno-valueI don't see how any function here might set errno to any value. How
does this work on other operating-systems?
Anyway, I am leading to this: it is wrong, to check errno-value
anywhere, except right after the call, which sets errno
The proper solution would be, to have a pointer to some structure
passed to the callchain above, and explicitly store error-code/string
in virtual_file_ex()
--
Alexey Zakhlestin
http://blog.milkfarmsoft.com/