Opened 7 years ago

Closed 7 years ago

#1467 closed defect (fixed)

Crash in destroying pjsua with an active call and sound device managed by app (thanks Thomas Martin for the report).

Reported by: nanang Owned by: bennylp
Priority: normal Milestone: release-2.0-rc
Component: pjsua-lib Version: trunk
Keywords: Cc:
Backport to 1.x milestone: Backported:

Description

Assertion (and sometimes access violations) when calling pjsua_destroy2(PJSUA_DESTROY_NO_NETWORK) in response to a network change (e.g. WiFi? to 3G or vice versa), if an incoming call happens to ring at that moment.

Assertion:

Assertion failed: (mutex->owner == pj_thread_this()),
function pj_mutex_unlock, file ../src/pj/os_core_unix.c, line 1256.

Crash callstack trace:

#0	0x00081410 in pjmedia_conf_get_connect_count ()
#1	0x00054dbe in check_snd_dev_idle ()
#2	0x00055f3a in pjsua_media_channel_deinit ()
#3	0x00057be8 in pjsua_media_subsys_destroy ()
#4	0x000510e4 in pjsua_destroy2 ()

Change History (3)

comment:1 Changed 7 years ago by nanang

  • Summary changed from Crash in destroying pjsua with an active call (thanks Thomas Martin for the report). to Crash in destroying pjsua with an active call and sound device managed by app (thanks Thomas Martin for the report).

comment:2 Changed 7 years ago by nanang

(In [3981]) Re #1467: fix sound device (opened/closed) status check in check_snd_dev_idle(), especially when sound device is managed by app (no_snd = PJ_TRUE). Note that pjsua_media_subsys_destroy() always close the sound device first, so check_snd_dev_idle() in pjsua_destroy() sequence should have been just a no-operation.

comment:3 Changed 7 years ago by nanang

  • Resolution set to fixed
  • Status changed from new to closed

The assertion is not reproducible, for now let's just assume this is a stray event which may be caused by other pjsua restart issues (e.g: #1470, #1471).

Note: See TracTickets for help on using tickets.