#776768 module-tunnel-sink: nothing plays back properly/playback stops/media player issues

Package:
pulseaudio
Source:
pulseaudio
Description:
PulseAudio sound server
Submitter:
Steven Presser
Date:
2015-02-01 14:30:06 UTC
Severity:
important
#776768#5
Date:
2015-02-01 14:19:47 UTC
From:
To:
Dear Maintainer,

I set up my home network to stream music to multiple rooms.  Upon starting to play music I noted that it would randomly (within 5 songs/~30minutes) stop playing.  In banshee the UI would be showing that the song immediately previous to the one it halted in was playing.  Additionally, both banshee & rhytmbox did not move the sliders indicating where in the song the playback was.  Other methods of playing music also exhibit problematic behavior.  Google play's online player does't move the trackbar, stutters, then skips to the next song.  Youtube shows the same trackbar not moving and does not display video, although sound plays.  It would appear this is present no matter the audio source.

I unfortunately have little to go on for this bug.  I have no experience debugging pulse and this behavior is too weird for me to even guess where to start.  My debugging consted of isolating the problem to tunneling sound.  In other words, after I observed the problem, I went back to using just my local speakers.  All problematic behavior disappeared.

pacmd dump:
### Configuration dump generated at Fri Jan 30 13:53:55 2015

load-module module-device-restore
load-module module-stream-restore
load-module module-card-restore
load-module module-augment-properties
load-module module-switch-on-port-available
load-module module-udev-detect
load-module module-alsa-card device_id="0" name="pci-0000_00_1b.0" card_name="alsa_card.pci-0000_00_1b.0" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes card_properties="module-udev-detect.discovered=1"
load-module module-bluetooth-policy
load-module module-bluetooth-discover
load-module module-bluez5-discover
load-module module-bluez4-discover
load-module module-native-protocol-unix
load-module module-tunnel-sink server=mordor.pressers.name
load-module module-combine-sink sink_name=all-apartment slaves=tunnel-sink.mordor.pressers.name,alsa_output.pci-0000_00_1b.0.analog-stereo
load-module module-default-device-restore
load-module module-rescue-streams
load-module module-always-sink
load-module module-intended-roles
load-module module-suspend-on-idle
load-module module-console-kit
load-module module-systemd-login
load-module module-position-event-sounds
load-module module-role-cork
load-module module-filter-heuristics
load-module module-filter-apply
load-module module-cli-protocol-unix
load-module module-bluez5-device path=/org/bluez/hci0/dev_88_C9_D0_84_87_DF
load-module module-loopback source="bluez_source.88_C9_D0_84_87_DF" source_dont_move="true" sink_input_properties="media.role=music"

set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo 0x947c
set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo no
suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo yes
set-sink-volume tunnel-sink.mordor.pressers.name 0xd1ec
set-sink-mute tunnel-sink.mordor.pressers.name no
suspend-sink tunnel-sink.mordor.pressers.name no
set-sink-volume all-apartment 0xee00
set-sink-mute all-apartment no
suspend-sink all-apartment yes

set-source-volume alsa_output.pci-0000_00_1b.0.analog-stereo.monitor 0x10000
set-source-mute alsa_output.pci-0000_00_1b.0.analog-stereo.monitor no
suspend-source alsa_output.pci-0000_00_1b.0.analog-stereo.monitor yes
set-source-volume alsa_input.pci-0000_00_1b.0.analog-stereo 0x2afb
set-source-mute alsa_input.pci-0000_00_1b.0.analog-stereo no
suspend-source alsa_input.pci-0000_00_1b.0.analog-stereo no
set-source-volume tunnel-sink.mordor.pressers.name.monitor 0x10000
set-source-mute tunnel-sink.mordor.pressers.name.monitor no
suspend-source tunnel-sink.mordor.pressers.name.monitor no
set-source-volume all-apartment.monitor 0x10000
set-source-mute all-apartment.monitor no
suspend-source all-apartment.monitor yes
set-source-volume bluez_source.88_C9_D0_84_87_DF 0x10000
set-source-mute bluez_source.88_C9_D0_84_87_DF no
suspend-source bluez_source.88_C9_D0_84_87_DF yes

set-card-profile alsa_card.pci-0000_00_1b.0 output:analog-stereo+input:analog-stereo
set-card-profile bluez_card.88_C9_D0_84_87_DF a2dp_source

set-default-sink tunnel-sink.mordor.pressers.name
set-default-source alsa_input.pci-0000_00_1b.0.analog-stereo

### EOF
3 sink(s) available.
    index: 0
	name: <alsa_output.pci-0000_00_1b.0.analog-stereo>
	driver: <module-alsa-card.c>
	flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY FLAT_VOLUME DYNAMIC_LATENCY
	state: SUSPENDED
	suspend cause: IDLE
	priority: 9959
	volume: front-left: 38012 /  58% / -14.19 dB,   front-right: 38012 /  58% / -14.19 dB
	        balance 0.00
	base volume: 65536 / 100% / 0.00 dB
	volume steps: 65537
	muted: no
	current latency: 0.00 ms
	max request: 0 KiB
	max rewind: 0 KiB
	monitor source: 0
	sample spec: s16le 2ch 44100Hz
	channel map: front-left,front-right
	             Stereo
	used by: 0
	linked by: 0
	configured latency: 0.00 ms; range is 0.50 .. 371.52 ms
	card: 0 <alsa_card.pci-0000_00_1b.0>
	module: 6
	properties:
		alsa.resolution_bits = "16"
		device.api = "alsa"
		device.class = "sound"
		alsa.class = "generic"
		alsa.subclass = "generic-mix"
		alsa.name = "ALC269VC Analog"
		alsa.id = "ALC269VC Analog"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.device = "0"
		alsa.card = "0"
		alsa.card_name = "HDA Intel PCH"
		alsa.long_card_name = "HDA Intel PCH at 0xf3a30000 irq 49"
		alsa.driver_name = "snd_hda_intel"
		device.bus_path = "pci-0000:00:1b.0"
		sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
		device.bus = "pci"
		device.vendor.id = "8086"
		device.vendor.name = "Intel Corporation"
		device.product.id = "1e20"
		device.product.name = "7 Series/C210 Series Chipset Family High Definition Audio Controller"
		device.form_factor = "internal"
		device.string = "front:0"
		device.buffering.buffer_size = "65536"
		device.buffering.fragment_size = "32768"
		device.access_mode = "mmap+timer"
		device.profile.name = "analog-stereo"
		device.profile.description = "Analog Stereo"
		device.description = "Built-in Audio Analog Stereo"
		alsa.mixer_name = "Realtek ALC269VC"
		alsa.components = "HDA:10ec0269,17aa21f6,00100203"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-pci"
	ports:
		analog-output: Analog Output (priority 9900, latency offset 0 usec, available: unknown)
			properties:

		analog-output-speaker: Speakers (priority 10000, latency offset 0 usec, available: unknown)
			properties:
				device.icon_name = "audio-speakers"
		analog-output-headphones: Headphones (priority 9000, latency offset 0 usec, available: no)
			properties:
				device.icon_name = "audio-headphones"
	active port: <analog-output-speaker>
  * index: 1
	name: <tunnel-sink.mordor.pressers.name>
	driver: <module-tunnel.c>
	flags: NETWORK HW_MUTE_CTRL HW_VOLUME_CTRL LATENCY
	state: RUNNING
	suspend cause:
	priority: 0
	volume: front-left: 53740 /  82%,   front-right: 53740 /  82%
	        balance 0.00
	base volume: 65536 / 100%
	volume steps: 65537
	muted: no
	current latency: 7457098.54 ms
	max request: 0 KiB
	max rewind: 0 KiB
	monitor source: 2
	sample spec: s16le 2ch 44100Hz
	channel map: front-left,front-right
	             Stereo
	used by: 1
	linked by: 2
	fixed latency: 250.00 ms
	module: 12
	properties:
		device.description = "Built-in Audio Analog Stereo on pulse@mordor"
		tunnel.remote.server = "mordor.pressers.name"
		device.icon_name = "audio-card"
		tunnel.remote_version = "29"
		tunnel.remote.user = "pulse"
		tunnel.remote.fqdn = "mordor"
		tunnel.remote.description = "Built-in Audio Analog Stereo"
    index: 2
	name: <all-apartment>
	driver: <module-combine-sink.c>
	flags: DECIBEL_VOLUME LATENCY FLAT_VOLUME
	state: SUSPENDED
	suspend cause: IDLE
	priority: 1000
	volume: front-left: 60928 /  93% / -1.90 dB,   front-right: 60928 /  93% / -1.90 dB
	        balance 0.00
	base volume: 65536 / 100% / 0.00 dB
	volume steps: 65537
	muted: no
	current latency: 0.00 ms
	max request: 34 KiB
	max rewind: 0 KiB
	monitor source: 3
	sample spec: s16le 2ch 44100Hz
	channel map: front-left,front-right
	             Stereo
	used by: 0
	linked by: 0
	fixed latency: 200.00 ms
	module: 13
	properties:
		device.class = "filter"
		combine.slaves = "tunnel-sink.mordor.pressers.name,alsa_output.pci-0000_00_1b.0.analog-stereo"
		device.description = "Simultaneous output to mordor.pressers.name, Built-in Audio Analog Stereo"
		device.icon_name = "audio-card"


As a final note, mordor (referenced in the configuration file) is a gentoo server running pulseaudio 5.0-r4 (stable).  As this is a sessionless server, it is running as a systemwide daemon.

mordor ~ # equery u pulseaudio
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for media-sound/pulseaudio-5.0-r4:
 U I
 + + X             : Build the X11 publish module to export PulseAudio
                     information through X11 protocol for clients to make use.
                     Don't enable this flag if you want to use a system wide
                     instance. If unsure, enable this flag.
 + + alsa          : Add support for media-libs/alsa-lib (Advanced Linux Sound
                     Architecture)
 + + asyncns       : Use libasyncns for asynchronous name resolution.
 - - avahi         : Add avahi/Zeroconf support
 - - bluetooth     : Enable Bluetooth Support
 + + caps          : Use Linux capabilities library to control privilege
 + + dbus          : Enable dbus support for anything that needs it (gpsd,
                     gnomemeeting, etc)
 - - doc           : Build the doxygen-described API documentation.
 - - equalizer     : Enable the equalizer module (requires sci-libs/fftw).
 + + gdbm          : Use sys-libs/gdbm to store PulseAudio databases.
                     Recommended for desktop usage. This flag causes the whole
                     package to be licensed under GPL-2 or later.
 + + glib          : Add support to dev-libs/glib-based mainloop for the
                     libpulse client library, to allow using libpulse on
                     glib-based programs.
 - - gnome         : Use GConf to store user preferences on streams and so on.
                     Don't enable this flag if you want to use a system wide
                     instance. If unsure, enable this flag.
 - - gtk           : Add support for x11-libs/gtk+ (The GIMP Toolkit)
 + + ipv6          : Add support for IP version 6
 - - jack          : Add support for the JACK Audio Connection Kit
 - - libsamplerate : Build with support for converting sample rates using
                     libsamplerate
 - - lirc          : Add support for lirc (Linux's Infra-Red Remote Control)
 + + orc           : Use dev-lang/orc for just-in-time optimization of array
                     operations
 - - qt4           : Add support for the Qt GUI/Application Toolkit version 4.x
 - - realtime      : (Restricted to >=media-sound/pulseaudio-0.9.21.2-r1)
                     Makes PulseAudio use RealtimeKit (sys-auth/rtkit) to get
                     real-time priority while running.
 + + ssl           : Use dev-libs/openssl to provide support for RAOP (AirPort)
                     streaming.
 + + system-wide   : (Restricted to >=media-sound/pulseaudio-0.9.21.1)
                     Allow preparation and installation of the system-wide init
                     script for PulseAudio. Since this support is only
                     supported for embedded situations, do not enable without
                     reading the upstream instructions at
http://pulseaudio.org/wiki/WhatIsWrongWithSystemMode .
 - - systemd       : Build with sys-apps/systemd support to replace standalone
                     ConsoleKit.
 + + tcpd          : Add support for TCP wrappers
 - - test          : Workaround to pull in packages needed to run with
                     FEATURES=test. Portage-2.1.2 handles this internally, so
                     don't set it in make.conf/package.use anymore
 + + udev          : Enable virtual/udev integration (device discovery, power
                     and storage device support, etc)
 + + webrtc-aec    : Uses the webrtc.org AudioProcessing library for enhancing
                     VoIP calls greatly in applications that support it by
                     performing acoustic echo cancellation, analog gain
                     control, noise suppression and other processing.
 - - xen           : Builds a special paravirtualized module for running in a
                     Xen guest.