SCA (Session Control Agent) is Generating Core Dumps due to an Erratic Handling of the "Terminated" State (Doc ID 1324981.1)

Last updated on OCTOBER 18, 2016

Applies to:

Oracle Communications Network Charging and Control - Version: 2.2.0 to 4.2.0 - Release: 2.2 to 4.2
Information in this document applies to any platform.

Symptoms

SCA is regularly crashing and coredumping, causing the open SIP (Session Initiation Protocol) calls to drop.

Full backtrace of a sample coredump:

#0 0xff2d08fc in esc::TransactionFramework::addTerminated (trans=0x220420)
at /opt/gcc-3.2.3/include/c++/3.2.3/ext/stl_hashtable.h:137
transID = {static npos = XXXXXXXXXX, _M_dataplus = {<allocator<char>> = {<No data fields>},
_M_p = 0x207864 "z9hG4bKfc795ace@192.168.xxx.xxx/BYE"}, static _S_empty_rep_storage = {0, 0, 0, 0}}
secondaryID = {static npos = XXXXXXXXXX, _M_dataplus = {<allocator<char>> = {<No data fields>},
_M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0, 0, 0}}
it = {_M_cur = 0x0, _M_ht = 0xff32626c}
#1 0xff2d8770 in esc::BaseTransaction::terminatedEntry (this=0x220420) at txnBase.cc:84
No locals.
#2 0xff2c70fc in esc::NonInviteServerTransFSMCompletedState::Timer_J (this=0xff326230, s=@0x220420) at txnNIST_sm.cc:258
No locals.
#3 0xff2f84c0 in esc::NonInviteServerTransaction::timeout_expired (this=0x220420, type=@0x208878) at txnNIST_sm.h:126
t = 4281492016
#4 0xff2c2ff4 in MultipleTimeout<esc::txnTimerName>::timeout_expired (this=0x220420)
at /home/users/xxxxx/DEV/XXXXX/COMMON/include/cmnTimeout.h:268
j = {<iterator<std::random_access_iterator_tag,esc::txnTimerName,int,const esc::txnTimerName*,const esc::txnTimerName&>> = {<No data fields>}, _M_current = 0x208878}
now = {tv_sec = 1305626380, tv_usec = 147348}
fired = {<_Vector_base<esc::txnTimerName,std::allocator<esc::txnTimerName> >> = {<_Vector_alloc_base<esc::txnTimerName,std::allocator<esc::txnTimerName>,true>> = {_M_start = 0x208878, _M_finish = 0x20887c,
_M_end_of_storage = 0x20887c}, <No data fields>}, <No data fields>}
found_more = 120
i = {<_Rb_tree_base_iterator> = {_M_node = 0x1b0290}, <No data fields>}
#5 0xff3077e0 in BasicTimeout::process_timeouts (waitfor=@0xffbff600) at cmnTimeout.cc:128
i = {<_Rb_tree_base_iterator> = {_M_node = 0x1b0250}, <No data fields>}
i = {<_Rb_tree_base_iterator> = {_M_node = 0x1b0250}, <No data fields>}
top = (const pair<const timeval,BasicTimeout*> &) @0x22042c: {first = {tv_sec = 0, tv_usec = 0}, second = 0x0}
expired = (BasicTimeout *) 0x220420
cmnDebug_indenter_127 = {stream = 0x0, dist = 1788}
now = {tv_sec = 1305626380, tv_usec = 147341}
#6 0x000d3fac in esc::ESC::run (this=0x1a3518) at esc.cc:150
waitfor = {tv_sec = 1305626380, tv_usec = 147339}
#7 0x0005d85c in SCA::run (this=0x166800) at sca.cc:326
No locals.
#8 0x0005ea3c in main (argc=-4196448, argv=0xffbff83c) at sca.cc:494
buf = {st_dev = 81909930, st_pad1 = {0, 0, 0}, st_ino = 20263, st_mode = 33279, st_nlink = 1, st_uid = 0,
st_gid = 0, st_rdev = 0, st_pad2 = {0, 0}, st_size = 19076929, st_pad3 = 0, st_atim = {tv_sec = 1305626277,
tv_nsec = 221688000}, st_mtim = {tv_sec = 1269436983, tv_nsec = 779429000}, st_ctim = {tv_sec = 1269437040,
tv_nsec = 62066000}, st_blksize = 8192, st_blocks = 37280, st_fstype = "vxfs", '\0' <repeats 11 times>, st_pad4 = {0,
0, 0, 0, 0, 0, 0, 0}}
sca_instance = {static api = 0x1c81e8, static added_interface_process = false, static nhp = 0x1c37d8,
static cdr_logger = 0x1c8460, static cdrs_next_try = 0, static stats_logger = 0x1c2fc0, static heartbeat = 0x1b2750,
static scaConfig = {static singleton = {static singleton = <same as static member of an already seen type>,
static initialised = true, static scaConfig = {<Value> = {_vptr.Value = 0x178a48}, contents = {
_M_t = {<_Rb_tree_base<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, cmn::cfg::Value*>,std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, cmn::cfg::Value*> > >> = {<_Rb_tree_alloc_base<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, cmn::cfg::Value*>,std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, cmn::cfg::Value*> >,true>> = {_M_header = 0x19b148}, <No data fields>}, _M_node_count = 7,
_M_key_compare = {<binary_function<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,bool>> = {<No data fields>}, <No data fields>}}}},
static escConfig = {<Value> = {_vptr.Value = 0x178a48}, contents = {
_M_t = {<_Rb_tree_base<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, cmn::cfg::Value*>,std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, cmn::cfg::Value*> > >> = {<_Rb_tree_alloc_base<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, cmn::cfg::Value*>,std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, cmn::cfg::Value*> >,true>> = {_M_header = 0x19b190}, <No data fields>}, _M_node_count = 8,
_M_key_compare = {<binary_function<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::basic_string<char, std::char_traits<char>, std::allocator<char> >,bool>> = {<No data fields>}, <No data fields>}}}},
local_ip = {static npos = XXXXXXXXXX, _M_dataplus = {<allocator<char>> = {<No data fields>},
_M_p = 0x19ee2c "192.168.xxx.xxx"}, static _S_empty_rep_storage = {0, 0, 0, 0}}, insert_plus = false,
replace_plus = false, cdrs_enabled = true, tempDir = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x1a31cc "/IN/service_packages/SCA/cdr/open"},
static _S_empty_rep_storage = {0, 0, 0, 0}}, finalDir = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x1a31fc "/IN/service_packages/SCA/cdr/closed"},
static _S_empty_rep_storage = {0, 0, 0, 0}}, ageLimit = 600, sizeLimit = 100000, propagate_b_error = false,
IN_timeout = 10, pAssertedIDUsed = false, noin_dropcall = false, hashEncodeChar = 0 '\0', starEncodeChar = 0 '\0',
do_load_balancing = true, invite_failover_only = true, replace_diversion_header = false,
update_method_behaviour = PROXY, call_id_alarm_severity_ = 1, call_id_alarm_message_ = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x19eeec "Call ID Truncated"},
static _S_empty_rep_storage = {0, 0, 0, 0}}, inactive_media_hold_ = true, rem_comm_passwd = {
static npos = XXXXXXXXXX, _M_dataplus = {<allocator<char>> = {<No data fields>},
_M_p = 0x19ee8c "ukN9Ou/GBUWgU"}, static _S_empty_rep_storage = {0, 0, 0, 0}}, rem_comm_port = 3616,
allow_overlap_invite_ = true, b2bua_mode = true, media_behaviour = REJECT_MEDIA, strip_matched_prefix = false,
etc_append_cdpn = false, always_trans_map = true, use_ALegCallID = true, local_contact = false,
call_init_use_reinvite = false, heartbeat_destination = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0,
0, 0}}, heartbeat_from_address = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0,
0, 0}}, heartbeat_to_address = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0,
0, 0}}, heartbeat_request_uri = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0,
0, 0}}, heartbeat_route = {static npos = XXXXXXXXXX, _M_dataplus = {<allocator<char>> = {<No data fields>},
_M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0, 0, 0}}, heartbeat_p_asserted_id = {
static npos = XXXXXXXXXX, _M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x195a74 ""},
static _S_empty_rep_storage = {0, 0, 0, 0}}, heartbeat_p_charging_vector = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0,
0, 0}}, heartbeat_send_interval = 0, heartbeat_receive_timeout_ = 0, heartbeat_send_timeout_ = 0,
heartbeat_release_cause_ = 55, gateway_alarm_severity_ = 3, gateway_alarm_message_ = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x19c64c "Detected Gateway Failure"},
static _S_empty_rep_storage = {0, 0, 0, 0}}, restart_charging_ = false, charging_restart_svc_key_ = 0,
reply_to_options_heartbeat_ = false, dnsTime = 600, failedAddrTime = 300, nhpFilename = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x1a26c4 "/IN/service_packages/SCA/etc/rules.nhp"},
static _S_empty_rep_storage = {0, 0, 0, 0}}, inap_noa_called_party = 4 '\004', inap_noa_calling_party = 4 '\004',
inap_noa_redirecting_party = 4 '\004', inap_scr_ = 3 '\003', inap_pres_ = 0 '\0', inap_numplan_ = 1 '\001',
inap_inn_ = true, msc_address_str = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x1a2edc ""}, static _S_empty_rep_storage = {0, 0,
0, 0}}, msc_noa = 0, msc_plan = 0, use_tcp_ = false, tcp_addr_ = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x1af2c4 "0.0.0.0"}, static _S_empty_rep_storage = {
0, 0, 0, 0}}, tcp_port_ = 5060, use_udp_ = true, udp_addr_ = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x1a2cb4 "0.0.0.0"}, static _S_empty_rep_storage = {
0, 0, 0, 0}}, udp_port_ = 5060,
deviceList = {<_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {<_Vector_alloc_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >,true>> = {_M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}, <No data fields>}, <No data fields>},
poll_interval_ = 10, persistantConnections_ = true, timerConfig = {0, 10, 80, 320, 50, 2400}, multiplier = 64,
default_domain = {static npos = XXXXXXXXXX, _M_dataplus = {<allocator<char>> = {<No data fields>},
_M_p = 0x19c674 "xxx.xxxxx.xxx"}, static _S_empty_rep_storage = {0, 0, 0, 0}}, prack_support = false,
error_response_failover = false, send_100_trying = true, rfc_2543_support = false, txnIdIncludeHost_ = true,
translationBehaviour = {<_Vector_base<SCAConfig::TranslationBehaviour,std::allocator<SCAConfig::TranslationBehaviour> = {<_Vector_alloc_base<SCAConfig::TranslationBehaviour,std::allocator<SCAConfig::TranslationBehaviour>,true>> = {
_M_start = 0x19f190, _M_finish = 0x19f198,
_M_end_of_storage = 0x19f198}, <No data fields>}, <No data fields>}}, static initialised = true,
static scaConfig = <same as static member of an already seen type>,
static escConfig = <same as static member of an already seen type>, local_ip = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0, 0,
0}}, insert_plus = false, replace_plus = false, cdrs_enabled = false, tempDir = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0, 0,
0}}, finalDir = {static npos = XXXXXXXXXX, _M_dataplus = {<allocator<char>> = {<No data fields>},
_M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0, 0, 0}}, ageLimit = 0, sizeLimit = 0,
propagate_b_error = false, IN_timeout = 0, pAssertedIDUsed = false, noin_dropcall = false, hashEncodeChar = 0 '\0',
starEncodeChar = 0 '\0', do_load_balancing = false, invite_failover_only = false, replace_diversion_header = false,
update_method_behaviour = REJECT, call_id_alarm_severity_ = 0, call_id_alarm_message_ = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0, 0,
0}}, inactive_media_hold_ = false, rem_comm_passwd = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0, 0,
0}}, rem_comm_port = 0, allow_overlap_invite_ = false, b2bua_mode = false, media_behaviour = ALLOW_MEDIA,
strip_matched_prefix = false, etc_append_cdpn = false, always_trans_map = false, use_ALegCallID = false,
local_contact = false, call_init_use_reinvite = false, heartbeat_destination = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0, 0,
0}}, heartbeat_from_address = {static npos = XXXXXXXXXX, _M_dataplus = {<allocator<char>> = {<No data fields>},
_M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0, 0, 0}}, heartbeat_to_address = {
static npos = XXXXXXXXXX, _M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x195a74 ""},
static _S_empty_rep_storage = {0, 0, 0, 0}}, heartbeat_request_uri = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0, 0,
0}}, heartbeat_route = {static npos = XXXXXXXXXX, _M_dataplus = {<allocator<char>> = {<No data fields>},
_M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0, 0, 0}}, heartbeat_p_asserted_id = {
static npos = XXXXXXXXXX, _M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x195a74 ""},
static _S_empty_rep_storage = {0, 0, 0, 0}}, heartbeat_p_charging_vector = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0, 0,
0}}, heartbeat_send_interval = 0, heartbeat_receive_timeout_ = 0, heartbeat_send_timeout_ = 0,
heartbeat_release_cause_ = 0, gateway_alarm_severity_ = 0, gateway_alarm_message_ = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0, 0,
0}}, restart_charging_ = false, charging_restart_svc_key_ = 0, reply_to_options_heartbeat_ = false, dnsTime = 0,
failedAddrTime = 0, nhpFilename = {static npos = XXXXXXXXXX, _M_dataplus = {<allocator<char>> = {<No data fields>},
_M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0, 0, 0}}, inap_noa_called_party = 0 '\0',
inap_noa_calling_party = 0 '\0', inap_noa_redirecting_party = 0 '\0', inap_scr_ = 0 '\0', inap_pres_ = 0 '\0',
inap_numplan_ = 0 '\0', inap_inn_ = false, msc_address_str = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0, 0,
0}}, msc_noa = 0, msc_plan = 0, use_tcp_ = false, tcp_addr_ = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0, 0,
0}}, tcp_port_ = 0, use_udp_ = false, udp_addr_ = {static npos = XXXXXXXXXX,
_M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0, 0,
0}}, udp_port_ = 0,
deviceList = {<_Vector_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {<_Vector_alloc_base<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >,true>> = {_M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}, <No data fields>}, <No data fields>},
poll_interval_ = 0, persistantConnections_ = false, timerConfig = {0, 0, 0, 0, 0, 0}, multiplier = 0,
default_domain = {static npos = XXXXXXXXXX, _M_dataplus = {<allocator<char>> = {<No data fields>},
_M_p = 0x195a74 ""}, static _S_empty_rep_storage = {0, 0, 0, 0}}, prack_support = false,
error_response_failover = false, send_100_trying = false, rfc_2543_support = false, txnIdIncludeHost_ = false,
translationBehaviour = {<_Vector_base<SCAConfig::TranslationBehaviour,std::allocator<SCAConfig::TranslationBehaviour> >> = {<_Vector_alloc_base<SCAConfig::TranslationBehaviour,std::allocator<SCAConfig::TranslationBehaviour>,true>> = {
_M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}, <No data fields>}, <No data fields>}},
static esc = 0x1a3518, static running = true, static reread_config = false, static sca_initialised = true,
static remote_commander = 0x1c92f0}

More detailed information on backtracing a coredump can be found in this article :

How to Take a Backtrace with gdb (Doc ID 1368101.1)

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