My Oracle Support Banner

Pipeline Crashes When IRule Function Access EDR Block Field If No EDR Block Used In IRule CONDITION (Doc ID 1925210.1)

Last updated on SEPTEMBER 02, 2023

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


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.