Project

Profile

Help

Support #6637

Updated by Michael Kay 6 days ago

When executing two chained, streamed xslt transformations (xslt1, xslt2), accumulators in the second transformation seem to cause a    growth in memory need linear to the number of processed elements with copy-of() wherein those accumulators are accessed. 

 The same two transformations executed serially with writing to disk inbetween work perfectly.  

 When chaining with xslt1Trafo.applyTemplates(input, xslt2Trafo.asDocumentDestination(finalDest)) we see the memory growth and from the partial result written to disk before the OOM is seems as if the accumulator does not accumulate any values in xslt2 when chained. 

 reproduction: https://github.com/RBLU/saxonstreamingchainrepro/tree/main (using Saxon EE 12.5) 

 SO discussion: https://stackoverflow.com/questions/79328517/xslt-3-0-chained-burst-streaming-with-saxon-memory-consumption-considerations/79329610?noredirect=1#comment139903543_79329610

Back