[Home]

Summary:ASTERISK-24483: res_pjsip_pubsub.so, res_pjsip_refer.so: Assertion on un/re-load: mod.id == -1
Reporter:Tzafrir Cohen (tzafrir)Labels:pjsip
Date Opened:2014-11-03 01:17:47.000-0600Date Closed:2017-10-19 07:18:29
Priority:MajorRegression?
Status:Closed/CompleteComponents:Resources/res_pjsip_pubsub Resources/res_pjsip_refer
Versions:SVN 12.7.0 13.0.0 Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:Asterisk 13 SVN (427089). When I disable loading those modules (to avoid having other modules depend on them, and hence allow unloading), unload the module and then load it, I get:
{noformat}
*CLI> module load res_pjsip_refer.so
asterisk: ../src/pjsip-simple/evsub.c:416: pjsip_evsub_register_pkg: Assertion `mod_evsub.mod.id != -1' failed.
Aborted
{noformat}
With the pubsub module I need to try harder:
{noformat}
*CLI> module load res_pjsip_pubsub.so
Loaded res_pjsip_pubsub.so
*CLI> module unload res_pjsip_pubsub.so
Unloaded res_pjsip_pubsub.so
*CLI> module load res_pjsip_pubsub.so
asterisk: ../src/pjsip-simple/evsub.c:297: pjsip_evsub_init_module: Assertion `mod_evsub.mod.id == -1' failed.
Aborted
{noformat}
Original motivation (and hence the major priority) - on Debian packages built on the same system (note: using the same pjproject. However I recall having the same problem with the same Asterisk built vs. a much older pjproject) it crashes with the same error on startup if I don't disable loading those two modules.

Any idea where id is supposed to be set in the pjsip code?
Comments:By: Joshua C. Colp (jcolp) 2014-11-05 13:47:52.341-0600

PJSIP currently provides no way to remove the event subsystem from the stack instance without blowing away the entire instance and recreating it. We probably shouldn't allow it to be unloaded. The 'id' field is set on the module when it is registered as a module with PJSIP internally.

By: tootai (tootai) 2016-01-26 05:48:58.723-0600

I face this problem with res_pjsip_refer on a new 13.7.0 installation when launching Asterisk. The line noload => res_pjsip_refer.so in modules.conf  make the application starting well. Cli output is

Loading chan_pjsip.so.
 == Registered RTP glue 'PJSIP'
 == Registered channel type 'PJSIP' (PJSIP Channel Driver)
18:26:10.812 sip_endpoint.c !Module "mod-refer" registered
asterisk: ../src/pjsip-simple/evsub.c:417: pjsip_evsub_register_pkg: Assertion `mod_evsub.mod.id != -1' failed.

Daniel

By: tootai (tootai) 2016-01-26 06:54:16.156-0600

Forgot to say that pjproject version is 2.4.5 from pjproject.org

By: Friendly Automation (friendly-automation) 2017-10-19 07:18:30.803-0500

Change 6832 merged by Jenkins2:
res_pjsip_refer: Prevent unload except during shutdown.

[https://gerrit.asterisk.org/6832|https://gerrit.asterisk.org/6832]

By: Friendly Automation (friendly-automation) 2017-10-19 07:25:42.214-0500

Change 6830 merged by Joshua Colp:
res_pjsip_refer: Prevent unload except during shutdown.

[https://gerrit.asterisk.org/6830|https://gerrit.asterisk.org/6830]

By: Friendly Automation (friendly-automation) 2017-10-19 07:34:40.212-0500

Change 6831 merged by Joshua Colp:
res_pjsip_refer: Prevent unload except during shutdown.

[https://gerrit.asterisk.org/6831|https://gerrit.asterisk.org/6831]

By: Friendly Automation (friendly-automation) 2017-10-20 07:59:15.940-0500

Change 6835 merged by Jenkins2:
res_pjsip_pubsub: Prevent unload except during shutdown.

[https://gerrit.asterisk.org/6835|https://gerrit.asterisk.org/6835]

By: Friendly Automation (friendly-automation) 2017-10-20 08:11:38.505-0500

Change 6833 merged by Joshua Colp:
res_pjsip_pubsub: Prevent unload except during shutdown.

[https://gerrit.asterisk.org/6833|https://gerrit.asterisk.org/6833]

By: Friendly Automation (friendly-automation) 2017-10-20 08:41:05.879-0500

Change 6834 merged by Jenkins2:
res_pjsip_pubsub: Prevent unload except during shutdown.

[https://gerrit.asterisk.org/6834|https://gerrit.asterisk.org/6834]