Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix the issue of BLE notification not being received from the device #13461

Merged
merged 1 commit into from
Jan 12, 2022

Conversation

dhrishi
Copy link
Contributor

@dhrishi dhrishi commented Jan 11, 2022

Fix the issue of BLE notification not being received from the device (BLE peripheral) to chiptool

Problem

When the console prints are reduced on ESP32 (change debug level from info to error only) the commissioning doesn't go through. Actually, it doesn't even begin. The BLE connection is done, GATT database discovery is done, first BLE write is received from chiptool, then the chiptool subscribes to a characteristic and then nothing happens. The chip-tool waits on receiving notification from the device and that never happens.

Debugged the problem to find out that, on the chip-tool side, handling notification callback is registered after the subscribe request is done. So, it misses the notification when sent very quickly (as the console logs are less) by the device. And the chip-tool thinks that the notification isn't received.

Change overview

  • Moved the code to register the notification callback before sending the subscribe request

Testing

  • Tested that with the change, the notification is received by chip-tool and commissioning completes successfully

@github-actions
Copy link

github-actions bot commented Jan 11, 2022

PR #13461: Size comparison from 5b5d6c1 to 0fdb848

Increases (1 build for linux)
platform target config section 5b5d6c1 0fdb848 change % change
linux chip-tool-ipv6only arm64 (read only) 7114060 7114092 32 0.0
.text 6026020 6026052 32 0.0
Full report (32 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 5b5d6c1 0fdb848 change % change
efr32 lighting-app BRD4161A (read only) 830240 830240 0 0.0
(read/write) 127300 127300 0 0.0
.bss 125420 125420 0 0.0
.data 1880 1880 0 0.0
.text 830232 830232 0 0.0
BRD4161A+rpc (read only) 817644 817644 0 0.0
(read/write) 143960 143960 0 0.0
.bss 141980 141980 0 0.0
.data 1980 1980 0 0.0
.text 817636 817636 0 0.0
window-app BRD4161A (read only) 804184 804184 0 0.0
(read/write) 126008 126008 0 0.0
.bss 124168 124168 0 0.0
.data 1836 1836 0 0.0
.text 804176 804176 0 0.0
esp32 all-clusters-app c3devkit (read only) 898316 898316 0 0.0
(read/write) 1316082 1316082 0 0.0
.dram0.bss 70168 70168 0 0.0
.dram0.data 14212 14212 0 0.0
.flash.rodata 178200 178200 0 0.0
.flash.text 898316 898316 0 0.0
.iram0.text 62056 62056 0 0.0
m5stack (read only) 959427 959427 0 0.0
(read/write) 448536 448536 0 0.0
.dram0.bss 74656 74656 0 0.0
.dram0.data 34064 34064 0 0.0
.flash.rodata 207688 207688 0 0.0
.flash.text 954043 954043 0 0.0
.iram0.text 123399 123399 0 0.0
k32w light k32w061+release (read/write) 656348 656348 0 0.0
.bss 76824 76824 0 0.0
.data 1852 1852 0 0.0
.text 571872 571872 0 0.0
lock k32w061+release (read/write) 660688 660688 0 0.0
.bss 77120 77120 0 0.0
.data 1872 1872 0 0.0
.text 575896 575896 0 0.0
linux chip-tool-ipv6only arm64 (read only) 7114060 7114092 32 0.0
(read/write) 327473 327473 0 0.0
.bss 54865 54865 0 0.0
.data 1096 1096 0 0.0
.data.rel.ro 209624 209624 0 0.0
.dynamic 560 560 0 0.0
.got 58208 58208 0 0.0
.init 24 24 0 0.0
.init_array 168 168 0 0.0
.rodata 390148 390148 0 0.0
.text 6026020 6026052 32 0.0
thermostat-no-ble arm64 (read only) 2037468 2037468 0 0.0
(read/write) 145505 145505 0 0.0
.bss 64737 64737 0 0.0
.data 880 880 0 0.0
.data.rel.ro 72912 72912 0 0.0
.dynamic 560 560 0 0.0
.got 4040 4040 0 0.0
.init 24 24 0 0.0
.init_array 304 304 0 0.0
.rodata 129276 129276 0 0.0
.text 1693888 1693888 0 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2348912 2348912 0 0.0
.bss 188876 188876 0 0.0
.data 5320 5320 0 0.0
.text 1311488 1311488 0 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2330560 2330560 0 0.0
.bss 180416 180416 0 0.0
.data 5552 5552 0 0.0
.text 1293160 1293160 0 0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2303784 2303784 0 0.0
.bss 179456 179456 0 0.0
.data 5544 5544 0 0.0
.text 1266384 1266384 0 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139712 1139712 0 0.0
.bss 11756 11756 0 0.0
.data 4368 4368 0 0.0
.text 103096 103096 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2054232 2054232 0 0.0
.bss 156876 156876 0 0.0
.data 4864 4864 0 0.0
.text 1016832 1016832 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 939279 939279 0 0.0
bss 119284 119284 0 0.0
rodata 108332 108332 0 0.0
text 634088 634088 0 0.0
nrf52840dk_nrf52840+rpc (read/write) 924747 924747 0 0.0
bss 116328 116328 0 0.0
rodata 100784 100784 0 0.0
text 629440 629440 0 0.0
nrf52840dongle_nrf52840 (read/write) 989939 989939 0 0.0
bss 122128 122128 0 0.0
rodata 113084 113084 0 0.0
text 666284 666284 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 849138 849138 0 0.0
bss 116072 116072 0 0.0
rodata 101508 101508 0 0.0
text 551008 551008 0 0.0
lock-app nrf52840dk_nrf52840 (read/write) 911551 911551 0 0.0
bss 118472 118472 0 0.0
rodata 103604 103604 0 0.0
text 612080 612080 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 821590 821590 0 0.0
bss 115288 115288 0 0.0
rodata 96832 96832 0 0.0
text 529040 529040 0 0.0
pigweed-app nrf52840dk_nrf52840 (read/write) 541835 541835 0 0.0
bss 52588 52588 0 0.0
rodata 50104 50104 0 0.0
text 376940 376940 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 912831 912831 0 0.0
bss 118232 118232 0 0.0
rodata 103820 103820 0 0.0
text 613340 613340 0 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 909631 909631 0 0.0
bss 118260 118260 0 0.0
rodata 103076 103076 0 0.0
text 610828 610828 0 0.0
shell nrf52840dk_nrf52840 (read/write) 798391 798391 0 0.0
bss 109776 109776 0 0.0
rodata 78284 78284 0 0.0
text 533832 533832 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 711206 711206 0 0.0
bss 107664 107664 0 0.0
rodata 72584 72584 0 0.0
text 451512 451512 0 0.0
p6 all-clusters-app default (read/write) 2403200 2403200 0 0.0
.bss 117148 117148 0 0.0
.data 2592 2592 0 0.0
.text 1361464 1361464 0 0.0
light-app default (read/write) 2325088 2325088 0 0.0
.bss 105728 105728 0 0.0
.data 2384 2384 0 0.0
.text 1283352 1283352 0 0.0
lock-app default (read/write) 2297320 2297320 0 0.0
.bss 104608 104608 0 0.0
.data 2344 2344 0 0.0
.text 1255584 1255584 0 0.0
qpg lighting-app qpg6105+debug (read only) 534060 534060 0 0.0
(read/write) 146940 146940 0 0.0
.bss 86672 86672 0 0.0
.data 1008 1008 0 0.0
.text 528740 528740 0 0.0
lock-app qpg6105+debug (read only) 505980 505980 0 0.0
(read/write) 146936 146936 0 0.0
.bss 85808 85808 0 0.0
.data 956 956 0 0.0
.text 500660 500660 0 0.0
persistent-storage-app qpg6105+debug (read only) 106448 106448 0 0.0
(read/write) 146938 146938 0 0.0
.bss 36146 36146 0 0.0
.data 288 288 0 0.0
.text 101128 101128 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 835878 835878 0 0.0
bss 86976 86976 0 0.0
noinit 37160 37160 0 0.0
text 583752 583752 0 0.0

src/platform/Linux/bluez/Helper.cpp Outdated Show resolved Hide resolved
@dhrishi dhrishi force-pushed the chiptool/fix_notifications branch from 0fdb848 to 70fa710 Compare January 12, 2022 03:53
@github-actions
Copy link

github-actions bot commented Jan 12, 2022

PR #13461: Size comparison from 6e7ad99 to 70fa710

Full report (27 builds for esp32, k32w, mbed, nrfconnect, p6, qpg, telink)
platform target config section 6e7ad99 70fa710 change % change
esp32 all-clusters-app c3devkit (read only) 896762 896762 0 0.0
(read/write) 1316074 1316074 0 0.0
.dram0.bss 70168 70168 0 0.0
.dram0.data 14212 14212 0 0.0
.flash.rodata 178192 178192 0 0.0
.flash.text 896762 896762 0 0.0
.iram0.text 62056 62056 0 0.0
m5stack (read only) 958023 958023 0 0.0
(read/write) 448528 448528 0 0.0
.dram0.bss 74656 74656 0 0.0
.dram0.data 34064 34064 0 0.0
.flash.rodata 207680 207680 0 0.0
.flash.text 952639 952639 0 0.0
.iram0.text 123399 123399 0 0.0
k32w light k32w061+release (read/write) 656644 656644 0 0.0
.bss 76824 76824 0 0.0
.data 1852 1852 0 0.0
.text 572168 572168 0 0.0
lock k32w061+release (read/write) 660980 660980 0 0.0
.bss 77120 77120 0 0.0
.data 1872 1872 0 0.0
.text 576188 576188 0 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2347392 2347392 0 0.0
.bss 188876 188876 0 0.0
.data 5320 5320 0 0.0
.text 1309968 1309968 0 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2330808 2330808 0 0.0
.bss 180416 180416 0 0.0
.data 5552 5552 0 0.0
.text 1293408 1293408 0 0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2304032 2304032 0 0.0
.bss 179456 179456 0 0.0
.data 5544 5544 0 0.0
.text 1266632 1266632 0 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139712 1139712 0 0.0
.bss 11756 11756 0 0.0
.data 4368 4368 0 0.0
.text 103096 103096 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2054232 2054232 0 0.0
.bss 156876 156876 0 0.0
.data 4864 4864 0 0.0
.text 1016832 1016832 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 939555 939555 0 0.0
bss 119284 119284 0 0.0
rodata 108448 108448 0 0.0
text 634256 634256 0 0.0
nrf52840dk_nrf52840+rpc (read/write) 925023 925023 0 0.0
bss 116328 116328 0 0.0
rodata 100900 100900 0 0.0
text 629608 629608 0 0.0
nrf52840dongle_nrf52840 (read/write) 990231 990231 0 0.0
bss 122128 122128 0 0.0
rodata 113200 113200 0 0.0
text 666452 666452 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 849414 849414 0 0.0
bss 116072 116072 0 0.0
rodata 101624 101624 0 0.0
text 551176 551176 0 0.0
lock-app nrf52840dk_nrf52840 (read/write) 911827 911827 0 0.0
bss 118472 118472 0 0.0
rodata 103720 103720 0 0.0
text 612248 612248 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 821866 821866 0 0.0
bss 115288 115288 0 0.0
rodata 96948 96948 0 0.0
text 529208 529208 0 0.0
pigweed-app nrf52840dk_nrf52840 (read/write) 541835 541835 0 0.0
bss 52588 52588 0 0.0
rodata 50104 50104 0 0.0
text 376940 376940 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 913123 913123 0 0.0
bss 118232 118232 0 0.0
rodata 103936 103936 0 0.0
text 613508 613508 0 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 909907 909907 0 0.0
bss 118260 118260 0 0.0
rodata 103192 103192 0 0.0
text 610996 610996 0 0.0
shell nrf52840dk_nrf52840 (read/write) 798439 798439 0 0.0
bss 109776 109776 0 0.0
rodata 78284 78284 0 0.0
text 533880 533880 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 711254 711254 0 0.0
bss 107664 107664 0 0.0
rodata 72584 72584 0 0.0
text 451560 451560 0 0.0
p6 all-clusters-app default (read/write) 2401448 2401448 0 0.0
.bss 117148 117148 0 0.0
.data 2592 2592 0 0.0
.text 1359712 1359712 0 0.0
light-app default (read/write) 2325392 2325392 0 0.0
.bss 105728 105728 0 0.0
.data 2384 2384 0 0.0
.text 1283656 1283656 0 0.0
lock-app default (read/write) 2297616 2297616 0 0.0
.bss 104608 104608 0 0.0
.data 2344 2344 0 0.0
.text 1255880 1255880 0 0.0
qpg lighting-app qpg6105+debug (read only) 534308 534308 0 0.0
(read/write) 146940 146940 0 0.0
.bss 86672 86672 0 0.0
.data 1008 1008 0 0.0
.text 528988 528988 0 0.0
lock-app qpg6105+debug (read only) 506228 506228 0 0.0
(read/write) 146936 146936 0 0.0
.bss 85808 85808 0 0.0
.data 956 956 0 0.0
.text 500908 500908 0 0.0
persistent-storage-app qpg6105+debug (read only) 106448 106448 0 0.0
(read/write) 146938 146938 0 0.0
.bss 36146 36146 0 0.0
.data 288 288 0 0.0
.text 101128 101128 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 836158 836158 0 0.0
bss 86976 86976 0 0.0
noinit 37160 37160 0 0.0
text 583910 583910 0 0.0

@dhrishi
Copy link
Contributor Author

dhrishi commented Jan 12, 2022

/rebase

@woody-apple woody-apple force-pushed the chiptool/fix_notifications branch from 70fa710 to d4dcf0a Compare January 12, 2022 05:34
@github-actions
Copy link

github-actions bot commented Jan 12, 2022

PR #13461: Size comparison from 96c6645 to d4dcf0a

Increases (1 build for linux)
platform target config section 96c6645 d4dcf0a change % change
linux chip-tool-ipv6only arm64 (read only) 7184588 7184636 48 0.0
.text 6062564 6062612 48 0.0
Full report (19 builds for efr32, k32w, linux, mbed, p6, qpg, telink)
platform target config section 96c6645 d4dcf0a change % change
efr32 lighting-app BRD4161A (read only) 830532 830532 0 0.0
(read/write) 127300 127300 0 0.0
.bss 125420 125420 0 0.0
.data 1880 1880 0 0.0
.text 830524 830524 0 0.0
BRD4161A+rpc (read only) 817936 817936 0 0.0
(read/write) 143964 143964 0 0.0
.bss 141980 141980 0 0.0
.data 1980 1980 0 0.0
.text 817928 817928 0 0.0
window-app BRD4161A (read only) 804476 804476 0 0.0
(read/write) 126004 126004 0 0.0
.bss 124168 124168 0 0.0
.data 1836 1836 0 0.0
.text 804468 804468 0 0.0
k32w light k32w061+release (read/write) 656644 656644 0 0.0
.bss 76824 76824 0 0.0
.data 1852 1852 0 0.0
.text 572168 572168 0 0.0
lock k32w061+release (read/write) 660980 660980 0 0.0
.bss 77120 77120 0 0.0
.data 1872 1872 0 0.0
.text 576188 576188 0 0.0
linux chip-tool-ipv6only arm64 (read only) 7184588 7184636 48 0.0
(read/write) 344625 344625 0 0.0
.bss 54865 54865 0 0.0
.data 1096 1096 0 0.0
.data.rel.ro 226744 226744 0 0.0
.dynamic 560 560 0 0.0
.got 58232 58232 0 0.0
.init 24 24 0 0.0
.init_array 168 168 0 0.0
.rodata 390852 390852 0 0.0
.text 6062564 6062612 48 0.0
thermostat-no-ble arm64 (read only) 2038540 2038540 0 0.0
(read/write) 145505 145505 0 0.0
.bss 64737 64737 0 0.0
.data 880 880 0 0.0
.data.rel.ro 72912 72912 0 0.0
.dynamic 560 560 0 0.0
.got 4040 4040 0 0.0
.init 24 24 0 0.0
.init_array 304 304 0 0.0
.rodata 129628 129628 0 0.0
.text 1694608 1694608 0 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2345776 2345776 0 0.0
.bss 188868 188868 0 0.0
.data 5320 5320 0 0.0
.text 1308352 1308352 0 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2330808 2330808 0 0.0
.bss 180416 180416 0 0.0
.data 5552 5552 0 0.0
.text 1293408 1293408 0 0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2304032 2304032 0 0.0
.bss 179456 179456 0 0.0
.data 5544 5544 0 0.0
.text 1266632 1266632 0 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139712 1139712 0 0.0
.bss 11756 11756 0 0.0
.data 4368 4368 0 0.0
.text 103096 103096 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2054232 2054232 0 0.0
.bss 156876 156876 0 0.0
.data 4864 4864 0 0.0
.text 1016832 1016832 0 0.0
p6 all-clusters-app default (read/write) 2399640 2399640 0 0.0
.bss 117140 117140 0 0.0
.data 2592 2592 0 0.0
.text 1357904 1357904 0 0.0
light-app default (read/write) 2325376 2325376 0 0.0
.bss 105728 105728 0 0.0
.data 2384 2384 0 0.0
.text 1283640 1283640 0 0.0
lock-app default (read/write) 2297600 2297600 0 0.0
.bss 104608 104608 0 0.0
.data 2344 2344 0 0.0
.text 1255864 1255864 0 0.0
qpg lighting-app qpg6105+debug (read only) 534308 534308 0 0.0
(read/write) 146940 146940 0 0.0
.bss 86672 86672 0 0.0
.data 1008 1008 0 0.0
.text 528988 528988 0 0.0
lock-app qpg6105+debug (read only) 506228 506228 0 0.0
(read/write) 146936 146936 0 0.0
.bss 85808 85808 0 0.0
.data 956 956 0 0.0
.text 500908 500908 0 0.0
persistent-storage-app qpg6105+debug (read only) 106448 106448 0 0.0
(read/write) 146938 146938 0 0.0
.bss 36146 36146 0 0.0
.data 288 288 0 0.0
.text 101128 101128 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 836102 836102 0 0.0
bss 86976 86976 0 0.0
noinit 37160 37160 0 0.0
text 583852 583852 0 0.0

@andy31415 andy31415 merged commit 124f590 into project-chip:master Jan 12, 2022
selissia pushed a commit to selissia/connectedhomeip that referenced this pull request Jan 28, 2022
step0035 pushed a commit to hank820/connectedhomeip that referenced this pull request Feb 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants