ID:               22147
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Open
+Status:           Assigned
 Bug Type:         XSLT related
 Operating System: Windows XP
 PHP Version:      4.3.0
-Assigned To:      
+Assigned To:      dviner
 New Comment:

Just adding a quick note/analysis here:
It may still be a bug in Sablotron, since using 'sabcmd', doesn't use
the 'args' syntax. Either we are not freeing something we should, or
the Sablotron library isn't.
If we're not freeing something, it shouldn't be windows specific.

SablotFreeResultArgs comes to mind, but the docs say:
"This call frees all memory associated with the output of the most
recent transformation. You don't have to make this call, destroying the
processor takes care as well as new transformation invocation. " and we
do destroy the processor, in xslt_free().

Assigning to Dave, since he's got the windows setup to test this in.


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

[2003-02-10 09:37:51] [EMAIL PROTECTED]

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

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

[2003-02-10 06:14:19] [EMAIL PROTECTED]

Could you please add a URL for the tarball, or send the  
tarball to [EMAIL PROTECTED] (if it is smaller then  
100k).  
  
Or make a small script to reproduce it..  

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

[2003-02-10 05:30:56] [EMAIL PROTECTED]

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

Reply via email to