Bill Suppression Core Dumps Without Any Customer Segmentation (Doc ID 876288.1)

Last updated on JUNE 22, 2017

Applies to:

Oracle Communications Billing and Revenue Management - Version: 7.3.1.0.0 and later   [Release: 7.3.1 and later ]
Information in this document applies to any platform.
***Checked for relevance on 05-Aug-2011***

Symptoms

Problem Statement:
Turning on the bill suppression which is to be used with bill units without any customer segmentation causes core dumps.

In PCM_OP_BILL_POL_CHECK_SUPPRESSION, the strtok_r() function core dumps when passed a constant string (i.e. compiled "0" buffer instead of something memory allocated). The function in which this strtok_r() is called (fm_bill_pol_find_min_bal_max_cycle()) must make a copy of the string (e.g. pin_strdup()) so that it may modify the string using strtok_r().

Workaround:
Executing "pin_strdup()" on the customer segment string within the policy function and freeing the
string once no longer used.

Stack trace:

Received Signal 11
#0 0xffffe410 in __kernel_vsyscall ()
#1 0x002c4d23 in __waitpid_nocancel () from /lib/tls/libc.so.6
#2 0x0026e7a9 in do_system () from /lib/tls/libc.so.6
#3 0xf749198d in system () from /lib/tls/libpthread.so.0
#4 0xf7e337aa in printExceptionReport ()
#5 0xf7e2c3a2 in sigsegv_handler ()
#6 <signal handler called>
#7 0x002a463c in strtok_r () from /lib/tls/libc.so.6
#8 0x00000000 in ?? ()

Current Portal_Base patches:
6881751, 6935506, 6951224, 7109618, 7121011, 7198236, 7225479, 7706885, 7831740, 8237619, 8247970, 8275609, 8479633, 8512738, 8530359, 8566190, 8662233.

Steps To Reproduce:
1.  Configure bill suppression for customer segment "0" with minimum bill amount of $1000 and maximum cycles of 12.
2.  Bounce the CM after loading the /config/suppression to cache it.
3.  Create an account with services (e.g. basicISP sample pricing plan 1).
4.  Move forward 35 days and run PCM_OP_BILL_MAKE_BILL on the account.
     No suppression occurs because it is the first bill.
5.  Move forward 30 days and run PCM_OP_BILL_MAKE_BILL on the account.
     Suppression occurs because the criterias are met.


Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms