Re: [xsl] WebKit transformToDocument() failing with large XML

Subject: Re: [xsl] WebKit transformToDocument() failing with large XML
From: Brandon Ibach <brandon.ibach@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 6 Sep 2011 18:44:28 -0400
You don't have endless recursion, just really deep.  (As a nod to
computer science buffs, Alan Turing would tell you that it's
theoretically not reliably possible to know if you have endless
recursion or not without infinite time to try it.)  Most XSLT
processors just set a limit on recursion depth and report *potential*
endlessness.  Your file is big enough to have hit the limit.

You can seek to raise the limit (xsltproc provides the --maxdepth
option for this purpose) or, better, rewrite your stylesheet to not
use recursion for that particular task.  It looks like you're just
filtering and formatting a list of items.  Consider using XPath to do
the filtering, rather than an XSLT choose/when, and output the
delimiter based on the position() of each node in the resulting
filtered list.

-Brandon :)


On Tue, Sep 6, 2011 at 6:07 PM, Dustin N. Jenkins
<Dustin.Jenkins@xxxxxxxxxxxxxx> wrote:
> I have a bug with WebKit ( https://bugs.webkit.org/show_bug.cgi?id=67310)
> for large XML documents (> 3MB) that are being run through one XSL file.
>
> With both Safari 5.1, and Google Chrome 13.0.782.220 this happens.
>
> If I run the XSL file using xsltproc, I get this error, but it still
> produces something:
>
> runtime error: file filter.xsl line 134 element param
> xsltApplyXSLTTemplate: A potential infinite template recursion was
detected.
>
> I'm not sure where the endless recursion would come from.  I've posted my
> XSL file, which is called filter.xsl:
>
> <code>
...
> </code>
>
> The XML source file might be a bit large to post here, but it's attached to
> the bug report from above.
>
> Anyone else experience this?

Current Thread