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-0600 | Date Closed: | 2012-10-04 15:33:47 | ||
Priority: | Major | Regression? | No | ||
Status: | Closed/Complete | Components: | General | ||
Versions: | 2.2.0.2 | Frequency of Occurrence | |||
Related Issues: |
| ||||
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 |