Project

Profile

Help

Bug #3710

closed

Non-terminating optimization

Added by Michael Kay about 6 years ago. Updated over 5 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!

Actions #1

Updated by O'Neil Delpratt about 6 years ago

I ran the commands and did not get any failure.

Actions #2

Updated by Michael Kay over 5 years ago

  • Description updated (diff)
  • Category set to Internals
  • Status changed from New to Won't fix
  • Priority changed from Low to Normal
  • Applies to branch 9.7 added

Decided to close this with no action. The chances of us producing another maintenance release on the 9.7 branch are quite slim if the problem can be solved by moving to 9.8, so in the absence of an easy repro, there's little chance of us finding time to do the investigation.

Please register to edit this issue

Also available in: Atom PDF