Re: Apparent bluez 5.48 regression: Headphones fail to reconnect after suspend/resume

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I have bisected bluez between 5.47 (good) and 5.48 (bad) to find the
breaking commit for the headset reconnect issue.

Here are the results:

git bisect start
# bad: [0d1e3b9c5754022c779da129025d493a198d49cf] Release 5.48
git bisect bad 0d1e3b9c5754022c779da129025d493a198d49cf
# good: [d139fd866241fe0d99b5e430f937c8d6160cc7dd] Release 5.47
git bisect good d139fd866241fe0d99b5e430f937c8d6160cc7dd
# bad: [65aaf36f2a36895e4a351ac3fa1cb8da87d4589c] mesh: Correct length
test in agent.c:request_ascii
git bisect bad 65aaf36f2a36895e4a351ac3fa1cb8da87d4589c
# good: [c50a8a397d4abd994a9115230279d5fe922b4aa5] adapter: Add
btd_request_authorization_cable_configured()
git bisect good c50a8a397d4abd994a9115230279d5fe922b4aa5
# bad: [c133489d54cb6d28c3fd308557937acbc5245f5e] battery: Add BT SIG
reserved number used by Battery Service
git bisect bad c133489d54cb6d28c3fd308557937acbc5245f5e
# good: [e577e478e9cb1d1a22e63fd7d8fff07c471590de] gatt: Add
implementation of link option
git bisect good e577e478e9cb1d1a22e63fd7d8fff07c471590de
# bad: [5b9596dac4d0e25c5179be8643726a02c058b00a] advertising: Add
implementation of Duration and Timeout
git bisect bad 5b9596dac4d0e25c5179be8643726a02c058b00a
# bad: [f9a2b1f515c7f5dced80397f4ea891d6c372175d] client: Fix not
detecting advertising instance is no longer valid
git bisect bad f9a2b1f515c7f5dced80397f4ea891d6c372175d
# bad: [d6e9539e31c6bb5afd39ec6f09c518d232e6345d] doc/advertising-api:
Mark LEAdvertisingManager1 stable
git bisect bad d6e9539e31c6bb5afd39ec6f09c518d232e6345d
# good: [10760c91c234fe2bfedf924c9e61f31861c2dc72] gatt: Fix crash while
disconnecting ATT
git bisect good 10760c91c234fe2bfedf924c9e61f31861c2dc72
# first bad commit: [d6e9539e31c6bb5afd39ec6f09c518d232e6345d]
doc/advertising-api: Mark LEAdvertisingManager1 stable

For every step I ran the following script that compiles and install into
the system and then restarts the service, followed by modprobe btusb.
The order is important to simulate hotplug or a return from a suspended
system.

Steps:

1. Run compile script from
https://gist.github.com/PVince81/95d01439490355babd4c405d28a548dc
2. Enable bluetooth in Plasma 5 panel
3. Run bluetoothctl
4. Run "connect" command with headset's address
5. Wait for connect. If it connects, test changing the volume in Plasma
5 which will trigger a pop sound to confirm it works.

Looking at the commit in question I can't tell in what way it is related
to our headset issues. Maybe a bluez expert can help here ? :-)

Please let me know if I can help testing patches.

Cheers,

Vincent


On 02/01/2018 07:36 PM, Nathaniel McCallum wrote:
> I'm seeing this too. My headphones go through a connect/disconnect
> cycle a few times and then quit. Unpairing and repairing does make it
> work.
>
> On Tue, Jan 30, 2018 at 1:47 AM, Vincent Petry <pvince81@xxxxxxxxxxxxxx> wrote:
>> Hello,
>>
>> On 01/25/2018 07:43 PM, Luiz Augusto von Dentz wrote:
>>> Hi Vincent,
>>>
>>> On Thu, Jan 25, 2018 at 4:44 AM, Vincent Petry <pvince81@xxxxxxxxxxxxxx> wrote:
>>>> Hello,
>>>>
>>>> I just joined the mailing list so can't directly reply to old messages,
>>>> so sending with same title.
>>>>
>>>> I'm experiencing the same issue as Robert here
>>>> https://www.spinics.net/lists/linux-bluetooth/msg73824.html, happening
>>>> on the same laptop Dell XPS 13 but with different sub-model 9333, but on
>>>> openSUSE Tumbleweed.
>>>>
>>>> It looks like the bluez component is in a wrong state when either
>>>> loading btusb with modprobe later on or resuming from suspend. The
>>>> workaround is to restart the systemd bluetooth daemon. I suspect that
>>>> plugging in USB bluetooth dongles would also have the same issue but I
>>>> don't have one to test.
>>> Does the system have any controller after resume? Does bluetoothctl
>>> report any device at all?
>> After resume from suspend, bluetoothctl sees the controller, yes and it
>> does report my usual three devices from the saved list.
>>
>> When I tell it to connect to the headset (which is turned on), I can
>> hear the headset beep shortly which is the signal for connection, but
>> then it disconnects again:
>> Attempting to connect to E3:XX:XX:XX:XX:XX
>> [CHG] Device E3:XX:XX:XX:XX:XX Connected: yes
>> Failed to connect: org.bluez.Error.Failed
>> [CHG] Device E3:XX:XX:XX:XX:XX Connected: no
>>
>> If I tell it to connect to my bluetooth watch it stays connected.
>>
>> Now I wanted to try accessing characteristics but the command
>> "select-attribute" has gone missing ? I also tried "help gatt" as it
>> seems to be a submenu but it says "Too many argumnets". Possibly another
>> bug in bluez ? (I can send a separate email for this one if you want)
>>
>> Anyway, I have a Python script that uses Dbus and said Python script is
>> able to connect to my watch and talk to it even in this state.
>>
>> So the bluez 5.48 regression seems to be specifically with headsets and
>> also with scanning/discovering. I don't have any other device types to
>> test with.
>>
>> The workaround is to restart the bluetooth service and enable bluetooth
>> afterwards.
>>
>> Please make sure to look at
>> https://bugzilla.suse.com/show_bug.cgi?id=1076898 for logs I posted.
>>
>> If you guys cannot reproduce the first regression I could try and bisect
>> bluez locally to find the breaking change. For this I need to know how
>> to set up bluez on my system after compiling. Is there any guide about
>> this ? Should I tell it to overwrite the existing libs and reboot or is
>> restarting the bluetooth service sufficient to make it use the newly
>> installed version ?
>>
>> Thanks,
>>
>> Vincent
>>
>>>> It used to work correctly before the upgrade from 5.47 to 5.48.
>>>>
>>>> See my original report here for details:
>>>> https://bugzilla.suse.com/show_bug.cgi?id=1076898
>>>> Robert's report https://bugzilla.redhat.com/show_bug.cgi?id=1534857,
>>>> also confirmed by a third person.
>>>>
>>>> Please let us know if this is reproducible on your side or whether it's
>>>> an isolated case specific to our Dell hardware.
>>>>
>>>> Thanks,
>>>>
>>>> Vincent Petry
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
>>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux