summaryrefslogtreecommitdiff
path: root/pjsip
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2010-06-01 14:52:18 +0000
committerBenny Prijono <bennylp@teluu.com>2010-06-01 14:52:18 +0000
commit15b4b3cf34bffb91748fcafd0ebfe30a8de0330e (patch)
treefcb75846a3dcdb24ea0024b442758d984e575caf /pjsip
parent73d27ee642ce2afa8d691ae3a1907afd9df8c140 (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
Diffstat (limited to 'pjsip')
-rw-r--r--pjsip/src/pjsip/sip_transaction.c9
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;
}