Sorry, for seeing this one a bit late.

First of all the relevant problem is

(  15.152|   0.000) E: [pulseaudio] volume.c: Assertion
'pa_channels_valid(channels)' failed at pulse/volume.c:74, function
pa_cvolume_set(). Aborting.

Which basically means there is a volume level being set for an invalid
channel (simply a number which is out of range once passed to
pa_cvolume_set).

Looking into the code the function source_set_volume_cb in
src/modules/bluetooth/module-bluez5-device.c (line 961) calls
pa_cvolume_set and also sink_set_volume_cb (line 1187). Each gets called
for either when a source or sink is added to the device and the profile
being used is PA_BLUETOOTH_PROFILE_HEADSET_HEAD_UNIT. The sample_spec
struct being used to provide the channel is configured in
transport_config which is according to the log file attached in comment
#1 never called before the abort happens. The function transport_acquire
is called before and returns an error according to:

(  14.894|   0.000) D: [pulseaudio] module-bluez5-device.c: Acquiring transport 
/org/bluez/hci0/dev_44_5E_F3_B4_07_29/fd49
(  14.894|   0.000) I: [pulseaudio] backend-native.c: doing connect
(  15.151|   0.257) E: [pulseaudio] backend-native.c: connect(): Function not 
implemented

That the connect() syscall returns "Function no implemented" is
suspicious.

If we're going further in the log file we see

(  15.152|   0.000) D: [pulseaudio] backend-native.c: Transport
/org/bluez/hci0/dev_44_5E_F3_B4_07_29/fd49 available for profile
headset_head_unit

which happens inside src/modules/bluetooth/backend-native.c in function
profile_new_connection when we get called back from bluez if the HFP
profile you get connected with the remote side.

The next line is the interesting one:

(  15.152|   0.000) D: [pulseaudio] backend-native.c: RFCOMM << AT+VGS=8

This actually comes from set_speaker_gain in src/modules/bluetooth
/backend-native.c line 276 and is called by sink_set_volume_cb in
src/modules/bluetooth/module-bluez5-device.c (line 1187) which is called
subsequently from add_sink -> init_profile. As set_speaker_gain prints
out the string "RFCOMM << AT+VGS=8" AFTER it has the set volume in
sink_set_volume_cb the first call to pa_cvolume_set already happened and
went through without the assert in pa_cvolume_set failing for an
incorrect channel. The only left candidate then is source_set_volume_cb
but that one is using the same u->sample_spec.channels value as we used
before and it shouldn't have changed in between.

What somebody should now look into: Add pa_log_debug lines before and
after the actual pa_cvolume_set calls in src/modules/bluetooth/module-
bluez5-device.c so that we can verify which is actually causing the
abort. These should also print the value of u->sample_spec.channels.
With that we have at least the line which is causing the abort and can
then look into possible reasons why this is happening. I suspect the
order of a specific code flow has change slightly with the SCO-over-PCM
changes we did for Ubuntu Touch.

Also it would be great if someone who removed the patches can provide a
log file for pulseaudio in debug mode where the headset gets connected
and no abort occurs.

@Luke: Can you provide packages with the necessary changes so that
people expiring the abort can install these and provide new log files?

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to pulseaudio in Ubuntu.
https://bugs.launchpad.net/bugs/1574324

Title:
  pulseaudio crashes when connecting to bluetooth headphones (due to
  ubuntu changes?)

Status in pulseaudio package in Ubuntu:
  In Progress

Bug description:
  When I attempt to connect my Jaybird Bluebuds X to Ubuntu 16.04
  pulseaudio crashes, this does *NOT* happen with a Jambox which leads
  me to believe it's an intermittent problem with some hardware. This
  did not happen on Ubuntu 15.10 (which was an upgrade of 15.04).

  Ubuntu Release:

  Description:  Ubuntu 16.04 LTS
  Release:      16.04

  Pulseaudio Version:

  pulseaudio:
    Installed: 1:8.0-0ubuntu3
    Candidate: 1:8.0-0ubuntu3
    Version table:
   *** 1:8.0-0ubuntu3 500
          500 http://gb.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
          100 /var/lib/dpkg/status

  Device info:

  [bluetooth]# info 44:5E:F3:B4:07:29
  Device 44:5E:F3:B4:07:29
   Name: BlueBuds X
   Alias: BlueBuds X
   Class: 0x240404
   Icon: audio-card
   Paired: yes
   Trusted: yes
   Blocked: no
   Connected: no
   LegacyPairing: no
   UUID: Headset                   (00001108-0000-1000-8000-00805f9b34fb)
   UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
   UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
   UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
   UUID: Handsfree                 (0000111e-0000-1000-8000-00805f9b34fb)
   UUID: Unknown                   (000080ff-0000-1000-8000-00805f9b34fb)

  I have also attached a debug dump of Pulseaudio when attempting to
  connect to the headphones.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1574324/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to