Project

Profile

Help

Bug #3710

closed

Non-terminating optimization

Added by Michael Kay about 6 years ago. Updated almost 6 years ago.

Status:
Won't fix
Priority:
Normal
Assignee:
Category:
Internals
Sprint/Milestone:
-
Start date:
2018-03-01
Due date:
% Done:

0%

Estimated time:
Legacy ID:
Applies to branch:
9.7
Fix Committed on Branch:
Fixed in Maintenance Release:
Platforms:

Description

Reported by Norm Walsh on saxon-help mailing list:

Hi,

I hope this is useful. Apologies, I don’t have time to coax out a

smaller test case. It’s a small DocBook document. Works fine with

Saxon 9.6 and 9.8, but blows up with 9.7.0-11 and 9.7.0-21.

If you want to run it, I believe the following recipe will work,

though it carries a bit of baggage along with it.

  1. Clone https://github.com/docbook/xslt20-stylesheets/

  2. Run:

gradle -PsaxonVersion=9.7.0-21 -PxmlCalabashVersion=1.1.16-97 \

     --stacktrace relNotes

It’ll chug on for a bit, download half the internet, compile some

stuff, and then go bang.

Caused by: java.lang.StackOverflowError

at net.sf.saxon.expr.SystemFunctionCall.optimize(SystemFunctionCall.java:157)

at net.sf.saxon.expr.Operand.optimize(Operand.java:200)

at net.sf.saxon.expr.Expression.optimizeChildren(Expression.java:496)

at net.sf.saxon.expr.instruct.SimpleNodeConstructor.optimize(SimpleNodeConstructor.java:161)

at net.sf.saxon.expr.Operand.optimize(Operand.java:200)

at net.sf.saxon.expr.Expression.optimizeChildren(Expression.java:496)

at net.sf.saxon.expr.instruct.Block.optimize(Block.java:563)

at net.sf.saxon.expr.Operand.optimize(Operand.java:200)

at net.sf.saxon.expr.Expression.optimizeChildren(Expression.java:496)

at net.sf.saxon.expr.instruct.ParentNodeConstructor.optimize(ParentNodeConstructor.java:209)

at net.sf.saxon.expr.instruct.FixedElement.optimize(FixedElement.java:106)

at net.sf.saxon.expr.Operand.optimize(Operand.java:200)

at net.sf.saxon.expr.instruct.ForEach.optimize(ForEach.java:245)

at net.sf.saxon.expr.Operand.optimize(Operand.java:200)

at net.sf.saxon.expr.LetExpression.optimize(LetExpression.java:305)

at net.sf.saxon.expr.instruct.ForEach.optimize(ForEach.java:270)

at net.sf.saxon.expr.Operand.optimize(Operand.java:200)

at net.sf.saxon.expr.LetExpression.optimize(LetExpression.java:305)

at net.sf.saxon.expr.instruct.ForEach.optimize(ForEach.java:270)

at net.sf.saxon.expr.Operand.optimize(Operand.java:200)

at net.sf.saxon.expr.LetExpression.optimize(LetExpression.java:305)

at net.sf.saxon.expr.instruct.ForEach.optimize(ForEach.java:270)

at net.sf.saxon.expr.Operand.optimize(Operand.java:200)

at net.sf.saxon.expr.LetExpression.optimize(LetExpression.java:305)

   …

On and on and on so many times that it blows out not just the stack,

but also the size limit for messages to this list!

Please register to edit this issue

Also available in: Atom PDF