[OpenSER-Devel] [ openser-Bugs-1932524 ] dialog: improper dialog reference for DLGCB_WITHIN_RESPONSE
SourceForge.net
noreply at sourceforge.net
Fri Apr 4 11:24:52 CEST 2008
Bugs item #1932524, was opened at 2008-04-02 21:38
Message generated for change (Comment added) made by bogdan_iancu
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=743020&aid=1932524&group_id=139143
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: modules
Group: ver devel
Status: Open
>Resolution: Accepted
Priority: 5
Private: No
Submitted By: Ovidiu Sas (osas)
>Assigned to: Bogdan-Andrei Iancu (bogdan_iancu)
Summary: dialog: improper dialog reference for DLGCB_WITHIN_RESPONSE
Initial Comment:
If DLGCB_WITHIN_RESPONSE calback is activated, dialogs never goes into DLG_STATE_DELETED state. This is a result of an extra reference being performed on for ACK on dlg_onroute() method.
ACK is a special transaction without a response, and therefore the TMCB_RESPONSE_FWDED|TMCB_TRANS_DELETED callbacks should not be invoked for ACK.
The entire TMCB_RESPONSE_FWDED|TMCB_TRANS_DELETED claback registration block should be filtered out for ACK transactions:
dlg_handlers.c:dlg_onroute():
/* ref the dialog as registered into the transaction
* callback; unref will be done when the transaction
* will be destroied */
LM_INFO("ref_dlg( %p , '1' )\n", dlg);
ref_dlg( dlg , 1);
/* register callback for the replies of this request */
if ( d_tmb.register_tmcb( req, 0,
TMCB_RESPONSE_FWDED|TMCB_TRANS_DELETED,
dlg_seq_onreply, (void*)dlg)<0 ) {
LM_ERR("failed to register TMCB (2)\n");
unref_dlg( dlg , 1);
}
Something like this is fixing the problem:
dlg_handlers.c:dlg_onroute():
- if ( (dlg->cbs.types)&DLGCB_WITHIN_RESPONSE ) {
+ if ( (dlg->cbs.types)&DLGCB_WITHIN_RESPONSE &&
+ event!=DLG_EVENT_REQACK ) {
This is causing dialog leakage and some funny shm memory pollution (the server is not able to shutdown properly).
Regards,
Ovidiu Sas
----------------------------------------------------------------------
>Comment By: Bogdan-Andrei Iancu (bogdan_iancu)
Date: 2008-04-04 12:24
Message:
Logged In: YES
user_id=1275325
Originator: NO
Hi Ovidiu,
What you are saying is correct - I will do the fix.
Regards
Bogdan
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=743020&aid=1932524&group_id=139143
More information about the Devel
mailing list