[Home]

Summary:DAHLIN-00159: Native bridging from a span that isn't the master span can cause data corruption.
Reporter:Shaun Ruffell (sruffell)Labels:
Date Opened:2009-11-02 11:29:20.000-0600Date Closed:2012-10-04 15:33:47
Priority:MajorRegression?No
Status:Closed/CompleteComponents:General
Versions:2.2.0.2 Frequency of
Occurrence
Related
Issues:
is related toDAHLIN-15777 Audio problems in Meetme when DAHDI channel is Monitored
Environment:Attachments:
Description:If you configure two spans in your system, and setup a native bridge with the span that isn't the master, it's possible for repeated/missing "chunks" to appear in the bridged data stream.  This appears due to the master span processing taking place asynchronously with the audio received on the the span that you're actually interested in recording from.


****** STEPS TO REPRODUCE ******

Install a card in the system, load dahdi_dummy and configure it to use kernel timers then load the driver for the card in the system.  Use dahdi_monitor to record from the hardware span and look at the spectral plot of the recording.  You will see strong harmonics that aren't present when the master span isn't dahdi_dummy, but instead the board that you're recording from.
Comments:By: Shaun Ruffell (sruffell) 2011-01-18 11:45:54.000-0600

While looking at a recent regression, I think I (finally) saw the root cause of this issue.

When a span is in conference, the confin and confout structures are used to store up samples for the master span processing function and again for the real transmit function.  Currently DAHDI_CB_SIZE is set to 2, so only two milliseconds of data can be stored up.

If there are multiple spans, and the masterspan is *not* the span that you're in conference with it's possible to overflow the confin and confout buffers which results in duplicated samples being set out.

By: Digium Subversion (svnbot) 2011-02-02 13:28:43.000-0600

Repository: dahdi
Revision: 9729

U   linux/trunk/drivers/dahdi/dahdi-base.c

------------------------------------------------------------------------
r9729 | sruffell | 2011-02-02 13:28:41 -0600 (Wed, 02 Feb 2011) | 16 lines

dahdi: Analog spans do not have to be marked RUNNING to become master.

Fixes a regression introduced in r9611. Analog spans would never become
the master since the SPANSTART ioctl is not typically called on them,
and therefore they were never marked RUNNING.  The result could be audio
problems.

I'm marking this as related to issue 13205 since it's generally all
related to how should the drivers select which span is the master.  I
also mark as related to issue 16165 because the problems experienced are
a result of the same fundamental issue.

(issue DAHLIN-25)(issue DAHLIN-159)

Reported-and-Tested-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
Signed-off-by: Shaun Ruffell <sruffell@digium.com>
------------------------------------------------------------------------

http://svn.digium.com/view/dahdi?view=rev&revision=9729

By: Russ Meyerriecks (rmeyerriecks) 2012-10-04 15:33:47.271-0500

Patch applied to trunk
http://svnview.digium.com/svn/dahdi?view=revision&revision=10727