diff options
author | Benny Prijono <bennylp@teluu.com> | 2010-06-01 14:52:18 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2010-06-01 14:52:18 +0000 |
commit | 15b4b3cf34bffb91748fcafd0ebfe30a8de0330e (patch) | |
tree | fcb75846a3dcdb24ea0024b442758d984e575caf | |
parent | 73d27ee642ce2afa8d691ae3a1907afd9df8c140 (diff) |
Fix #1090: Disable the "Bug in branch_param generator (i.e. not unique)" assertion. This also fixes the hang problem when building the app in Release mode (assertion disabled), because the transaction is destroyed without being unlocked, causing the subsequent transaction unlock to loop indefinitely.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3188 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r-- | pjsip/src/pjsip/sip_transaction.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/pjsip/src/pjsip/sip_transaction.c b/pjsip/src/pjsip/sip_transaction.c index 4b71dce6..8878aad0 100644 --- a/pjsip/src/pjsip/sip_transaction.c +++ b/pjsip/src/pjsip/sip_transaction.c @@ -557,7 +557,10 @@ static pj_status_t mod_tsx_layer_register_tsx( pjsip_transaction *tsx) NULL)) { pj_mutex_unlock(mod_tsx_layer.mutex); - PJ_LOG(2,(THIS_FILE, "Unable to register transaction (key exists)")); + PJ_LOG(2,(THIS_FILE, + "Unable to register %.*s transaction (key exists)", + (int)tsx->method.name.slen, + tsx->method.name.ptr)); return PJ_EEXISTS; } @@ -1273,6 +1276,7 @@ PJ_DEF(pj_status_t) pjsip_tsx_create_uac( pjsip_module *tsx_user, */ status = pjsip_get_request_dest(tdata, &dst_info); if (status != PJ_SUCCESS) { + unlock_tsx(tsx, &lck); tsx_destroy(tsx); return status; } @@ -1281,7 +1285,10 @@ PJ_DEF(pj_status_t) pjsip_tsx_create_uac( pjsip_module *tsx_user, /* Register transaction to hash table. */ status = mod_tsx_layer_register_tsx(tsx); if (status != PJ_SUCCESS) { + /* The assertion is removed by #1090: pj_assert(!"Bug in branch_param generator (i.e. not unique)"); + */ + unlock_tsx(tsx, &lck); tsx_destroy(tsx); return status; } |