CM Memory Leak When Calling PCM_OP_ACT_FIND (Doc ID 2048773.1)

Last updated on JULY 24, 2017

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 :  7.5.0.10.0 version, CM

When Calling PCM_OP_ACT_FIND opcode, from valgrind output file  we have identified that memory leak is happening.

# For valgring testing disable BRM internal  memory pool in cm/pin.conf
- - disable_pcm_mempool 1



ACTUAL BEHAVIOR  
---------------
Memory leak in cm

EXPECTED BEHAVIOR
-----------------------
There shouldn't be memory leak in cm

STEPS
-----------------------
The issue can be reproduced at will with the following steps:
1. Start CM with valgrind:
e.g /usr/bin/valgrind  --log-file=/tmp/cm_valgrind.vglog --trace-children=yes  --demangle=yes --leak-check=full --show-reachable=yes --track-origins=yes --track-fds=yes --num-callers=48 /pinhome/pinxx/opt/portal/7.5/bin/cm

2. Prepare an input flist (say in.flist)
 
 0 PIN_FLD_POID POID [0] 0.0.0.1 /service/pcm_client -1 0
 0 PIN_FLD_LOGIN STR [0] "root.0.0.0.1"

3.  From testnap read this flist and issue PCM_OP_ACT_FIND.
    r in.flist 1
    xop PCM_OP_ACT_FIND 0 1
 
 4. quit testnap, abort cm started with valgrind. Examine the log file from  valgrind.
     One can see a leak in op_act_find() from cm_custom_ex() level onwards.

e.g:

4364 ==12404== 320 bytes in 1 blocks are indirectly lost in loss record 349 of 527
   4365 ==12404==    at 0x6CDB903: malloc (vg_replace_malloc.c:195)
   4366 ==12404==    by 0x6D7A527: pcmmem_malloc_flistflds (in /pinhome/pin131/BD1/libcmpin.so)
   4367 ==12404==    by 0x6D78E74: pini_flist_grow (in /pinhome/pin131/BD1/libcmpin.so)
   4368 ==12404==    by 0x6D93421: pcpxdr_fld_list (in /pinhome/pin131/BD1/libcmpin.so)
   4369 ==12404==    by 0x6D8CC47: pcpxdr_op_decode (in /pinhome/pin131/BD1/libcmpin.so)
   4370 ==12404==    by 0x6D86A05: pcp_receive_no_trans_cleanup (in /pinhome/pin131/BD1/libcmpin.so)
   4371 ==12404==    by 0x6D7D601: pcm_op_ex (in /pinhome/pin131/BD1/libcmpin.so)
   4372 ==12404==    by 0x6D7C88B: pcm_op (in /pinhome/pin131/BD1/libcmpin.so)
   4373 ==12404==    by 0xEC82FEE: fm_act_find_search_service (in /pinhome/pin131/opt/portal/7.5/lib/fm_act.so)
   4374 ==12404==    by 0xEC82153: fm_act_find_search_singledb (in /pinhome/pin131/opt/portal/7.5/lib/fm_act.so)
   4375 ==12404==    by 0xEC80D95: fm_act_find_search (in /pinhome/pin131/opt/portal/7.5/lib/fm_act.so)
   4376 ==12404==    by 0xEC80B04: op_act_find (in /pinhome/pin131/opt/portal/7.5/lib/fm_act.so)
   4377 ==12404==    by 0x6ED0FFD: cm_custom_ex (in /pinhome/pin131/opt/portal/7.5/lib/libcm_main.so)
   4378 ==12404==    by 0x6ECFF9D: cm_custom (in /pinhome/pin131/opt/portal/7.5/lib/libcm_main.so)
   4379 ==12404==    by 0x6ECDD60: cm_child (in /pinhome/pin131/opt/portal/7.5/lib/libcm_main.so)
   4380 ==12404==    by 0x6EDDDC7: mainThread (in /pinhome/pin131/opt/portal/7.5/lib/libcm_main.so)
   4381 ==12404==    by 0x80487DD: main (in /pinhome/pin131/opt/portal/7.5/bin/cm)

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