Support Article

Unable to synchronize on requestor

SA-5200

Summary



When the users are trying to login to the application, they recieve the below error on the screen. The same error appears in application logs.

Unable to synchronize on requestor HF103F32660B65612FF70E19D14F5EF75 within 120 seconds: (thisThread = http-bio-8181-exec-34) (originally locked by = http-bio-8181-exec-59) (finally locked by = http-bio-8181-exec-59)


Error Messages



02:34:50,692 [p-bio-8181-exec-3084] (ngineinterface.service.HttpAPI) ERROR - <IP Address>: com.pega.pegarules.pub.context.RequestorLockException
com.pega.pegarules.pub.context.RequestorLockException: Unable to synchronize on requestor H6B6CC0E416B6880CCDE6CC1C7E45EB6E within 120 seconds: (thisThread = http-bio-8181-exec-3084) (originally locked by = http-bio-8181-exec-3115) (finally locked by = http-bio-8181-exec-3115)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:1000)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:792)
at com.pega.pegarules.session.external.engineinterface.service.EngineAPI.processRequest(EngineAPI.java:328)
at com.pega.pegarules.session.internal.engineinterface.service.HttpAPI.invoke(HttpAPI.java:717)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl._invokeEngine_privact(EngineImpl.java:312)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.invokeEngine(EngineImpl.java:263)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.invokeEngine(EngineImpl.java:240)
at com.pega.pegarules.priv.context.JNDIEnvironment.invokeEngineInner(JNDIEnvironment.java:277)
at com.pega.pegarules.priv.context.JNDIEnvironment.invokeEngine(JNDIEnvironment.java:222)
at com.pega.pegarules.web.impl.WebStandardImpl.makeEtierRequest(WebStandardImpl.java:383)
at com.pega.pegarules.web.impl.WebStandardImpl.doPost(WebStandardImpl.java:271)
at sun.reflect.GeneratedMethodAccessor93.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)


Steps to Reproduce



Not Applicable


Root Cause



The root cause of this problem is a defect in customer application code/rules. All of the associated thread dumps show a custom activity viz. 'loadData' doing a socketRead() while executing SQL against the backend database. This suggests that when the users log in, this activity gets fired and it executes a SQL that takes longer than 120 seconds to complete. 
Unable to synchronize on requestor’ error is a manifestation of this long running step. Here, a problem was identified with histograms not being dropped from the table and hence the sql was not doing an index scan.


Resolution



This issue is resolved by making the following change to the PRPC operating environment: Engage your DBA and identify the root cause of slow performing SQL query that is responsible for causing thread dumps.
Suggest Edit

Published February 27, 2016 - Updated October 8, 2020

Have a question? Get answers now.

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