Project

Profile

Help

Bug #4226

closed

High memory usage when stylesheet aborts with exception

Added by Stewart Witchalls almost 5 years ago. Updated almost 5 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
Performance
Sprint/Milestone:
-
Start date:
2019-05-24
Due date:
% Done:

0%

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

Description

We're in the process of upgrading (license purchase with legal / purchasing) ... but in the mean time we have to keep using 9.1.0.8

If our app runs the same 2 or 3 transforms over and over (eg. constant stream of 30 requests run in parallel), memory usage is as expected. GC kicks in regularly and the app keeps running at a constant thru put.

If (however) we make one of the stylesheets error with an exception (eg. pass an illegal input into the normalize-string() function), we see Eden grow to the point where the app enters "thrash" and performance degrades to becoming unusable.

The app caches Templates (guava cache) and runs each transform via a new Transformer created using Templates#newTransformer()

If we clear the cache (deleting all Templates and forcing the app to reload + cache them), the Eden space clears down and the process repeats (aka. Eden starts growing to the point where the app stops).

Are the 9.1.08 transformers doing something in their unhappy path that would consume memory?

If yes, is there a way to manually clear memory in my app without discarding the cached Templates?

I'm not asking for a fix, just a workaround.

I can provide graphs showing memory usage and code snippets if required.

Stewart

Please register to edit this issue

Also available in: Atom PDF