[asterisk-bugs] [JIRA] (ASTERISK-24857) kqueue timer source fails on FreeBSD 10.x

Rusty Newton (JIRA) noreply at issues.asterisk.org
Fri Mar 13 16:32:34 CDT 2015


     [ https://issues.asterisk.org/jira/browse/ASTERISK-24857?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rusty Newton updated ASTERISK-24857:
------------------------------------

    Description: 
Using the kqueue timing source results in glitchy audio and failed calls.

[Edit by Rusty - adding your Reviewboard description info here for more "searchability"]

Reviewboard patch description:

{quote}
Update the kqueue timing module to conform to current timer API.

This fixes issues with using the kqueue timing source on Asterisk 13
on FreeBSD 10.

res_timing_kqueue.c:
	Remove support for kevent64().  The values used to support Asterisk
	timers fit within 32bits and so can be handled on all platforms via
	kevent().

	Provide debug logging for, but do not track, unacked events.  This
	matches the behavior of all other timer implementations.

	Implement continuous mode by triggering and leaving active, a user
	event.  This ensures that the file descriptor for the timer returns
	immediately from poll(), without placing the load of a high speed
	timer on the kernel.

	In kqueue_timer_get_max_rate(), don't overstate the capability of
	the timer.  On some platforms, UINT_MAX is greater than INTPTR_MAX,
	the largest integer type kqueue supports for timers.

	In kqueue_timer_get_event(), assume the caller woke up from poll()
	and just return the mode the timer is currently in.  This matches
	all other timer implementations.

	Adjust the test code now that unacked events are not tracked.
{quote}

Testing done:

{quote}
Asterisk 13.2.0 on FreeBSD 10-stable: "timing test", pjsip incoming/outgoing calls, voicemail prompts and recordings.  All of the above failed without these changes.
{quote}

  was:Using the kqueue timing source results in glitchy audio and failed calls.


> kqueue timer source fails on FreeBSD 10.x
> -----------------------------------------
>
>                 Key: ASTERISK-24857
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-24857
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Resources/res_timing_kqueue
>    Affects Versions: 13.2.0
>         Environment: FreeBSD 10-stable.
>            Reporter: Justin T. Gibbs
>
> Using the kqueue timing source results in glitchy audio and failed calls.
> [Edit by Rusty - adding your Reviewboard description info here for more "searchability"]
> Reviewboard patch description:
> {quote}
> Update the kqueue timing module to conform to current timer API.
> This fixes issues with using the kqueue timing source on Asterisk 13
> on FreeBSD 10.
> res_timing_kqueue.c:
> 	Remove support for kevent64().  The values used to support Asterisk
> 	timers fit within 32bits and so can be handled on all platforms via
> 	kevent().
> 	Provide debug logging for, but do not track, unacked events.  This
> 	matches the behavior of all other timer implementations.
> 	Implement continuous mode by triggering and leaving active, a user
> 	event.  This ensures that the file descriptor for the timer returns
> 	immediately from poll(), without placing the load of a high speed
> 	timer on the kernel.
> 	In kqueue_timer_get_max_rate(), don't overstate the capability of
> 	the timer.  On some platforms, UINT_MAX is greater than INTPTR_MAX,
> 	the largest integer type kqueue supports for timers.
> 	In kqueue_timer_get_event(), assume the caller woke up from poll()
> 	and just return the mode the timer is currently in.  This matches
> 	all other timer implementations.
> 	Adjust the test code now that unacked events are not tracked.
> {quote}
> Testing done:
> {quote}
> Asterisk 13.2.0 on FreeBSD 10-stable: "timing test", pjsip incoming/outgoing calls, voicemail prompts and recordings.  All of the above failed without these changes.
> {quote}



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list