Duplicate rules created after branch merge in development environment
Quite a lot of duplicate rules have been created in trunk after a branch was merged into trunk using the merge wizard. (Around 400+ duplicate rules) We merge the branches 2-3 times a week but encountered the issue for the first time. No error was reported after the branch was merged but was discovered during testing.
Instead or merging, duplicate rules with different pzInskeys have been created.
Impact –
Application is unstable Related functionalities are not working since rule resolution is failing because of duplicate rules. Log full of rule assembly error Section rules are not rendered properly - existing and new - blank screen Activity ruleforms are distorted
New pzInskey is created for the rule - RULE-OBJ-WHEN A-FW-SFW ISNEWPROVIDERS #20200601T140622.266 GMT
Original pzInskey - RULE-OBJ-WHEN A-FW-SFW ISNEWPROVIDERS #20200407T130759.255 GMT
Error in logs –
Quite a lot of duplicate rules have been created in trunk after a branch was merged into trunk using the merge wizard. (Around 400+ duplicate rules) We merge the branches 2-3 times a week but encountered the issue for the first time. No error was reported after the branch was merged but was discovered during testing.
Instead or merging, duplicate rules with different pzInskeys have been created.
Impact –
Application is unstable Related functionalities are not working since rule resolution is failing because of duplicate rules. Log full of rule assembly error Section rules are not rendered properly - existing and new - blank screen Activity ruleforms are distorted
New pzInskey is created for the rule - RULE-OBJ-WHEN A-FW-SFW ISNEWPROVIDERS #20200601T140622.266 GMT
Original pzInskey - RULE-OBJ-WHEN A-FW-SFW ISNEWPROVIDERS #20200407T130759.255 GMT
Error in logs –
[6/1/20 11:05:32:661 EDT] 000000bd SystemOut O 2020-06-01 11:05:32,597 [ WebContainer : 19] [TABTHREAD0] [ ] [ditImplTest:01.01.01] (ternal.vtable.VirtualTableImpl) ERROR va33duvwbs302.wellpoint.com|vdaasw1003606.us.ad.wellpoint.com AG09053 - Unable to resolve MultipleRuleVersionException by reloading candidates for hashCode: -1302368267; identity: -1387662964; pxObjClass: 'RULE-OBJ-WHEN'; pxInsId: '!ISNEWPROVIDERS'. The database contains multiple versions of the rule.
com.pega.pegarules.pub.generator.UnresolvedAssemblyError: Unable to select between versions
at com.pega.pegarules.generation.internal.vtable.ruleres.VirtualTableResolver.findCircumstancedCandidateInResults(VirtualTableResolver.java:542) ~[prprivate.jar:?]
at com.pega.pegarules.generation.internal.vtable.ruleres.VirtualTableResolver.selectUsingRuleResolution(VirtualTableResolver.java:471) ~[prprivate.jar:?]
at com.pega.pegarules.generation.internal.vtable.ruleres.VirtualTableResolver.resolveToContainer(VirtualTableResolver.java:397) ~[prprivate.jar:?]
at com.pega.pegarules.generation.internal.vtable.ruleres.VirtualTableResolver.resolveRule(VirtualTableResolver.java:153) ~[prprivate.jar:?]
at com.pega.pegarules.generation.internal.vtable.VirtualTableImpl.resolveRule(VirtualTableImpl.java:297) ~[prprivate.jar:?]
at com.pega.pegarules.generation.internal.PRGenProviderImpl.get(PRGenProviderImpl.java:498) ~[prprivate.jar:?]
at com.pega.pegarules.session.internal.mgmt.Executable.evaluateWhen(Executable.java:4307) ~[prprivate.jar:?]
at com.pega.pegarules.session.internal.mgmt.Executable.invokeWhen(Executable.java:10819) ~[prprivate.jar:?]
at com.pega.pegarules.generation.internal.stream.StreamToolsImpl.evaluateWhenCondition(StreamToolsImpl.java:1329) ~[prprivate.jar:?]
at com.pega.pegarules.generation.internal.stream.StreamToolsImpl.evaluateWhenCondition(StreamToolsImpl.java:1314) ~[prprivate.jar:?]
at com.pega.pegarules.generation.internal.assembly.jspwhen.JspWhenEvaluate.processElement(JspWhenEvaluate.java:230) ~[prprivate.jar:?]
at com.pega.pegarules.generation.internal.assembly.jspwhen.JspWhenEvaluate.evaluateCompiledWhen(JspWhenEvaluate.java:60) ~[prprivate.jar:?]
at com.pega.pegarules.generation.internal.assembly.jspwhen.ProcessWhenExpression.evaluateCompiledWhen(ProcessWhenExpression.java:250) ~[prprivate.jar:?]
at com.pega.pegarules.generation.internal.PRGenProviderImpl.evaluateCompiledWhen(PRGenProviderImpl.java:957) ~[prprivate.jar:?]
at com.pega.pegarules.session.internal.mgmt.autostreams.AutoStreamRuntimeImpl.evaluateCompiledWhen(AutoStreamRuntimeImpl.java:1207) ~[prprivate.jar:?]
at com.pega.pegarules.session.internal.mgmt.autostreams.AutoStreamRuntimeImpl.handleEvaluateWhen(AutoStreamRuntimeImpl.java:1223) ~[prprivate.jar:?]
at com.pegarules.generated.html_section.ra_stream_initialcontractingwrapper_78c069134ad408fbac83d9e7a8490bd5.simpleLayoutCell_2(ra_stream_initialcontractingwrapper_78c069134ad408fbac83d9e7a8490bd5.java:8512) ~[?:?]
at com.pegarules.generated.html_section.ra_stream_initialcontractingwrapper_78c069134ad408fbac83d9e7a8490bd5.simpleLayout_2(ra_stream_initialcontractingwrapper_78c069134ad408fbac83d9e7a8490bd5.java:8633) ~[?:?]
at com.pegarules.generated.html_section.ra_stream_initialcontractingwrapper_78c069134ad408fbac83d9e7a8490bd5.pzLayoutBodyWrapper_10(ra_stream_initialcontractingwrapper_78c069134ad408fbac83d9e7a8490bd5.java:4553) ~[?:?]
at com.pegarules.generated.html_section.ra_stream_initialcontractingwrapper_78c069134ad408fbac83d9e7a8490bd5.pzLayout_3(ra_stream_initialcontractingwrapper_78c069134ad408fbac83d9e7a8490bd5.java:8680) ~[?:?]
at com.pegarules.generated.html_section.ra_stream_initialcontractingwrapper_78c069134ad408fbac83d9e7a8490bd5.pzSectionBody_1(ra_stream_initialcontractingwrapper_78c069134ad408fbac83d9e7a8490bd5.java:505) ~[?:?]
at com.pegarules.generated.html_section.ra_stream_initialcontractingwrapper_78c069134ad408fbac83d9e7a8490bd5.performStream_1(ra_stream_initialcontractingwrapper_78c069134ad408fbac83d9e7a8490bd5.java:15104) ~[?:?]
at com.pegarules.generated.html_section.ra_stream_initialcontractingwrapper_78c069134ad408fbac83d9e7a8490bd5.execute(ra_stream_initialcontractingwrapper_78c069134ad408fbac83d9e7a8490bd5.java:117) ~[?:?]
at com.pega.pegarules.session.internal.mgmt.Executable.getStream(Executable.java:4136) ~[prprivate.jar:?]
at com.pega.pegarules.session.internal.mgmt.Executable.getStream(Executable.java:3958) ~[prprivate.jar:?]
at com.pegarules.generated.activity.ra_action_getsectionhtmlfordesignview_38a3bf72809a5787dc730ed66e3465e5.step4_circum0(ra_action_getsectionhtmlfordesignview_38a3bf72809a5787dc730ed66e3465e5.java:421) ~[?:?]
at com.pegarules.generated.activity.ra_action_getsectionhtmlfordesignview_38a3bf72809a5787dc730ed66e3465e5.perform(ra_action_getsectionhtmlfordesignview_38a3bf72809a5787dc730ed66e3465e5.java:124) ~[?:?]
at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3597) ~[prprivate.jar:?]
at com.pega.pegarules.session.internal.mgmt.Executable.invokeActivity(Executable.java:10845) ~[prprivate.jar:?]
at com.pegarules.generated.activity.ra_action_pzgetsectionhtmlfordesignviewwithpost_62870f993d38e86032f4e93e54edaff9.step2_circum0(ra_action_pzgetsectionhtmlfordesignviewwithpost_62870f993d38e86032f4e93e54edaff9.java:222) ~[?:?]
at com.pegarules.generated.activity.ra_action_pzgetsectionhtmlfordesignviewwithpost_62870f993d38e86032f4e93e54edaff9.perform(ra_action_pzgetsectionhtmlfordesignviewwithpost_62870f993d38e86032f4e93e54edaff9.java:87) ~[?:?]
at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3597) ~[prprivate.jar:?]
at com.pega.pegarules.session.internal.mgmt.base.ThreadRunner.runActivitiesAlt(ThreadRunner.java:646) ~[prprivate.jar:?]
at com.pega.pegarules.session.internal.mgmt.PRThreadImpl.runActivitiesAlt(PRThreadImpl.java:481) ~[prprivate.jar:?]
at com.pega.pegarules.session.internal.engineinterface.service.HttpAPI.runActivities(HttpAPI.java:3414) ~[prprivate.jar:?]
at com.pega.pegarules.session.external.engineinterface.service.EngineAPI.processRequestInner(EngineAPI.java:399) ~[prenginext.jar:?]
at sun.reflect.GeneratedMethodAccessor75.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55) ~[?:1.8.0]
at java.lang.reflect.Method.invoke(Method.java:508) ~[?:1.8.0]
at com.pega.pegarules.session.internal.PRSessionProviderImpl.performTargetActionWithLock(PRSessionProviderImpl.java:1338) ~[prprivate.jar:?]
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:1075) ~[prprivate.jar:?]
at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:930) ~[prprivate.jar:?]
at com.pega.pegarules.session.external.engineinterface.service.EngineAPI.processRequest(EngineAPI.java:336) ~[prenginext.jar:?]
at com.pega.pegarules.session.internal.engineinterface.service.HttpAPI.invoke(HttpAPI.java:854) ~[prprivate.jar:?]
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl._invokeEngine_privact(EngineImpl.java:331) ~[prprivate.jar:?]
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.invokeEngine(EngineImpl.java:274) ~[prprivate.jar:?]
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.invokeEngine(EngineImpl.java:251) ~[prprivate.jar:?]
at com.pega.pegarules.priv.context.JNDIEnvironment.invokeEngineInner(JNDIEnvironment.java:278) ~[prpublic.jar:?]
at com.pega.pegarules.priv.context.JNDIEnvironment.invokeEngine(JNDIEnvironment.java:223) ~[prpublic.jar:?]
at com.pega.pegarules.web.impl.WebStandardImpl.makeEtierRequest(WebStandardImpl.java:678) ~[prwebj2ee.jar:?]
at com.pega.pegarules.web.impl.WebStandardImpl.doPost(WebStandardImpl.java:394) ~[prwebj2ee.jar:?]
at sun.reflect.GeneratedMethodAccessor74.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55) ~[?:1.8.0]
at java.lang.reflect.Method.invoke(Method.java:508) ~[?:1.8.0]
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:370) ~[prbootstrap-7.3.1-218.jar:7.3.1-218]
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingThrowable(PRBootstrap.java:411) ~[prbootstrap-7.3.1-218.jar:7.3.1-218]
at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethodPropagatingThrowable(AppServerBridgeToPega.java:224) ~[prbootstrap-api-7.3.1-218.jar:7.3.1-218]
at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethod(AppServerBridgeToPega.java:273) ~[prbootstrap-api-7.3.1-218.jar:7.3.1-218]
at com.pega.pegarules.internal.web.servlet.WebStandardBoot.doPost(WebStandardBoot.java:129) ~[prbootstrap-api-7.3.1-218.jar:7.3.1-218]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595) ~[javax.j2ee.servlet.jar:?]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) ~[javax.j2ee.servlet.jar:?]
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1233) ~[com.ibm.ws.webcontainer.jar:?]
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:782) ~[com.ibm.ws.webcontainer.jar:?]
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:481) ~[com.ibm.ws.webcontainer.jar:?]
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) ~[com.ibm.ws.webcontainer.jar:?]
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1114) ~[com.ibm.ws.webcontainer.jar:?]
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87) ~[com.ibm.ws.webcontainer.jar:?]
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:949) ~[com.ibm.ws.webcontainer.jar:?]
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1817) ~[com.ibm.ws.webcontainer.jar:?]
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:213) ~[com.ibm.ws.webcontainer.jar:?]
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1833) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) ~[com.ibm.ws.runtime.jar:?]
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1892) ~[com.ibm.ws.runtime.jar:?]
Caused by: com.pega.pegarules.pub.database.MultipleRuleVersionException: Rule resolution identified 2 versions of the rule with class Rule-Obj-When and name ANTM-FW-DPSFW!ISNEWPROVIDERS
at com.pega.pegarules.data.internal.access.RuleResolver.filterAllCachedCandidates(RuleResolver.java:2043) ~[prprivate.jar:?]
at com.pega.pegarules.data.internal.PRDataProviderImpl.invokeRuleResolutionFilterCachedCandidatesAlwaysReturnsCandidate(PRDataProviderImpl.java:514) ~[prprivate.jar:?]
at com.pega.pegarules.generation.internal.vtable.ruleres.VirtualTableResolver.findCircumstancedCandidateInResults(VirtualTableResolver.java:539) ~[prprivate.jar:?]
... 82 more
We have tried to revalidate and save a few rules and receiving the following errors.
pzInskey is the primary key of the work table. We have manually saved the duplicate rules created in a different ruleset as backup however application is quite unstable.
***Edited by Moderator Marissa to update Support Case Details***