ID: 22147
User updated by: stuart@myrddraal.demon.co.uk
Reported By: stuart@myrddraal.demon.co.uk
Status: Open
Bug Type: XSLT related
Operating System: Windows XP
PHP Version: 4.3.0
New Comment:
Okay, you can get the tarball from here:
http://www.gnqs.org/people/stu/xslt-crashes.zip
It's about 1.5Mb in size. Sorry it's not smaller, but the 2000+ XML
files in there are necessary to make Sablotron crash.
Unzip into c:/devel, and add c:/devel/php to your php.ini include_path.
Then, go into c:/devel/tools, and run
<where-you-put-it>/cli/php.exe ./reproduce.php
First time you run it, you may not get a crash. Simply remove all the
HTML files from c:/devel/htdocs/localdocs/, and re-run. Remember to
leave the c:/devel/htdocs/localdocs/xml directory intact, or you can't
rerun the code!
I haven't tested that this code will work when unzipped into another
directory.
Best regards,
Stu
Previous Comments:
------------------------------------------------------------------------
[2003-02-10 06:14:19] magnus@php.net
Could you please add a URL for the tarball, or send the
tarball to php-dev@lists.php.net (if it is smaller then
100k).
Or make a small script to reproduce it..
------------------------------------------------------------------------
[2003-02-10 05:30:56] stuart@myrddraal.demon.co.uk
Here's the information reported by Windows:
AppName: php.exe
AppVer: 4.3.0.0
ModName: msvcrt.dll
ModVer: 7.0.2600.1106
Offset: 00033e05
I have reproduced the crash on two machines - one Intel, one AMD, both
running XP Pro.
I have a tarball which reproduces the crash. Happy to make it
available to a PHP maintainer. Also happy to install a debugging build
of PHP, if someone can make one available, to capture more
information.
Crash only happens when all the following circumstances are true:
1) Passing XML/XSL as strings through $args array into xslt_process
If Sablotron is told to process files on disk instead, no crash
occurs.
2) The same running instance of PHP has been used to process a large
number of XML/XSL files.
Number varies from a few hundred to a few thousand.
You can take the individual XML/XSL pair being processed at the time of
the crash, and Sablotron can process them just fine on their own.
3) Using Sablotron to perform XSL processing.
Calling a command-line processor, or driving one via the Java
Extension, results in no crash at all.
Best regards,
Stu
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=22147&edit=1