gsd-rfkill-manager fails to receive rfkill event
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OEM Priority Project |
Confirmed
|
High
|
Unassigned | ||
gnome-settings-daemon (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Bionic |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Impact]
The default encoding for GIOChannel is UTF-8, but rfkill event is binary data. gsd-rfkill-manager will fail to receive rfkill event if rfkill-idx is larger than 127.
Settings will always shows Bluetooth is off after resume.
The solution is to set the encoding of GIOChannel as NULL (binary data).
[Test Case]
1) Enable the -proposed repository, and install new "gnome-
2) Reboot system
3) Run suspend/resume test more than 127 times and then check if BT settings still works well.
[Regression Potential]
Low. The default encoding for GIOChannel is wrong. Just set correct encoding to receive rfkill event.
---
The default encoding for GIOChannel is UTF-8, but rfkill event is binary data. If the value is invalid UTF-8, gsd-rfkill-manager will fail to receive rfkill event.
Steps: Run suspend/resume Test (> 127 times)
Failure Rate: 100%
In some platforms, bt will be re-probed after s3. If bt is re-probed, rfkill-idx will increase. And, 128 is the first invalid UTF-8
$ rfkill list
ID TYPE DEVICE SOFT HARD
1 wlan phy0 unblocked unblocked
128 bluetooth hci0 unblocked unblocked
Error Message:
gnome-settings-
gsd-rfkill[2062]: event_cb: 1 g_io_channel_
gsd-rfkill[2062]: g_io_channel_
gsd-rfkill[2062]: g_io_channel_
gsd-rfkill[2062]: event_cb: 1 read=8
gsd-rfkill[2062]: event_cb: 1 source-
gsd-rfkill[2062]: event_cb: 1 source-
gsd-rfkill[2062]: RFKILL event: idx 127 type 2 (BLUETOOTH) op 1 (DEL) soft 0 hard 0
gsd-rfkill[2062]: event_cb: 2 g_io_channel_
gsd-rfkill[2062]: event_cb: 2 read=0
gsd-rfkill[2062]: event_cb: 2 source-
gsd-rfkill[2062]: event_cb: g_list_length=1
gsd-rfkill[2062]: Removed Bluetooth rfkill with ID 127
gsd-rfkill[2062]: event_cb: 1 g_io_channel_
gsd-rfkill[2062]: event_cb: 1 read=0T
gsd-rfkill[2062]: event_cb: 1 source-
gsd-rfkill[2062]: event_cb: g_list_length=0
description: | updated |
Changed in oem-priority: | |
status: | New → Confirmed |
tags: | added: somerville |
Changed in oem-priority: | |
importance: | Undecided → High |
tags: |
added: verification-done removed: verification-needed |
tags: | added: oem-priority |
Have sent a merge request to GitLab and wait for approval. /gitlab. gnome.org/ GNOME/gnome- settings- daemon/ merge_requests/ 57
https:/