missed INVITEs & memory leak

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

It depends on whether you're handling the request statefully or
statelessly. With the former, you'll not be notified about
retransmissions, that's by design.

Packet lost may also play some role, if you use UDP. Especially in
high load condition. Just because you saw the message being sent,
doesn't mean it reach the destination. Packet can even be dropped when
both sender and receiver are in the same host, depending on the OS.

When counting memory usage, bear in mind that transactions live for at
least 32 seconds, so these may show up as additional memory usage.

Also some components may do late allocations, these will also show up
as additional memory usage.

Best regards,
?Benny


On Tue, Oct 19, 2010 at 10:12 PM, Michael Pfeuffer <pfeufferm at gmail.com> wrote:
> ?Hi All,
>
> I'm working on a project using the simple pjsip interface. ?The basic
> function is to act as a redirect server. ?Everything works well until I get
> to about 250 CPS. ?At that point, I start getting timeouts for a few of the
> INVITEs, and the endpoint pool starts growing, specifically, the udp and ua
> pools:
>
> before:
> 10/19/10 08:55:13.134 17075:17077 sip_endpoint.c ?pjsip_endpt_dump()
> 10/19/10 08:55:13.134 17075:17077 sip_endpoint.c ?Dumping endpoint
> 0x8a44b6c:
> 10/19/10 08:55:13.134 17075:17077 ? ? ? cachpool ? Dumping caching pool:
> 10/19/10 08:55:13.134 17075:17077 ? ? ? cachpool ? ? Capacity=0,
> max_capacity=0, used_cnt=6
> 10/19/10 08:55:13.134 17075:17077 ? ? ? cachpool ? ?Dumping all active
> pools:
> 10/19/10 08:55:13.134 17075:17077 ? ? ? cachpool ? ? ? ?pept0x8a44b08:
> ?46564 of ? ?48096 (96%) used
> 10/19/10 08:55:13.134 17075:17077 ? ? ? cachpool ? ? ? ? udp0x8a50b50:
> ?760 of ? ? 1024 (74%) used
> 10/19/10 08:55:13.134 17075:17077 ? ? ? cachpool ? ? ? ? rtd0x8a50f60:
> 6976 of ? ?12096 (57%) used
> 10/19/10 08:55:13.134 17075:17077 ? ? ? cachpool ? ? ? ? ? ? tsxlayer:
> 4332 of ? ? 5120 (84%) used
> 10/19/10 08:55:13.134 17075:17077 ? ? ? cachpool ? ? ? ? ?ua0x8a552c0:
> 2320 of ? ? 3072 (75%) used
> 10/19/10 08:55:13.134 17075:17077 ? ? ? cachpool ? ? ? ? ? ? ? ?evsub:
> ?780 of ? ? 1024 (76%) used
> 10/19/10 08:55:13.134 17075:17077 ? ? ? cachpool ? ?Total ? ? 61732 of
> 70432 (87 %) used!
> 10/19/10 08:55:13.134 17075:17077 sip_endpoint.c ? Endpoint pool
> capacity=48096, used_size=46564
>
> after 1641 failed calls:
> 10/19/10 08:57:48.527 17075:17077 sip_endpoint.c ?pjsip_endpt_dump()
> 10/19/10 08:57:48.527 17075:17077 sip_endpoint.c ?Dumping endpoint
> 0x8a44b6c:
> 10/19/10 08:57:48.527 17075:17077 ? ? ? cachpool ? Dumping caching pool:
> 10/19/10 08:57:48.527 17075:17077 ? ? ? cachpool ? ? Capacity=0,
> max_capacity=0, used_cnt=6
> 10/19/10 08:57:48.527 17075:17077 ? ? ? cachpool ? ?Dumping all active
> pools:
> 10/19/10 08:57:48.527 17075:17077 ? ? ? cachpool ? ? ? ?pept0x8a44b08:
> ?46564 of ? ?48096 (96%) used
> 10/19/10 08:57:48.528 17075:17077 ? ? ? cachpool ? ? ? ? udp0x8a50b50:
> ?12100 of ? ?12800 (94%) used <-- grew
> 10/19/10 08:57:48.528 17075:17077 ? ? ? cachpool ? ? ? ? rtd0x8a50f60:
> 6976 of ? ?12096 (57%) used
> 10/19/10 08:57:48.528 17075:17077 ? ? ? cachpool ? ? ? ? ? ? tsxlayer:
> 4332 of ? ? 5120 (84%) used
> 10/19/10 08:57:48.528 17075:17077 ? ? ? cachpool ? ? ? ? ?ua0x8a552c0:
> ?27152 of ? ?28672 (94%) used <-- grew
> 10/19/10 08:57:48.528 17075:17077 ? ? ? cachpool ? ? ? ? ? ? ? ?evsub:
> ?780 of ? ? 1024 (76%) used
> 10/19/10 08:57:48.528 17075:17077 ? ? ? cachpool ? ?Total ? ? 97904 of
> ?107808 (90 %) used!
> 10/19/10 08:57:48.528 17075:17077 sip_endpoint.c ? Endpoint pool
> capacity=48096, used_size=46564
>
> A few more clues:
> 1) When the timeouts occur, I see the INVITE is retransmitted 4 times, but
> my application never receives notification.
> 2) The Call-ID of a missing INVITE never shows up in my application or the
> pjsip logs.
> 3) Other calls complete successfully during the time some are timing out.
> 4) Traffic is generated using SIPp.
> 5) The memory leak will grow to the point that the system becomes sluggish
> and all calls fail.
> 6) I'm using pjlb version 1.8, but have also verified this behavior with
> version 1.3.
> 7) This is a linux system.
> 8) I don't see anything that look like error messages or warnings in the
> pjsip log.
>
> My assumption is that the 1st INVITE has been passed to my on_rx_request()
> callback function, but something (race condition?) prevents it from being
> passed to my application. ?The library then ignores the retransmitted
> INVITEs because it thinks the first one is already being handled.
>
> Any suggestions for sorting this out would be greatly appreciated.
>
> Thanks,
> --Mike



[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux