-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi,
I derived a SEMS module from ann_B2B for ringtones I got a segmentation fault after a few calls.
It works like this:
Call comes in and a ringtone (e.g. sound files) is played. In parallel I call callee with connectCallee(). When Callee replies positive ringtone stops. When caller sends a Bye befor Callee replies I close the ringtone file, call setStopped() and dlg.bye().
My test is like this:
I place a call and get the ringtone. SEMS tries to connect to callee in parallel. Then I hang up (sending a Bye). SEMS stops ringtone and session with caller.
I do the test number of times until a segmentation fault occurs. SEMS logfile is like this, when test seems to be ok:
(7396) DEBUG: write_to_socket (AmUtils.cpp:616): write to unix socket: completed (7396) DEBUG: cacheMsg (AmCtrlInterface.cpp:186): recv-ed: <200 Succeeded> (7396) DEBUG: onBye (AnnounceB2B.cpp:139): @@@@ AnnounceCallerDialog::onBye() (7396) DEBUG: onBye (AnnounceB2B.cpp:149): @@@@ onBye: Callee is not connected. (7396) DEBUG: onBye (AnnounceB2B.cpp:150): @@@@ onBye: Stopping Ringtone ... (7396) DEBUG: close (AmRingToneGenerator.cpp:43): AmRingTone::close : Beende Ringtone (7396) DEBUG: bye (AmSipDialog.cpp:385): bye(): we are not connected (status=0). do nothing! (7396) DEBUG: relayEvent (AmB2BSession.cpp:163): AmB2BSession::relayEvent: id=24586875-4677A4390000B604-B77F5BB0 (7396) DEBUG: postEvent (AmEventQueue.cpp:48): AmEventQueue: trying to post event (7396) DEBUG: postEvent (AmEventQueue.cpp:56): AmEventQueue: event posted (7396) DEBUG: processEvents (AmEventQueue.cpp:71): event processed (7396) DEBUG: run (AmSession.cpp:301): 5f211c238834357fNTA0NmE0M2ZkM2Y4MTg0YmU4NjQzNTllM2Q1YzliZGE. dlg.getUACTransPending() = 0 (7396) DEBUG: destroy (AmSession.cpp:351): AmSession::destroy() (7396) DEBUG: stopAndQueue (AmSessionContainer.cpp:121): session cleaner about to stop 4B592026-4677A4390000B272-B7D356C0 (7396) DEBUG: stop (AmThread.cpp:144): Thread -1216390224 (-1216390224) calling on_stop, give it a chance to clean up. (7396) DEBUG: on_stop (AmSession.cpp:341): AmSession::on_stop() (7396) DEBUG: removeFromProcessor (AmMediaProcessor.cpp:135): AmMediaProcessor::removeSession (7396) DEBUG: removeFromProcessor (AmMediaProcessor.cpp:140): callgroup is '4B592026-4677A4390000B272-B7D356C0', thread 0 (7396) DEBUG: removeFromProcessor (AmMediaProcessor.cpp:155): callgroup empty, erasing it. (7396) DEBUG: postEvent (AmEventQueue.cpp:48): AmEventQueue: trying to post event (7396) DEBUG: postEvent (AmEventQueue.cpp:56): AmEventQueue: event posted (7396) DEBUG: stop (AmThread.cpp:159): Thread -1216390224 (-1216390224) finished detach. (7396) DEBUG: destroySession (AmSessionContainer.cpp:148): session stopped and queued for deletion (#sessions=1) (7396) DEBUG: run (AmSession.cpp:334): session is stopped. (7396) DEBUG: _start (AmThread.cpp:77): Thread -1216390224 is ending. (7396) DEBUG: processEvents (AmEventQueue.cpp:69): before processing event (7396) DEBUG: onOtherBye (AmB2BSession.cpp:173): onOtherBye() (7396) DEBUG: init (AmCtrlInterface.cpp:231): AmUnixCtrlInterface::init @ /tmp/6FA7E90A-4677A43E0005A3C6-B78F6BB0 (7396) DEBUG: write_to_socket (AmUtils.cpp:590): sending: <:t_uac_cancel:/tmp/6FA7E90A-4677A43E0005A3C6-B78F6BB0 06103761-4677A4390000B60A-B77F5BB0@212.6.123.119 10
(7396) DEBUG: write_to_socket (AmUtils.cpp:616): write to unix socket: completed (7396) DEBUG: cacheMsg (AmCtrlInterface.cpp:186): recv-ed: <200 uac_cancel succeeded> (7396) DEBUG: processEvents (AmEventQueue.cpp:71): event processed (7396) DEBUG: run (AmSession.cpp:301): 06103761-4677A4390000B60A-B77F5BB0@212.6.123.119 dlg.getUACTransPending() = 1 (7396) DEBUG: processEvents (AmEventQueue.cpp:69): before processing event (7396) DEBUG: gotoNextItem (AmPlaylist.cpp:62): posting AmAudioEvent::noAudio event! (7396) DEBUG: postEvent (AmEventQueue.cpp:48): AmEventQueue: trying to post event (7396) DEBUG: postEvent (AmEventQueue.cpp:56): AmEventQueue: event posted (7396) DEBUG: clearAudio (AmSession.cpp:418): Audio cleared !!! (7396) DEBUG: postEvent (AmEventQueue.cpp:48): AmEventQueue: trying to post event (7396) DEBUG: postEvent (AmEventQueue.cpp:56): AmEventQueue: event posted (7396) DEBUG: process (AmMediaProcessor.cpp:336): Session removed from the scheduler (7396) DEBUG: processEvents (AmEventQueue.cpp:71): event processed (7396) DEBUG: run (AmServer.cpp:93): revents = 1 (7396) DEBUG: cacheMsg (AmCtrlInterface.cpp:186): recv-ed: <487 Request Terminated
######################################################################################
This is the logfile, when a segmentation fault occured:
(7396) DEBUG: write_to_socket (AmUtils.cpp:616): write to unix socket: completed (7396) DEBUG: cacheMsg (AmCtrlInterface.cpp:186): recv-ed: <200 Succeeded> (7396) DEBUG: onBye (AnnounceB2B.cpp:139): @@@@ AnnounceCallerDialog::onBye() (7396) DEBUG: onBye (AnnounceB2B.cpp:149): @@@@ onBye: Callee is not connected. (7396) DEBUG: onBye (AnnounceB2B.cpp:150): @@@@ onBye: Stopping Ringtone ... (7396) DEBUG: close (AmRingToneGenerator.cpp:43): AmRingTone::close : Beende Ringtone (7396) DEBUG: bye (AmSipDialog.cpp:385): bye(): we are not connected (status=0). do nothing! (7396) DEBUG: relayEvent (AmB2BSession.cpp:163): AmB2BSession::relayEvent: id=6D8F12F3-4677A44A0003123F-B78F6BB0 (7396) DEBUG: postEvent (AmEventQueue.cpp:48): AmEventQueue: trying to post event (7396) DEBUG: postEvent (AmEventQueue.cpp:56): AmEventQueue: event posted (7396) DEBUG: processEvents (AmEventQueue.cpp:71): event processed (7396) DEBUG: run (AmSession.cpp:301): b349570a90498523NTA0NmE0M2ZkM2Y4MTg0YmU4NjQzNTllM2Q1YzliZGE. dlg.getUACTransPending() = 0 (7396) DEBUG: destroy (AmSession.cpp:351): AmSession::destroy() (7396) DEBUG: stopAndQueue (AmSessionContainer.cpp:121): session cleaner about to stop 100D78B4-4677A44A00030E24-B7D356C0 (7396) DEBUG: stop (AmThread.cpp:144): Thread -1215337552 (-1215337552) calling on_stop, give it a chance to clean up. (7396) DEBUG: on_stop (AmSession.cpp:341): AmSession::on_stop() (7396) DEBUG: removeFromProcessor (AmMediaProcessor.cpp:135): AmMediaProcessor::removeSession (7396) DEBUG: removeFromProcessor (AmMediaProcessor.cpp:140): callgroup is '100D78B4-4677A44A00030E24-B7D356C0', thread 0 (7396) DEBUG: removeFromProcessor (AmMediaProcessor.cpp:155): callgroup empty, erasing it. (7396) DEBUG: postEvent (AmEventQueue.cpp:48): AmEventQueue: trying to post event (7396) DEBUG: postEvent (AmEventQueue.cpp:56): AmEventQueue: event posted (7396) DEBUG: stop (AmThread.cpp:159): Thread -1215337552 (-1215337552) finished detach. (7396) DEBUG: destroySession (AmSessionContainer.cpp:148): session stopped and queued for deletion (#sessions=1) (7396) DEBUG: run (AmSession.cpp:334): session is stopped. (7396) DEBUG: _start (AmThread.cpp:77): Thread -1215337552 is ending. (7396) DEBUG: processEvents (AmEventQueue.cpp:69): before processing event (7396) DEBUG: onOtherBye (AmB2BSession.cpp:173): onOtherBye() (7396) DEBUG: init (AmCtrlInterface.cpp:231): AmUnixCtrlInterface::init @ /tmp/0B1C4E05-4677A456000C0056-B77F5BB0 (7396) DEBUG: write_to_socket (AmUtils.cpp:590): sending: <:t_uac_cancel:/tmp/0B1C4E05-4677A456000C0056-B77F5BB0 70C64043-4677A44A00031246-B78F6BB0@212.6.123.119 10
(7396) DEBUG: write_to_socket (AmUtils.cpp:616): write to unix socket: completed (7396) DEBUG: cacheMsg (AmCtrlInterface.cpp:186): recv-ed: <200 uac_cancel succeeded> (7396) DEBUG: processEvents (AmEventQueue.cpp:71): event processed (7396) DEBUG: run (AmSession.cpp:301): 70C64043-4677A44A00031246-B78F6BB0@212.6.123.119 dlg.getUACTransPending() = 1 Segmentation fault
It seems to me that there happens something in process handling of SEMS. I have no special process() function in my module
Any ideas?
regards helmut