Support Article

StackOverflowError when opening call interaction object

SA-36837

Summary



System Admintrators noted a StackOverflowError in logs - which also caused issue for user.

Activity pyGetInteractionInternal calls itself in step 11, and in the case of StackOverflowError it repeats its call 520 times.


Error Messages



2017-04-13 08:43:50,529 [ WebContainer : 29] [ STANDARD] [ ] [ NCMD:04.05] (ngineinterface.service.HttpAPI) ERROR : com.pega.pegarules.pub.PRRuntimeError
com.pega.pegarules.pub.PRRuntimeError: PRRuntimeError
at com.pega.pegarules.session.internal.mgmt.base.ThreadRunner.runActivitiesAlt(ThreadRunner.java:712)
at com.pega.pegarules.session.internal.mgmt.PRThreadImpl.runActivitiesAlt(PRThreadImpl.java:461)
at com.pega.pegarules.session.internal.engineinterface.service.HttpAPI.runActivities(HttpAPI.java:3358)
at com.pega.pegarules.session.external.engineinterface.service.EngineAPI.processRequestInner(EngineAPI.java:385)
at sun.reflect.GeneratedMethodAccessor151.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
at java.lang.reflect.Method.invoke(Method.java:620)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.performTargetActionWithLock(PRSessionProviderImpl.java:1270)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:1008)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:841)
at com.pega.pegarules.session.external.engineinterface.service.EngineAPI.processRequest(EngineAPI.java:331)
at com.pega.pegarules.session.internal.engineinterface.service.HttpAPI.invoke(HttpAPI.java:852)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl._invokeEngine_privact(EngineImpl.java:315)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.invokeEngine(EngineImpl.java:263)
at com.pega.pegarules.session.internal.engineinterface.etier.ejb.EngineBean.invokeEngine(EngineBean.java:225)
at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
at java.lang.reflect.Method.invoke(Method.java:620)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:370)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingThrowable(PRBootstrap.java:411)
at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethodPropagatingThrowable(AppServerBridgeToPega.java:223)
at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethodPropagatingException(AppServerBridgeToPega.java:245)
at com.pega.pegarules.internal.etier.ejb.EngineBeanBoot.invokeEngine(EngineBeanBoot.java:168)
at com.pega.pegarules.internal.etier.interfaces.EJSLocalStatelessEngineBMT_f2439d86.invokeEngine(Unknown Source)
at com.pega.pegarules.priv.context.JNDIEnvironment.invokeEngineInner(JNDIEnvironment.java:278)
at com.pega.pegarules.priv.context.JNDIEnvironment.invokeEngine(JNDIEnvironment.java:223)
at com.pega.pegarules.web.impl.WebStandardImpl.makeEtierRequest(WebStandardImpl.java:574)
at com.pega.pegarules.web.impl.WebStandardImpl.doPost(WebStandardImpl.java:374)
at sun.reflect.GeneratedMethodAccessor146.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
at java.lang.reflect.Method.invoke(Method.java:620)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:370)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingThrowable(PRBootstrap.java:411)
at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethodPropagatingThrowable(AppServerBridgeToPega.java:223)
at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethod(AppServerBridgeToPega.java:272)
at com.pega.pegarules.internal.web.servlet.WebStandardBoot.doPost(WebStandardBoot.java:121)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1232)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:781)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:480)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1114)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:940)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1817)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1881)
Caused by:
java.lang.StackOverflowError
at com.pega.pegarules.priv.factory.AbstractContainerFactory.acquireObject(AbstractContainerFactory.java:269)
at com.pega.pegarules.priv.factory.StringBuilderFactory.acquire(StringBuilderFactory.java:85)
at com.pega.pegarules.data.internal.clipboard.PropertyReferenceImpl.toString(PropertyReferenceImpl.java:3308)
at com.pega.pegarules.data.internal.clipboard.PropertyReferenceImpl.subReference(PropertyReferenceImpl.java:3624)
at com.pega.pegarules.data.internal.clipboard.PropertyReferenceImpl.removeLastProperty(PropertyReferenceImpl.java:2800)
at com.pega.pegarules.data.internal.clipboard.PropertyReferenceImpl.initialize(PropertyReferenceImpl.java:3125)
at com.pega.pegarules.data.internal.clipboard.PropertyReferencePoolImpl.get(PropertyReferencePoolImpl.java:99)
at com.pega.pegarules.data.internal.clipboard.PropertyReferencePoolImpl.get(PropertyReferencePoolImpl.java:80)
at com.pega.pegarules.data.internal.clipboard.ClipboardPropertyBase.getAllReferences(ClipboardPropertyBase.java:1345)
at com.pega.pegarules.data.internal.clipboard.ClipboardPropertyBase.getAllReferences(ClipboardPropertyBase.java:1351)
<snip repeating lines>
at com.pega.pegarules.data.internal.clipboard.ClipboardPropertyBase.getAllReferences(ClipboardPropertyBase.java:1351)
at com.pega.pegarules.data.internal.clipboard.ClipboardPropertyBase.getAllReferences(ClipboardPropertyBase.java:1351)
at com.pega.pegarules.data.internal.clipboard.ClipboardPropertyBase.getAllReferences(ClipboardPropertyBase.java:1351)
at com.pega.pegarules.data.internal.clipboard.ClipboardPropertyBase.getAllReferences(ClipboardPropertyBase.java:1253)
at com.pega.pegarules.data.internal.clipboard.ClipboardPropertyBase.finishChangeTracking(ClipboardPropertyBase.java:3281)
at com.pega.pegarules.data.internal.clipboard.ClipboardPropertyBase.trackChange(ClipboardPropertyBase.java:3306)
at com.pega.pegarules.data.internal.clipboard.ClipboardPageBase.trackChange(ClipboardPageBase.java:1555)
at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.put(ClipboardPageImpl.java:2215)
at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.putCopy(ClipboardPageImpl.java:3385)
at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.putAll(ClipboardPageImpl.java:3222)
at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.putAll(ClipboardPageImpl.java:2860)
at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.putAllAndReconcileRefProps(ClipboardPageImpl.java:2828)
at com.pega.pegarules.data.internal.clipboard.ClipboardPageBase.replace(ClipboardPageBase.java:552)
at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.replace(ClipboardPageImpl.java:484)
at com.pega.pegarules.data.internal.clipboard.ClipboardPageBase.replace(ClipboardPageBase.java:1518)
at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.replace(ClipboardPageImpl.java:484)
at com.pega.pegarules.session.internal.mgmt.Executable.setStepPage(Executable.java:1975)
at com.pega.pegarules.pub.runtime.AbstractActivity.objOpen(AbstractActivity.java:86)
at com.pegarules.generated.activity.ra_action_pygetinteractioninternal_09961254bd077064f51a812d8d4ceed7.step10_circum0(ra_action_pygetinteractioninternal_09961254bd077064f51a812d8d4ceed7.java:874)
at com.pegarules.generated.activity.ra_action_pygetinteractioninternal_09961254bd077064f51a812d8d4ceed7.perform(ra_action_pygetinteractioninternal_09961254bd077064f51a812d8d4ceed7.java:264)
at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3505)
at com.pega.pegarules.session.internal.mgmt.Executable.invokeActivity(Executable.java:10563)
at com.pegarules.generated.activity.ra_action_pygetinteractioninternal_09961254bd077064f51a812d8d4ceed7.step11_circum0(ra_action_pygetinteractioninternal_09961254bd077064f51a812d8d4ceed7.java:956)
at com.pegarules.generated.activity.ra_action_pygetinteractioninternal_09961254bd077064f51a812d8d4ceed7.perform(ra_action_pygetinteractioninternal_09961254bd077064f51a812d8d4ceed7.java:289)
at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3505)
at com.pega.pegarules.session.internal.mgmt.Executable.invokeActivity(Executable.java:10563)
<snip repeating lines>
at com.pegarules.generated.activity.ra_action_pygetinteractioninternal_09961254bd077064f51a812d8d4ceed7.step11_circum0(ra_action_pygetinteractioninternal_09961254bd077064f51a812d8d4ceed7.java:956)
at com.pegarules.generated.activity.ra_action_pygetinteractioninternal_09961254bd077064f51a812d8d4ceed7.perform(ra_action_pygetinteractioninternal_09961254bd077064f51a812d8d4ceed7.java:289)
at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3505)
at com.pega.pegarules.session.internal.mgmt.Executable.invokeActivity(Executable.java:10563)
at com.pegarules.generated.activity.ra_action_pygetinteractioninternal_09961254bd077064f51a812d8d4ceed7.step11_circum0(ra_action_pygetinteractioninternal_09961254bd077064f51a812d8d4ceed7.java:956)
at com.pegarules.generated.activity.ra_action_pygetinteractioninternal_09961254bd077064f51a812d8d4ceed7.perform(ra_action_pygetinteractioninternal_09961254bd077064f51a812d8d4ceed7.java:289)
at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3505)
at com.pega.pegarules.session.internal.mgmt.Executable.invokeActivity(Executable.java:10563)
at com.pegarules.generated.activity.ra_action_getinteraction_3edc2515e5f6494d3242ca175ecbfe7f.step1_0_circum0(ra_action_getinteraction_3edc2515e5f6494d3242ca175ecbfe7f.java:189)
at com.pegarules.generated.activity.ra_action_getinteraction_3edc2515e5f6494d3242ca175ecbfe7f.perform(ra_action_getinteraction_3edc2515e5f6494d3242ca175ecbfe7f.java:75)
at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3505)
at com.pega.pegarules.session.internal.mgmt.Executable.invokeActivity(Executable.java:10563)
at com.pegarules.generated.activity.ra_action_showinteraction_234f65f6331b1946547392389474a204.step2_circum0(ra_action_showinteraction_234f65f6331b1946547392389474a204.java:354)
at com.pegarules.generated.activity.ra_action_showinteraction_234f65f6331b1946547392389474a204.perform(ra_action_showinteraction_234f65f6331b1946547392389474a204.java:93)
at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3505)
at com.pega.pegarules.session.internal.mgmt.Executable.invokeActivity(Executable.java:10563)
at com.pegarules.generated.activity.ra_action_showinteraction_51a71d4751ddbc1eae8035b4fef861fe.step5_circum0(ra_action_showinteraction_51a71d4751ddbc1eae8035b4fef861fe.java:455)
at com.pegarules.generated.activity.ra_action_showinteraction_51a71d4751ddbc1eae8035b4fef861fe.perform(ra_action_showinteraction_51a71d4751ddbc1eae8035b4fef861fe.java:146)
at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3505)
at com.pega.pegarules.session.internal.mgmt.base.ThreadRunner.runActivitiesAlt(ThreadRunner.java:646)


Steps to Reproduce



There are occasions where a series of transfers (including at least one BlindTransfer) occurs, where the values for origCallId match the current pyCallId.

​This causes an issue in the logic for the pyGetInteractionInternal.


Root Cause



A defect in Pegasystems’ rules allows activity to call itself recursively until a StackOverflowError occurs.

Resolution



Apply HFix-33881.

Published April 20, 2017 - Updated May 25, 2017

Have a question? Get answers now.

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