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

[shell] Fix darwin deadlock with 'server start' command. #12231

Merged
merged 1 commit into from
Nov 29, 2021

Conversation

turon
Copy link
Contributor

@turon turon commented Nov 24, 2021

Problem

KeyValueStore on Darwin can deadlock if Server::Init is called from _PostEvent.

Change overview

Use the private dispatch queue in PlatformManager rather than the main queue.

Testing

Local with chip-shell app.
CI.

@github-actions
Copy link

github-actions bot commented Nov 24, 2021

PR #12231: Size comparison from 1315dec to 98cf1ff

Full report (38 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
platform target config section 1315dec 98cf1ff change % change
efr32 lighting-app BRD4161A (read only) 757184 757184 0 0.0
(read/write) 119788 119788 0 0.0
.bss 117972 117972 0 0.0
.data 1816 1816 0 0.0
.text 757176 757176 0 0.0
BRD4161A+rpc (read only) 744644 744644 0 0.0
(read/write) 136416 136416 0 0.0
.bss 134476 134476 0 0.0
.data 1940 1940 0 0.0
.text 744636 744636 0 0.0
lock-app BRD4161A (read only) 733040 733040 0 0.0
(read/write) 117508 117508 0 0.0
.bss 115732 115732 0 0.0
.data 1772 1772 0 0.0
.text 733032 733032 0 0.0
window-app BRD4161A (read only) 736488 736488 0 0.0
(read/write) 117868 117868 0 0.0
.bss 116084 116084 0 0.0
.data 1780 1780 0 0.0
.text 736480 736480 0 0.0
esp32 all-clusters-app c3devkit (read only) 835374 835374 0 0.0
(read/write) 1224114 1224114 0 0.0
.dram0.bss 59240 59240 0 0.0
.dram0.data 14100 14100 0 0.0
.flash.rodata 165512 165512 0 0.0
.flash.text 835374 835374 0 0.0
.iram0.text 61394 61394 0 0.0
m5stack (read only) 906835 906835 0 0.0
(read/write) 423372 423372 0 0.0
.dram0.bss 64632 64632 0 0.0
.dram0.data 34072 34072 0 0.0
.flash.rodata 193388 193388 0 0.0
.flash.text 901451 901451 0 0.0
.iram0.text 122943 122943 0 0.0
k32w lighting-app k32w061+se05x+release (read/write) 718472 718472 0 0.0
.bss 78252 78252 0 0.0
.data 1952 1952 0 0.0
.text 632468 632468 0 0.0
lock-app k32w061+debug (read/write) 608764 608764 0 0.0
.bss 68692 68692 0 0.0
.data 1920 1920 0 0.0
.text 532352 532352 0 0.0
shell k32w061+debug (read/write) 674164 674164 0 0.0
.bss 79852 79852 0 0.0
.data 1888 1888 0 0.0
.text 586624 586624 0 0.0
linux all-clusters-app debug (read only) 1767145 1767145 0 0.0
(read/write) 131480 131480 0 0.0
.bss 60080 60080 0 0.0
.data 1170 1170 0 0.0
.data.rel.ro 64928 64928 0 0.0
.dynamic 592 592 0 0.0
.got 4112 4112 0 0.0
.init 27 27 0 0.0
.init_array 576 576 0 0.0
.rodata 138293 138293 0 0.0
.text 1490482 1490482 0 0.0
bridge-app debug+rpc (read only) 1342765 1342765 0 0.0
(read/write) 77824 77824 0 0.0
.bss 41712 41712 0 0.0
.data 1680 1680 0 0.0
.data.rel.ro 29384 29384 0 0.0
.dynamic 592 592 0 0.0
.got 3984 3984 0 0.0
.init 27 27 0 0.0
.init_array 424 424 0 0.0
.rodata 112924 112924 0 0.0
.text 1129749 1129749 0 0.0
chip-tool debug (read only) 6005013 6005013 0 0.0
(read/write) 199664 199664 0 0.0
.bss 40064 40064 0 0.0
.data 2384 2384 0 0.0
.data.rel.ro 151632 151632 0 0.0
.dynamic 592 592 0 0.0
.got 4456 4456 0 0.0
.init 27 27 0 0.0
.init_array 488 488 0 0.0
.rodata 283944 283944 0 0.0
.text 5332517 5332517 0 0.0
lighting-app debug+rpc (read only) 1615929 1615929 0 0.0
(read/write) 111072 111072 0 0.0
.bss 47408 47408 0 0.0
.data 1362 1362 0 0.0
.data.rel.ro 56976 56976 0 0.0
.dynamic 608 608 0 0.0
.got 4136 4136 0 0.0
.init 27 27 0 0.0
.init_array 552 552 0 0.0
.rodata 131217 131217 0 0.0
.text 1346994 1346994 0 0.0
ota-provider-app debug (read only) 1306817 1306817 0 0.0
(read/write) 76312 76312 0 0.0
.bss 44320 44320 0 0.0
.data 912 912 0 0.0
.data.rel.ro 25944 25944 0 0.0
.dynamic 592 592 0 0.0
.got 4048 4048 0 0.0
.init 27 27 0 0.0
.init_array 464 464 0 0.0
.rodata 114640 114640 0 0.0
.text 1091826 1091826 0 0.0
ota-requestor-app debug (read only) 1403353 1403353 0 0.0
(read/write) 80144 80144 0 0.0
.bss 46752 46752 0 0.0
.data 976 976 0 0.0
.data.rel.ro 27272 27272 0 0.0
.dynamic 592 592 0 0.0
.got 4032 4032 0 0.0
.init 27 27 0 0.0
.init_array 488 488 0 0.0
.rodata 126080 126080 0 0.0
.text 1174130 1174130 0 0.0
shell debug (read only) 820129 820129 0 0.0
(read/write) 66936 66936 0 0.0
.bss 23496 23496 0 0.0
.data 338 338 0 0.0
.data.rel.ro 38560 38560 0 0.0
.dynamic 592 592 0 0.0
.got 3560 3560 0 0.0
.init 27 27 0 0.0
.init_array 360 360 0 0.0
.rodata 78927 78927 0 0.0
.text 634514 634514 0 0.0
tv-app debug (read only) 1912529 1912529 0 0.0
(read/write) 320088 320088 0 0.0
.bss 250168 250168 0 0.0
.data 2880 2880 0 0.0
.data.rel.ro 61368 61368 0 0.0
.dynamic 592 592 0 0.0
.got 4432 4432 0 0.0
.init 27 27 0 0.0
.init_array 632 632 0 0.0
.rodata 159176 159176 0 0.0
.text 1605154 1605154 0 0.0
mbed all-clusters-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2294328 2294328 0 0.0
.bss 181788 181788 0 0.0
.data 5240 5240 0 0.0
.heap 849416 849416 0 0.0
.text 1256928 1256928 0 0.0
lighting-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2278352 2278352 0 0.0
.bss 172404 172404 0 0.0
.data 5600 5600 0 0.0
.heap 858440 858440 0 0.0
.text 1240952 1240952 0 0.0
lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2252672 2252672 0 0.0
.bss 171220 171220 0 0.0
.data 5584 5584 0 0.0
.heap 859640 859640 0 0.0
.text 1215272 1215272 0 0.0
pigweed-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 1139744 1139744 0 0.0
.bss 11752 11752 0 0.0
.data 4368 4368 0 0.0
.heap 1020328 1020328 0 0.0
.text 103128 103128 0 0.0
shell CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2050800 2050800 0 0.0
.bss 156424 156424 0 0.0
.data 4984 4984 0 0.0
.heap 875040 875040 0 0.0
.text 1013400 1013400 0 0.0
nrfconnect lighting-app nrf52840dk_nrf52840 (read/write) 871003 871003 0 0.0
bss 112632 112632 0 0.0
rodata 96516 96516 0 0.0
text 586212 586212 0 0.0
nrf52840dk_nrf52840+rpc (read/write) 833371 833371 0 0.0
bss 108984 108984 0 0.0
rodata 87700 87700 0 0.0
text 560380 560380 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 796046 796046 0 0.0
bss 114004 114004 0 0.0
rodata 91776 91776 0 0.0
text 515676 515676 0 0.0
lock-app nrf52840dk_nrf52840 (read/write) 843095 843095 0 0.0
bss 109664 109664 0 0.0
rodata 92520 92520 0 0.0
text 565456 565456 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 768398 768398 0 0.0
bss 111076 111076 0 0.0
rodata 87808 87808 0 0.0
text 495012 495012 0 0.0
pigweed-app nrf52840dk_nrf52840 (read/write) 497327 497327 0 0.0
bss 51824 51824 0 0.0
rodata 45780 45780 0 0.0
text 339436 339436 0 0.0
pump-app nrf52840dk_nrf52840 (read/write) 849227 849227 0 0.0
bss 109804 109804 0 0.0
rodata 94228 94228 0 0.0
text 569640 569640 0 0.0
pump-controller-app nrf52840dk_nrf52840 (read/write) 842819 842819 0 0.0
bss 109700 109700 0 0.0
rodata 92476 92476 0 0.0
text 565076 565076 0 0.0
shell nrf52840dk_nrf52840 (read/write) 778311 778311 0 0.0
bss 109168 109168 0 0.0
rodata 72996 72996 0 0.0
text 521532 521532 0 0.0
nrf5340dk_nrf5340_cpuapp (read/write) 693350 693350 0 0.0
bss 110152 110152 0 0.0
rodata 67640 67640 0 0.0
text 442140 442140 0 0.0
p6 all-clusters-app default (read/write) 2309824 2309824 0 0.0
.bss 114784 114784 0 0.0
.data 2544 2544 0 0.0
.heap 916016 916016 0 0.0
.text 1268088 1268088 0 0.0
lock-app default (read/write) 2221608 2221608 0 0.0
.bss 101080 101080 0 0.0
.data 2416 2416 0 0.0
.heap 929848 929848 0 0.0
.text 1179872 1179872 0 0.0
qpg lighting-app qpg6100+debug (read only) 498732 498732 0 0.0
(read/write) 114140 114140 0 0.0
.bss 50368 50368 0 0.0
.data 1020 1020 0 0.0
.text 493412 493412 0 0.0
lock-app qpg6100+debug (read only) 472636 472636 0 0.0
(read/write) 114144 114144 0 0.0
.bss 49240 49240 0 0.0
.data 976 976 0 0.0
.text 467316 467316 0 0.0
persistent-storage-app qpg6100+debug (read only) 105408 105408 0 0.0
(read/write) 114142 114142 0 0.0
.bss 8986 8986 0 0.0
.data 272 272 0 0.0
.text 100088 100088 0 0.0
telink lighting-app tlsr9518adk80d (read/write) 772402 772402 0 0.0
bss 79208 79208 0 0.0
noinit 37160 37160 0 0.0
text 536460 536460 0 0.0

@vivien-apple
Copy link
Contributor

@sagar-apple Do you have any opinion on this change ?

@andy31415 andy31415 merged commit 4bac98f into project-chip:master Nov 29, 2021
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.

6 participants