Kovács Bálint wrote:
Hello,

This IVR patch seems good for the memory leak, but I found a segmentation fault with a SIPp scenario. I wrote a simple IVR script, and run with 50 call/sec I got a segmentation fault after 59822 Call, 101424 Call, 47048 Call....


That somehow sounds like a race-condition while cleaning up the memory... This bug did probably not show up until now because we did not free that memory before.

Do you have some core dumps? It should be enough if you post the stack-trace as produced by GDB.

Thx for reporting!

-Raphael.


This is the scenario scheme:
----------------------------

INVITE ----------> 200 <---------- ACK ----------> BYE <---------- 200 ---------->
and the Python script:
----------------------

from log import *
from ivr import *

class IvrDialog(IvrDialogBase):
  announcement = None
  byeSent = False

  def onSipRequest(self, SipRequest):
     info("Sip request")

  def onSipReply(self, IvrSipReply):
     info("Sip reply")

     byeTerminatedCodes = (200, 408, 481)

if((IvrSipReply.code in byeTerminatedCodes) and (self.byeSent == True)):
        self.stopSession()

  def onSessionStart(self, hdrs):
     info("Running...")
     self.announcement = IvrAudioFile()
     self.announcement.open(config['announce'], ivr.AUDIO_READ, False)
     self.enqueue(self.announcement, None)
     self.setTimer(1, 3)

  def onTimer(self, timerId):
     if(timerId == 1):
        info("Timer")
        self.flush()

  def onDtmf(self, key, duration):
     info("DTMF")

  def onBye(self):
     info("Bye")
     self.stopSession()

  def onEmptyQueue(self):
     info("Empty queue")
     self.bye()
     self.byeSent = True
      def __del__(self):
     info("Del")

_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev

Reply via email to