Pipeline Crashes When IRule Function Access EDR Block Field If No EDR Block Used In IRule CONDITION
(Doc ID 1925210.1)
Last updated on JULY 30, 2020
Applies to:
Oracle Communications Billing and Revenue Management - Version 7.5.0.0.0 to 7.5.0.0.0 [Release 7.5.0]Information in this document applies to any platform.
Symptoms
On Billing and Revenue Management(BRM) 7.5.0.6.0 version, Pipeline Manager:
Pipeline crashes in below 2 cases
1) when iRule function access EDR block field if no EDR block used in iRule "CONDITION".
2) when iRule function access EDR block field and EDR block used in iRule "CONDITION" doesn't match the pattern build by FSM during the pipeline start up.
Reproduction Steps:
--------------------
1) Create following 3 files in "$IFW_HOME/iScriptLib/iScriptLib_Standard"
a) cat IRL_myData.data
myTrueFunction();"123"
b) cat ISC_myIscript.isc
function Bool myTrueFunction
{
return true;
}
function String myIscriptFunction(String value)
{
logPipeline( "In iScript function\n" );
edrString(DETAIL.ASS_GSMW_EXT.RECORD_TYPE, 0) = "1234";
logPipeline("Success!!!" + "\n");
return value;
}
c1) cat IRL_myIrules.irl # Test case 1
RULE: IRL_myIrules
SOURCE: File
FILE: ./iScriptLib/iScriptLib_Standard/IRL_myData.data
INIT_SCRIPT:
include "./iScriptLib/iScriptLib_Standard/ISC_myIscript.isc";
CONDITION:
${1};
RESULT:
edrString(DETAIL.RECORD_NUMBER) = myIscriptFunction(${2});
c2) cat IRL_myIrules.irl # Test case 2
RULE: IRL_myIrules
SOURCE: File
FILE: ./iScriptLib/iScriptLib_Standard/IRL_myData.data
INIT_SCRIPT:
include "./iScriptLib/iScriptLib_Standard/ISC_myIscript.isc";
CONDITION:
${1};
edrString(DETAIL.ASS_GSMW_EXT.RECORD_TYPE) =~ "620";
RESULT:
edrString(DETAIL.RECORD_NUMBER) = myIscriptFunction(${2});
2) Add following code to Wireless.reg
#---------------------------------
# Functions Section
#---------------------------------
#--------------------------------------------------
# ADDED FOR BUG TESTING
#--------------------------------------------------
Functions
{
Standard
{
FunctionPool
{
EdrDumpStart
{
ModuleName = FCT_EdrDump
Module
{
Active = True
FileName = ./log/dump/Start.dump
}
}
MyIrules
{
ModuleName = FCT_IRules
Module
{
Active = TRUE
Source = File
Descriptions
{
MyIrules =
./iScriptLib/iScriptLib_Standard/IRL_myIrules.irl
}
}
} # MY RULES END
EdrDumpEnd
{
ModuleName = FCT_EdrDump
Module
{
Active = True
FileName = ./log/dump/End.dump
}
}
#--------------------------------------------------
3) pass an EDR.
Actual Results:
--------
Pipeline process getting core dumped.
Expected Results:
---------
EDRs should be processed successfully & pipeline process should be up and running after processing the EDRs.
Changes
Cause
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
In this Document
Symptoms |
Changes |
Cause |
Solution |
References |