fix the memory leak t3413 paging timer in MME_UE Context
This commit is contained in:
parent
ae6e747e52
commit
b704e94efa
|
@ -44,6 +44,13 @@ status_t tm_init(void)
|
|||
|
||||
status_t tm_final(void)
|
||||
{
|
||||
if (pool_size(&timer_pool) != pool_avail(&timer_pool))
|
||||
d_error("%d not freed in timer_pool[%d]",
|
||||
pool_size(&timer_pool) - pool_avail(&timer_pool),
|
||||
pool_size(&timer_pool));
|
||||
d_trace(9, "%d not freed in timer_pool[%d]\n",
|
||||
pool_size(&timer_pool) - pool_avail(&timer_pool),
|
||||
pool_size(&timer_pool));
|
||||
pool_final(&timer_pool);
|
||||
return CORE_OK;
|
||||
}
|
||||
|
|
|
@ -79,6 +79,26 @@ status_t context_read_file()
|
|||
return CORE_OK;
|
||||
}
|
||||
|
||||
status_t context_setup_trace_module()
|
||||
{
|
||||
int app = context_self()->logger.trace.app;
|
||||
|
||||
if (app)
|
||||
{
|
||||
extern int _mutex;
|
||||
d_trace_level(&_mutex, app);
|
||||
extern int _pkbuf;
|
||||
d_trace_level(&_pkbuf, app);
|
||||
extern int _timer;
|
||||
d_trace_level(&_timer, app);
|
||||
|
||||
extern int _context;
|
||||
d_trace_level(&_context, app);
|
||||
}
|
||||
|
||||
return CORE_OK;
|
||||
}
|
||||
|
||||
static status_t context_prepare()
|
||||
{
|
||||
self.logger.console = -1;
|
||||
|
|
|
@ -69,6 +69,7 @@ CORE_DECLARE(context_t*) context_self(void);
|
|||
|
||||
CORE_DECLARE(status_t) context_read_file(void);
|
||||
CORE_DECLARE(status_t) context_parse_config(void);
|
||||
CORE_DECLARE(status_t) context_setup_trace_module(void);
|
||||
|
||||
CORE_DECLARE(status_t) context_db_init(const char *db_uri);
|
||||
CORE_DECLARE(status_t) context_db_final(void);
|
||||
|
|
|
@ -33,6 +33,9 @@ status_t app_will_initialize(const char *config_path, const char *log_path)
|
|||
rv = context_parse_config();
|
||||
if (rv != CORE_OK) return rv;
|
||||
|
||||
rv = context_setup_trace_module();
|
||||
if (rv != CORE_OK) return rv;
|
||||
|
||||
app = context_self()->logger.trace.app;
|
||||
if (app)
|
||||
{
|
||||
|
|
|
@ -311,13 +311,6 @@ status_t hss_context_setup_trace_module()
|
|||
|
||||
if (app)
|
||||
{
|
||||
extern int _mutex;
|
||||
d_trace_level(&_mutex, app);
|
||||
extern int _pkbuf;
|
||||
d_trace_level(&_pkbuf, app);
|
||||
|
||||
extern int _context;
|
||||
d_trace_level(&_context, app);
|
||||
extern int _hss_context;
|
||||
d_trace_level(&_hss_context, app);
|
||||
}
|
||||
|
|
|
@ -1460,13 +1460,6 @@ status_t mme_context_setup_trace_module()
|
|||
|
||||
if (app)
|
||||
{
|
||||
extern int _mutex;
|
||||
d_trace_level(&_mutex, app);
|
||||
extern int _pkbuf;
|
||||
d_trace_level(&_pkbuf, app);
|
||||
|
||||
extern int _context;
|
||||
d_trace_level(&_context, app);
|
||||
extern int _mme_context;
|
||||
d_trace_level(&_mme_context, app);
|
||||
extern int _mme_sm;
|
||||
|
@ -1882,7 +1875,7 @@ status_t mme_ue_remove(mme_ue_t *mme_ue)
|
|||
/* Clear the saved PDN Connectivity Request */
|
||||
NAS_CLEAR_DATA(&mme_ue->pdn_connectivity_request);
|
||||
|
||||
/* Clear Paging info : t3413, last_paing_msg */
|
||||
/* Clear Paging info : stop t3413, last_paing_msg */
|
||||
CLEAR_PAGING_INFO(mme_ue);
|
||||
|
||||
/* Free UeRadioCapability */
|
||||
|
@ -1899,6 +1892,9 @@ status_t mme_ue_remove(mme_ue_t *mme_ue)
|
|||
/* Clear Transparent Container */
|
||||
S1AP_CLEAR_DATA(&mme_ue->container);
|
||||
|
||||
/* Delete All Timers */
|
||||
tm_delete(mme_ue->t3413);
|
||||
|
||||
mme_sess_remove_all(mme_ue);
|
||||
mme_pdn_remove_all(mme_ue);
|
||||
|
||||
|
|
|
@ -390,7 +390,7 @@ void s1ap_handle_initial_context_setup_failure(
|
|||
"nas_send_service_reject() failed");
|
||||
#endif
|
||||
|
||||
#if 1 /* Implicitly Detach */
|
||||
#if 1 /* Implicit Release */
|
||||
d_trace(5, " Implicit Release\n");
|
||||
rv = mme_ue_deassociate_enb_ue(enb_ue);
|
||||
d_assert(rv == CORE_OK,, "mme_ue_deassociate_enb_ue() failed");
|
||||
|
@ -398,7 +398,7 @@ void s1ap_handle_initial_context_setup_failure(
|
|||
rv = enb_ue_remove(enb_ue);
|
||||
d_assert(rv == CORE_OK,, "enb_ue_remove() failed");
|
||||
|
||||
#else /* Explicitly Detach */
|
||||
#else /* Explicit Release */
|
||||
|
||||
d_trace(5, " Explicit Release\n");
|
||||
#if 1 /* NAS Cause : Detach */
|
||||
|
|
|
@ -319,13 +319,6 @@ status_t pcrf_context_setup_trace_module()
|
|||
|
||||
if (app)
|
||||
{
|
||||
extern int _mutex;
|
||||
d_trace_level(&_mutex, app);
|
||||
extern int _pkbuf;
|
||||
d_trace_level(&_pkbuf, app);
|
||||
|
||||
extern int _context;
|
||||
d_trace_level(&_context, app);
|
||||
extern int _pcrf_context;
|
||||
d_trace_level(&_pcrf_context, app);
|
||||
}
|
||||
|
|
|
@ -863,13 +863,6 @@ status_t pgw_context_setup_trace_module()
|
|||
|
||||
if (app)
|
||||
{
|
||||
extern int _mutex;
|
||||
d_trace_level(&_mutex, app);
|
||||
extern int _pkbuf;
|
||||
d_trace_level(&_pkbuf, app);
|
||||
|
||||
extern int _context;
|
||||
d_trace_level(&_context, app);
|
||||
extern int _pgw_context;
|
||||
d_trace_level(&_pgw_context, app);
|
||||
}
|
||||
|
|
|
@ -461,13 +461,6 @@ status_t sgw_context_setup_trace_module()
|
|||
|
||||
if (app)
|
||||
{
|
||||
extern int _mutex;
|
||||
d_trace_level(&_mutex, app);
|
||||
extern int _pkbuf;
|
||||
d_trace_level(&_pkbuf, app);
|
||||
|
||||
extern int _context;
|
||||
d_trace_level(&_context, app);
|
||||
extern int _sgw_context;
|
||||
d_trace_level(&_sgw_context, app);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue