Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

Timeout Issue: Pega Application Not available

SA-41624

Summary



One of users' node in production became unresponsive for about 30 minutes and had to be restarted.

Heap memory usage peaked almost to the maximum heap size configured for the server along with frequent Garbage Collection cycles
occurring in the background.

Users of the application either got timed out or received the following Error on Screen.
The remote server returned an error: (500) Internal Server Error.


Error Messages



"ajp-bio-8009-exec-18" Id=2722 in RUNNABLE
BlockedCount : 112, BlockedTime : -1, WaitedCount : 145, WaitedTime : -1
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.w.super(Unknown Source)
at org.zefer.html.doc.w.publicvoid(Unknown Source)
at org.zefer.html.doc.w.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.q.super(Unknown Source)
at org.zefer.html.doc.Document.substitutePlaceholders(Unknown Source)
at org.zefer.pd4ml.PD4ML.o00000(Unknown Source)
at org.zefer.pd4ml.PD4ML.render(Unknown Source)
at com.pega.pegarules.integration.engine.internal.util.PDFUtilsImpl.invokePD4ML(PDFUtilsImpl.java:1296)
at com.pega.pegarules.integration.engine.internal.util.PDFUtilsImpl.convertHTMLToPDF(PDFUtilsImpl.java:1010)
at com.pega.pegarules.integration.engine.internal.util.PDFUtilsImpl.generatePDF(PDFUtilsImpl.java:215)
at com.pega.pegarules.integration.engine.internal.util.PDFUtilsImpl.generatePDF(PDFUtilsImpl.java:303)
at com.pegarules.generated.activity.ra_action_htmltopdf_dedfac20ef73e0c6e366335ec10b827d.step4_circum0(ra_action_htmltopdf_dedfac20ef73e0c6e366335ec10b827d.java:366)
at com.pegarules.generated.activity.ra_action_htmltopdf_dedfac20ef73e0c6e366335ec10b827d.perform(ra_action_htmltopdf_dedfac20ef73e0c6e366335ec10b827d.java:121)
at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3527)
at com.pega.pegarules.session.internal.mgmt.Executable.invokeActivity(Executable.java:10674)
at com.pegarules.generated.activity.ra_action_getpdffromemailstream_f25891c33c176b4d5b412434070c4115.step2_circum0(ra_action_getpdffromemailstream_f25891c33c176b4d5b412434070c4115.java:255)
at com.pegarules.generated.activity.ra_action_getpdffromemailstream_f25891c33c176b4d5b412434070c4115.perform(ra_action_getpdffromemailstream_f25891c33c176b4d5b412434070c4115.java:86)
at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3527)

2017-07-10 14:11:33,966 [ ajp-bio-8009-exec-9] [ ] [ ] (ngineinterface.service.HttpAPI) ERROR HOSTNAME|IPADDRESS - : com.pega.pegarules.pub.context.RequestorLockException
com.pega.pegarules.pub.context.RequestorLockException: Unable to synchronize on requestor H81AB523E913CF365D65F42F0F1787461 within 120 seconds: (thisThread = ajp-bio-8009-exec-9) (originally locked by = ajp-bio-8009-exec-18) (finally locked by = ajp-bio-8009-exec-18)


2017-07-10 14:17:58,270 [ajp-bio-8009-exec-29] [ STANDARD] [ ] (ngineinterface.service.HttpAPI) ERROR HOSTNAME|IPADDRESS - : com.pega.pegarules.pub.context.RequestorLockException
com.pega.pegarules.pub.context.RequestorLockException: Unable to synchronize on requestor H81AB523E913CF365D65F42F0F1787461 within 120 seconds: (thisThread = ajp-bio-8009-exec-29) (originally locked by = ajp-bio-8009-exec-18) (finally locked by = ajp-bio-8009-exec-18)


Steps to Reproduce



1. Create a HTML rule with the following content:

Some text
OOM <[email protected]>


2. Create an activity.
3 a. Step1: Call a Property-Set to set the following

param.HTMLStream = the name of the HTML rule created in Step 1
param.pyPDFOrientation = portrait
param.CurrentDate = @(Pega-RULES:String).substring(@(Pega-RULES:Datetime).CurrentDate(DDMMYYYY, CEST),0,11)
param.CurrentDateTime = @(Pega-RULES:DateTime).CurrentDate("MMM d, yyyy HH:mm:ss", "GMT+1")
param.PDFNane = "OutputPDF_" + param.CurrentDate + ".pdf"


b. Step 2: Call pyViewAsPDF (ensuring you pass the parameter page)
4. Run a suitable monitoring tool to view the memory usage (For example JConsole and Tomcat server).
5. Run the activity.
7. Observe that the memory shoots up to full heap usage in seconds.


Root Cause



A defect in Pegasystems’ code or rules.

This is due to a BUG in the third party PD4ML library shipped with PRPC to generate PDF from HTML.


Resolution



Warning

Note that the omission of the HTML entity (&lt;) via the abovementioned local-change may render email addresses or hyperlinks (containing the entity '&lt;') as invalid in the generated PDF document.

Perform the following local-change:

As a local-change, do not use the HTML entities (For example '&lt;' | '&gt;') while generating markup OR simply omit the '<' '>' characters.


Below are the ways to achieve this:

Through a Java step in all your application activities calling the out-of-the-box "HTMLToPDF" activity.

Code change: tools.putParamValue("Markup",tools.getParamValue("Markup").replaceAll("&lt;br(.+)?&gt;", "br$1"));

(Or)

Through a Property-Set Step in all your application activities calling the out-of-the-box "HTMLToPDF" activity.

Code change: @pxReplaceAllViaRegex(Param.Markup,"&lt;br(.+)?&gt;", "br$1")


Suggest Edit

Published December 15, 2017 - Updated October 8, 2020

Did you find this content helpful? Yes No

100% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us