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 ThreadSanitizer failure in controller factory. #26824

Merged

Conversation

bzbarsky-apple
Copy link
Contributor

@bzbarsky-apple bzbarsky-apple commented May 25, 2023

The failure looks like this:

  WARNING: ThreadSanitizer: race on NSMutableArray (pid=11619)
    Read-only access of NSMutableArray at 0x7b0c0005f5b0 by thread T3:
      #0 -[__NSArrayM countByEnumeratingWithState:objects:count:] <null>:2 (CoreFoundation:x86_64+0x4a338)
      #1 -[MTRDeviceControllerFactory(InternalMethods) operationalInstanceAdded:] MTRDeviceControllerFactory.mm:855 (Matter:x86_64+0x1fd2a)
      #2 MTROperationalBrowser::OnBrowse(_DNSServiceRef_t*, unsigned int, unsigned int, int, char const*, char const*, char const*, void*) MTROperationalBrowser.mm:100 (Matter:x86_64+0x20ee63c)
      #3 handle_browse_response <null>:2 (libsystem_dnssd.dylib:x86_64+0x3733)
      #4 _dispatch_client_callout <null>:2 (libdispatch.dylib:x86_64+0x3316)

    Previous modifying access of NSMutableArray at 0x7b0c0005f5b0 by main thread:
      #0 -[__NSArrayM addObject:] <null>:2 (CoreFoundation:x86_64+0x2457a)
      #1 -[MTRDeviceControllerFactory createController] MTRDeviceControllerFactory.mm:719 (Matter:x86_64+0x1cee3)
      #2 -[MTRDeviceControllerFactory createControllerOnExistingFabric:error:] MTRDeviceControllerFactory.mm:534 (Matter:x86_64+0x19792)

The basic problem is that we are in the middle of adding an object to _controllers on the API consumer thread when on the Matter thread we get our browse notification.

The changes here don't aim to lock around all access to _controllers, but just to make sure that our mutations of it can't race with the access on the Matter thread. More coarse locking would need to be done very carefully, given the amount of dispath_sync to the Matter thread we have going on.

@github-actions
Copy link

github-actions bot commented May 25, 2023

PR #26824: Size comparison from 9f43988 to 57e27e5

Increases (12 builds for bl602, bl702, cc32xx, esp32, psoc6, telink)
platform target config section 9f43988 57e27e5 change % change
bl602 lighting-app bl602 (read/write) 1356486 1356494 8 0.0
.text 1036622 1036626 4 0.0
bl602+rpc .text 1067978 1067982 4 0.0
bl702 lighting-app bl702 .debug_info 42151514 42151515 1 0.0
.text 966824 966826 2 0.0
cc32xx lock CC3235SF_LAUNCHXL .debug_info 20535797 20535798 1 0.0
esp32 all-clusters-app m5stack (read/write) 492966 492970 4 0.0
.flash.rodata 241304 241308 4 0.0
psoc6 all-clusters cy8ckit_062s2_43012 .debug_info 28331846 28331847 1 0.0
lock cy8ckit_062s2_43012 .debug_info 23389071 23389072 1 0.0
telink all-clusters-app tlsr9518adk80d text 687222 687224 2 0.0
all-clusters-minimal-app tlsr9518adk80d text 649102 649104 2 0.0
lighting-app-shell tlsr9518adk80d text 720760 720762 2 0.0
thermostat tlsr9518adk80d text 598198 598200 2 0.0
window-covering tlsr9518adk80d text 593444 593446 2 0.0
Decreases (11 builds for efr32, esp32, psoc6, telink)
platform target config section 9f43988 57e27e5 change % change
efr32 lock-app BRD4161A+wf200 (read/write) 1068776 1068768 -8 -0.0
.text 892452 892444 -8 -0.0
esp32 all-clusters-app c3devkit (read only) 1054288 1054284 -4 -0.0
.flash.text 1054288 1054284 -4 -0.0
psoc6 light cy8ckit_062s2_43012 .debug_info 23224399 23224398 -1 -0.0
telink bridge-app tlsr9518adk80d (read/write) 924984 924976 -8 -0.0
text 638730 638728 -2 -0.0
contact-sensor-app tlsr9518adk80d (read/write) 856240 856232 -8 -0.0
text 581418 581416 -2 -0.0
lighting-app tlsr9518adk80d text 655724 655722 -2 -0.0
lighting-app-rpc tlsr9518adk80d text 700182 700178 -4 -0.0
lock-app tlsr9518adk80d text 610076 610074 -2 -0.0
pump-app tlsr9518adk80d (read/write) 862236 862228 -8 -0.0
text 587586 587584 -2 -0.0
pump-controller-app tlsr9518adk80d text 577708 577706 -2 -0.0
temperature-measurement-app tlsr9518adk80d text 573412 573410 -2 -0.0
Full report (58 builds for bl602, bl702, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
platform target config section 9f43988 57e27e5 change % change
bl602 lighting-app bl602 (read/write) 1356486 1356494 8 0.0
.bss 87886 87886 0 0.0
.data 9648 9648 0 0.0
.text 1036622 1036626 4 0.0
bl602+rpc (read/write) 1402762 1402762 0 0.0
.bss 95934 95934 0 0.0
.data 10040 10040 0 0.0
.text 1067978 1067982 4 0.0
bl702 lighting-app bl702 (read only) 3358 3358 0 0.0
(read/write) 1188271 1188271 0 0.0
.bleromro 6342 6342 0 0.0
.bleromrw 124 124 0 0.0
.boot2 328 328 0 0.0
.bss 67585 67585 0 0.0
.bss_psram 24656 24656 0 0.0
.comment 48 48 0 0.0
.data 3952 3952 0 0.0
.debug_abbrev 1555771 1555771 0 0.0
.debug_aranges 136024 136024 0 0.0
.debug_frame 500368 500368 0 0.0
.debug_info 42151514 42151515 1 0.0
.debug_line 5371030 5371030 0 0.0
.debug_loc 3496155 3496155 0 0.0
.debug_ranges 375656 375656 0 0.0
.debug_str 3837238 3837238 0 0.0
.hbn 536 536 0 0.0
.hbn_noinit 260 260 0 0.0
.init 342 342 0 0.0
.init_array 140 140 0 0.0
.psram 0 0 0 0.0
.riscv.attributes 47 47 0 0.0
.rodata 107168 107168 0 0.0
.rsvd 4 4 0 0.0
.sha_ocram 72 72 0 0.0
.shstrtab 304 304 0 0.0
.stack 2048 2048 0 0.0
.strtab 582392 582392 0 0.0
.symtab 175632 175632 0 0.0
.tcm_data 28 28 0 0.0
.tcmcode 3358 3358 0 0.0
.text 0 0 0 0.0
966824 966826 2 0.0
bl702+rpc (read only) 3358 3358 0 0.0
(read/write) 1277075 1277075 0 0.0
.bleromro 6342 6342 0 0.0
.bleromrw 124 124 0 0.0
.boot2 328 328 0 0.0
.bss 75633 75633 0 0.0
.bss_psram 25056 25056 0 0.0
.comment 48 48 0 0.0
.data 4504 4504 0 0.0
.debug_abbrev 1714754 1714754 0 0.0
.debug_aranges 144312 144312 0 0.0
.debug_frame 528380 528380 0 0.0
.debug_info 4707757 4707757 0 0.0
.debug_line 5786947 5786947 0 0.0
.debug_loc 3698987 3698987 0 0.0
.debug_ranges 401016 401016 0 0.0
.debug_str 4262755 4262755 0 0.0
.hbn 536 536 0 0.0
.hbn_noinit 260 260 0 0.0
.init 342 342 0 0.0
.init_array 156 156 0 0.0
.psram 0 0 0 0.0
.riscv.attributes 47 47 0 0.0
.rodata 121248 121248 0 0.0
.rsvd 4 4 0 0.0
.sha_ocram 72 72 0 0.0
.shstrtab 304 304 0 0.0
.stack 2048 2048 0 0.0
.strtab 643712 643712 0 0.0
.symtab 194128 194128 0 0.0
.tcm_data 28 28 0 0.0
.tcmcode 3358 3358 0 0.0
.text 0 0 0 0.0
1040212 1040212 0 0.0
cc32xx lock CC3235SF_LAUNCHXL (blank) 0 0 0 0.0
(read only) 605746 605746 0 0.0
(read/write) 204164 204164 0 0.0
.ARM.attributes 44 44 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 197576 197576 0 0.0
.comment 206 206 0 0.0
.data 1468 1468 0 0.0
.debug_abbrev 955088 955088 0 0.0
.debug_aranges 104344 104344 0 0.0
.debug_frame 353240 353240 0 0.0
.debug_info 20535797 20535798 1 0.0
.debug_line 2715071 2715071 0 0.0
.debug_line_str 513 513 0 0.0
.debug_loc 33340 33340 0 0.0
.debug_loclists 1532266 1532266 0 0.0
.debug_ranges 4984 4984 0 0.0
.debug_rnglists 96780 96780 0 0.0
.debug_str 3262257 3262257 0 0.0
.ramVecs 780 780 0 0.0
.resetVecs 64 64 0 0.0
.rodata 104378 104378 0 0.0
.shstrtab 265 265 0 0.0
.stack 2048 2048 0 0.0
.strtab 484213 484213 0 0.0
.symtab 287456 287456 0 0.0
.text 499244 499244 0 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 524595 524595 0 0.0
.app_xip_area 417389 417389 0 0.0
.bss 62184 62184 0 0.0
.data 712 712 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 529299 529299 0 0.0
.app_xip_area 416789 416789 0 0.0
.bss 67480 67480 0 0.0
.data 720 720 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor cyw930739m2evb_01 (read/write) 566307 566307 0 0.0
.app_xip_area 459861 459861 0 0.0
.bss 61472 61472 0 0.0
.data 668 668 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
switch cyw930739m2evb_01 (read/write) 531091 531091 0 0.0
.app_xip_area 422077 422077 0 0.0
.bss 63960 63960 0 0.0
.data 744 744 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A+rs9116 (read/write) 963996 963996 0 0.0
.bss 179680 179680 0 0.0
.data 2136 2136 0 0.0
.text 782160 782160 0 0.0
BRD4187C (read/write) 1000984 1000984 0 0.0
.bss 159412 159412 0 0.0
.data 2780 2780 0 0.0
.text 838772 838772 0 0.0
lock-app BRD4161A+wf200 (read/write) 1068776 1068768 -8 -0.0
.bss 174152 174152 0 0.0
.data 2152 2152 0 0.0
.text 892452 892444 -8 -0.0
window-app BRD4187C (read/write) 1076276 1076276 0 0.0
.bss 143884 143884 0 0.0
.data 2676 2676 0 0.0
.text 929696 929696 0 0.0
esp32 all-clusters-app c3devkit (read only) 1054288 1054284 -4 -0.0
(read/write) 1583800 1583800 0 0.0
.dram0.bss 77192 77192 0 0.0
.dram0.data 13964 13964 0 0.0
.flash.rodata 213504 213504 0 0.0
.flash.text 1054288 1054284 -4 -0.0
.iram0.text 76538 76538 0 0.0
m5stack (read only) 1101779 1101779 0 0.0
(read/write) 492966 492970 4 0.0
.dram0.bss 82208 82208 0 0.0
.dram0.data 34300 34300 0 0.0
.flash.rodata 241304 241308 4 0.0
.flash.text 1096395 1096395 0 0.0
.iram0.text 126055 126055 0 0.0
k32w contact k32w0+release (read only) 583676 583676 0 0.0
(read/write) 82704 82704 0 0.0
.bss 65888 65888 0 0.0
.data 2192 2192 0 0.0
.text 583140 583140 0 0.0
light k32w0+release (read only) 582620 582620 0 0.0
(read/write) 82356 82356 0 0.0
.bss 65552 65552 0 0.0
.data 2180 2180 0 0.0
.text 582084 582084 0 0.0
lock k32w0+release (read only) 556108 556108 0 0.0
(read/write) 80352 80352 0 0.0
.bss 63624 63624 0 0.0
.data 2104 2104 0 0.0
.text 555572 555572 0 0.0
linux all-clusters-app debug (read only) 3149453 3149453 0 0.0
(read/write) 152904 152904 0 0.0
.bss 60224 60224 0 0.0
.data 2160 2160 0 0.0
.data.rel.ro 84016 84016 0 0.0
.dynamic 608 608 0 0.0
.got 4728 4728 0 0.0
.init 27 27 0 0.0
.init_array 1120 1120 0 0.0
.rodata 231016 231016 0 0.0
.text 2732341 2732341 0 0.0
all-clusters-minimal-app debug (read only) 2957397 2957397 0 0.0
(read/write) 145792 145792 0 0.0
.bss 59328 59328 0 0.0
.data 2128 2128 0 0.0
.data.rel.ro 77936 77936 0 0.0
.dynamic 608 608 0 0.0
.got 4664 4664 0 0.0
.init 27 27 0 0.0
.init_array 1080 1080 0 0.0
.rodata 224296 224296 0 0.0
.text 2550661 2550661 0 0.0
bridge-app debug (read only) 2517549 2517549 0 0.0
(read/write) 129648 129648 0 0.0
.bss 50232 50232 0 0.0
.data 3824 3824 0 0.0
.data.rel.ro 69608 69608 0 0.0
.dynamic 608 608 0 0.0
.got 4568 4568 0 0.0
.init 27 27 0 0.0
.init_array 784 784 0 0.0
.rodata 173224 173224 0 0.0
.text 2172005 2172005 0 0.0
chip-tool debug (read only) 13688001 13688001 0 0.0
(read/write) 676552 676552 0 0.0
.bss 26424 26424 0 0.0
.data 3042 3042 0 0.0
.data.rel.ro 640296 640296 0 0.0
.dynamic 608 608 0 0.0
.got 5360 5360 0 0.0
.init 27 27 0 0.0
.init_array 776 776 0 0.0
.rodata 660205 660205 0 0.0
.text 11456692 11456692 0 0.0
chip-tool-ipv6only arm64 (read only) 12863132 12863132 0 0.0
(read/write) 728440 728440 0 0.0
.bss 34392 34392 0 0.0
.data 3008 3008 0 0.0
.data.rel.ro 669872 669872 0 0.0
.dynamic 560 560 0 0.0
.got 15952 15952 0 0.0
.init 24 24 0 0.0
.init_array 216 216 0 0.0
.rodata 602000 602000 0 0.0
.text 10533364 10533364 0 0.0
dynamic-bridge-app-ipv6only debug (read only) 2581197 2581197 0 0.0
(read/write) 126840 126840 0 0.0
.bss 47544 47544 0 0.0
.data 2864 2864 0 0.0
.data.rel.ro 70192 70192 0 0.0
.dynamic 624 624 0 0.0
.got 4800 4800 0 0.0
.init 27 27 0 0.0
.init_array 792 792 0 0.0
.rodata 175944 175944 0 0.0
.text 2227893 2227893 0 0.0
lighting-app debug+rpc+ui (read only) 3245433 3245433 0 0.0
(read/write) 132272 132272 0 0.0
.bss 48032 48032 0 0.0
.data 2704 2704 0 0.0
.data.rel.ro 74736 74736 0 0.0
.dynamic 656 656 0 0.0
.got 5240 5240 0 0.0
.init 27 27 0 0.0
.init_array 872 872 0 0.0
.rodata 284628 284628 0 0.0
.text 2769010 2769010 0 0.0
lock-app debug (read only) 2657781 2657781 0 0.0
(read/write) 123624 123624 0 0.0
.bss 45952 45952 0 0.0
.data 1904 1904 0 0.0
.data.rel.ro 69648 69648 0 0.0
.dynamic 608 608 0 0.0
.got 4648 4648 0 0.0
.init 27 27 0 0.0
.init_array 832 832 0 0.0
.rodata 206280 206280 0 0.0
.text 2278805 2278805 0 0.0
ota-provider-app debug (read only) 2209629 2209629 0 0.0
(read/write) 103672 103672 0 0.0
.bss 44528 44528 0 0.0
.data 2112 2112 0 0.0
.data.rel.ro 51944 51944 0 0.0
.dynamic 608 608 0 0.0
.got 3800 3800 0 0.0
.init 27 27 0 0.0
.init_array 672 672 0 0.0
.rodata 154376 154376 0 0.0
.text 1913733 1913733 0 0.0
ota-requestor-app debug (read only) 2376661 2376661 0 0.0
(read/write) 111464 111464 0 0.0
.bss 46960 46960 0 0.0
.data 2512 2512 0 0.0
.data.rel.ro 56800 56800 0 0.0
.dynamic 608 608 0 0.0
.got 3784 3784 0 0.0
.init 27 27 0 0.0
.init_array 752 752 0 0.0
.rodata 158440 158440 0 0.0
.text 2067829 2067829 0 0.0
shell debug (read only) 2686025 2686025 0 0.0
(read/write) 141328 141328 0 0.0
.bss 59176 59176 0 0.0
.data 1232 1232 0 0.0
.data.rel.ro 75080 75080 0 0.0
.dynamic 608 608 0 0.0
.got 4128 4128 0 0.0
.init 27 27 0 0.0
.init_array 1056 1056 0 0.0
.rodata 199538 199538 0 0.0
.text 2324322 2324322 0 0.0
thermostat-no-ble arm64 (read only) 2523660 2523660 0 0.0
(read/write) 142552 142552 0 0.0
.bss 53496 53496 0 0.0
.data 1784 1784 0 0.0
.data.rel.ro 77792 77792 0 0.0
.dynamic 560 560 0 0.0
.got 5432 5432 0 0.0
.init 24 24 0 0.0
.init_array 392 392 0 0.0
.rodata 129376 129376 0 0.0
.text 2130692 2130692 0 0.0
tv-app debug (read only) 3313841 3313841 0 0.0
(read/write) 261544 261544 0 0.0
.bss 171264 171264 0 0.0
.data 4080 4080 0 0.0
.data.rel.ro 79480 79480 0 0.0
.dynamic 608 608 0 0.0
.got 5000 5000 0 0.0
.init 27 27 0 0.0
.init_array 1088 1088 0 0.0
.rodata 222648 222648 0 0.0
.text 2895010 2895010 0 0.0
tv-casting-app debug (read only) 7415193 7415193 0 0.0
(read/write) 195280 195280 0 0.0
.bss 52096 52096 0 0.0
.data 1744 1744 0 0.0
.data.rel.ro 134872 134872 0 0.0
.dynamic 608 608 0 0.0
.got 4920 4920 0 0.0
.init 27 27 0 0.0
.init_array 1000 1000 0 0.0
.rodata 317836 317836 0 0.0
.text 6728498 6728498 0 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2495368 2495368 0 0.0
.bss 216304 216304 0 0.0
.data 5144 5144 0 0.0
.text 1458052 1458052 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1178080 1178080 0 0.0
bss 155621 155621 0 0.0
rodata 133072 133072 0 0.0
text 808680 808680 0 0.0
nrf7002dk_nrf5340_cpuapp (read only) 4 4 0 0.0
(read/write) 1437808 1437808 0 0.0
bss 135361 135361 0 0.0
rodata 229088 229088 0 0.0
text 779276 779276 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1124300 1124300 0 0.0
bss 154773 154773 0 0.0
rodata 109836 109836 0 0.0
text 778980 778980 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 (read only) 840616 840616 0 0.0
(read/write) 1709204 1709204 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 190164 190164 0 0.0
.comment 212 212 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2560 2560 0 0.0
.debug_abbrev 1286148 1286148 0 0.0
.debug_aranges 131752 131752 0 0.0
.debug_frame 438004 438004 0 0.0
.debug_info 28331846 28331847 1 0.0
.debug_line 3814223 3814223 0 0.0
.debug_line_str 957 957 0 0.0
.debug_loclists 2066593 2066593 0 0.0
.debug_rnglists 130769 130769 0 0.0
.debug_str 3774484 3774484 0 0.0
.heap 840616 840616 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 296 296 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 720359 720359 0 0.0
.symtab 467904 467904 0 0.0
.text 0 0 0 0.0
1508092 1508092 0 0.0
.zero.table 8 8 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 (read only) 841424 841424 0 0.0
(read/write) 1650268 1650268 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 189364 189364 0 0.0
.comment 212 212 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2552 2552 0 0.0
.debug_abbrev 1275887 1275887 0 0.0
.debug_aranges 131000 131000 0 0.0
.debug_frame 440444 440444 0 0.0
.debug_info 27951407 27951407 0 0.0
.debug_line 3827423 3827423 0 0.0
.debug_line_str 981 981 0 0.0
.debug_loclists 2057505 2057505 0 0.0
.debug_rnglists 129718 129718 0 0.0
.debug_str 3763243 3763243 0 0.0
.heap 841424 841424 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 296 296 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 676726 676726 0 0.0
.symtab 452352 452352 0 0.0
.text 1449964 1449964 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
light cy8ckit_062s2_43012 (read only) 849736 849736 0 0.0
(read/write) 1571276 1571276 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 181220 181220 0 0.0
.comment 212 212 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2384 2384 0 0.0
.debug_abbrev 1108717 1108717 0 0.0
.debug_aranges 121032 121032 0 0.0
.debug_frame 403276 403276 0 0.0
.debug_info 23224399 23224398 -1 -0.0
.debug_line 3388513 3388513 0 0.0
.debug_line_str 942 942 0 0.0
.debug_loclists 1887392 1887392 0 0.0
.debug_rnglists 119255 119255 0 0.0
.debug_str 3569262 3569262 0 0.0
.heap 849736 849736 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 296 296 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 592106 592106 0 0.0
.symtab 414352 414352 0 0.0
.text 1379284 1379284 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
lock cy8ckit_062s2_43012 (read only) 821952 821952 0 0.0
(read/write) 1627892 1627892 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 208996 208996 0 0.0
.comment 212 212 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2392 2392 0 0.0
.debug_abbrev 1107835 1107835 0 0.0
.debug_aranges 121536 121536 0 0.0
.debug_frame 405368 405368 0 0.0
.debug_info 23389071 23389072 1 0.0
.debug_line 3385032 3385032 0 0.0
.debug_line_str 933 933 0 0.0
.debug_loclists 1900865 1900865 0 0.0
.debug_rnglists 119711 119711 0 0.0
.debug_str 3584280 3584280 0 0.0
.heap 821952 821952 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 296 296 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 596120 596120 0 0.0
.symtab 416688 416688 0 0.0
.text 1408116 1408116 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
qpg lighting-app qpg6105+debug (read/write) 1170696 1170696 0 0.0
.bss 99928 99928 0 0.0
.data 856 856 0 0.0
.text 617796 617796 0 0.0
lock-app qpg6105+debug (read/write) 1139908 1139908 0 0.0
.bss 94824 94824 0 0.0
.data 856 856 0 0.0
.text 587008 587008 0 0.0
telink all-clusters-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1011260 1011260 0 0.0
bss 98944 98944 0 0.0
text 687222 687224 2 0.0
all-clusters-minimal-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 946984 946984 0 0.0
bss 97996 97996 0 0.0
text 649102 649104 2 0.0
bridge-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 924984 924976 -8 -0.0
bss 100212 100212 0 0.0
text 638730 638728 -2 -0.0
contact-sensor-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 856240 856232 -8 -0.0
bss 89888 89888 0 0.0
text 581418 581416 -2 -0.0
light-switch-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 872536 872536 0 0.0
bss 90044 90044 0 0.0
text 596040 596040 0 0.0
lighting-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 940124 940124 0 0.0
bss 98232 98232 0 0.0
text 655724 655722 -2 -0.0
lighting-app-factory-data tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 951504 951504 0 0.0
bss 102480 102480 0 0.0
text 663250 663250 0 0.0
lighting-app-rpc tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1008548 1008548 0 0.0
bss 99796 99796 0 0.0
text 700182 700178 -4 -0.0
lighting-app-shell tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1040980 1040980 0 0.0
bss 110880 110880 0 0.0
text 720760 720762 2 0.0
lock-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 911284 911284 0 0.0
bss 90540 90540 0 0.0
text 610076 610074 -2 -0.0
ota-requestor-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 878800 878800 0 0.0
bss 91152 91152 0 0.0
text 603316 603316 0 0.0
pump-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 862236 862228 -8 -0.0
bss 90008 90008 0 0.0
text 587586 587584 -2 -0.0
pump-controller-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 849032 849032 0 0.0
bss 89808 89808 0 0.0
text 577708 577706 -2 -0.0
temperature-measurement-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 845256 845256 0 0.0
bss 89728 89728 0 0.0
text 573412 573410 -2 -0.0
thermostat tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 877412 877412 0 0.0
bss 91448 91448 0 0.0
text 598198 598200 2 0.0
window-covering tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 873576 873576 0 0.0
bss 91844 91844 0 0.0
text 593444 593446 2 0.0

bzbarsky-apple added a commit to bzbarsky-apple/connectedhomeip that referenced this pull request May 25, 2023
Until project-chip#26824 is fixed,
this fails way too often.
bzbarsky-apple added a commit that referenced this pull request May 25, 2023
Until #26824 is fixed,
this fails way too often.
The failure looks like this:

  WARNING: ThreadSanitizer: race on NSMutableArray (pid=11619)
    Read-only access of NSMutableArray at 0x7b0c0005f5b0 by thread T3:
      #0 -[__NSArrayM countByEnumeratingWithState:objects:count:] <null>:2 (CoreFoundation:x86_64+0x4a338)
      #1 -[MTRDeviceControllerFactory(InternalMethods) operationalInstanceAdded:] MTRDeviceControllerFactory.mm:855 (Matter:x86_64+0x1fd2a)
      #2 MTROperationalBrowser::OnBrowse(_DNSServiceRef_t*, unsigned int, unsigned int, int, char const*, char const*, char const*, void*) MTROperationalBrowser.mm:100 (Matter:x86_64+0x20ee63c)
      #3 handle_browse_response <null>:2 (libsystem_dnssd.dylib:x86_64+0x3733)
      #4 _dispatch_client_callout <null>:2 (libdispatch.dylib:x86_64+0x3316)

    Previous modifying access of NSMutableArray at 0x7b0c0005f5b0 by main thread:
      #0 -[__NSArrayM addObject:] <null>:2 (CoreFoundation:x86_64+0x2457a)
      #1 -[MTRDeviceControllerFactory createController] MTRDeviceControllerFactory.mm:719 (Matter:x86_64+0x1cee3)
      #2 -[MTRDeviceControllerFactory createControllerOnExistingFabric:error:] MTRDeviceControllerFactory.mm:534 (Matter:x86_64+0x19792)

The basic problem is that we are in the middle of adding an object to
_controllers on the API consumer thread when on the Matter thread we get our
browse notification.

The changes here don't aim to lock around all access to _controllers, but just
to make sure that our mutations of it can't race with the access on the Matter
thread.  More coarse locking would need to be done very carefully, given the
amount of dispath_sync to the Matter thread we have going on.
@github-actions
Copy link

github-actions bot commented May 25, 2023

PR #26824: Size comparison from 4703f74 to dbcf811

Increases (12 builds for bl702, cyw30739, esp32, nrfconnect, psoc6, telink)
platform target config section 4703f74 dbcf811 change % change
bl702 lighting-app bl702+rpc .debug_info 47077575 47077576 1 0.0
.text 1040214 1040216 2 0.0
cyw30739 lock cyw930739m2evb_01 (read/write) 529291 529299 8 0.0
.app_xip_area 416781 416789 8 0.0
esp32 all-clusters-app m5stack (read/write) 492966 492970 4 0.0
.flash.rodata 241304 241308 4 0.0
nrfconnect all-clusters-app nrf7002dk_nrf5340_cpuapp text 779272 779276 4 0.0
psoc6 light cy8ckit_062s2_43012 .debug_info 23224399 23224400 1 0.0
telink bridge-app tlsr9518adk80d (read/write) 927172 927180 8 0.0
text 640640 640642 2 0.0
contact-sensor-app tlsr9518adk80d text 583318 583320 2 0.0
lighting-app tlsr9518adk80d text 657630 657632 2 0.0
lighting-app-rpc tlsr9518adk80d (read/write) 1010736 1010744 8 0.0
text 702088 702090 2 0.0
lighting-app-shell tlsr9518adk80d text 722664 722666 2 0.0
pump-app tlsr9518adk80d text 589494 589496 2 0.0
temperature-measurement-app tlsr9518adk80d (read/write) 847460 847468 8 0.0
text 575328 575330 2 0.0
Decreases (11 builds for bl602, cc13x4_26x4, cc32xx, efr32, esp32, psoc6, qpg, telink)
platform target config section 4703f74 dbcf811 change % change
bl602 lighting-app bl602+rpc .text 1067982 1067980 -2 -0.0
cc13x4_26x4 lock-ftd LP_EM_CC1354P10_6 (read only) 739255 739247 -8 -0.0
.text 662536 662528 -8 -0.0
cc32xx lock CC3235SF_LAUNCHXL .debug_info 20535798 20535796 -2 -0.0
efr32 lock-app BRD4161A+wf200 (read/write) 1069000 1068992 -8 -0.0
.text 892676 892668 -8 -0.0
esp32 all-clusters-app c3devkit (read only) 1054286 1054284 -2 -0.0
.flash.text 1054286 1054284 -2 -0.0
psoc6 lock cy8ckit_062s2_43012 .debug_info 23389073 23389071 -2 -0.0
qpg lock-app qpg6105+debug (read/write) 1139908 1139900 -8 -0.0
.text 587008 587000 -8 -0.0
telink all-clusters-app tlsr9518adk80d text 689136 689134 -2 -0.0
all-clusters-minimal-app tlsr9518adk80d text 651004 651002 -2 -0.0
lighting-app-factory-data tlsr9518adk80d text 665154 665152 -2 -0.0
lock-app tlsr9518adk80d text 611986 611984 -2 -0.0
Full report (66 builds for bl602, bl702, cc13x2_26x2, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
platform target config section 4703f74 dbcf811 change % change
bl602 lighting-app bl602 (read/write) 1356486 1356486 0 0.0
.bss 87886 87886 0 0.0
.data 9648 9648 0 0.0
.text 1036624 1036624 0 0.0
bl602+rpc (read/write) 1402762 1402762 0 0.0
.bss 95934 95934 0 0.0
.data 10040 10040 0 0.0
.text 1067982 1067980 -2 -0.0
bl702 lighting-app bl702 (read only) 3358 3358 0 0.0
(read/write) 1188271 1188271 0 0.0
.bleromro 6342 6342 0 0.0
.bleromrw 124 124 0 0.0
.boot2 328 328 0 0.0
.bss 67585 67585 0 0.0
.bss_psram 24656 24656 0 0.0
.comment 48 48 0 0.0
.data 3952 3952 0 0.0
.debug_abbrev 1555771 1555771 0 0.0
.debug_aranges 136024 136024 0 0.0
.debug_frame 500368 500368 0 0.0
.debug_info 42151516 42151516 0 0.0
.debug_line 5371030 5371030 0 0.0
.debug_loc 3496155 3496155 0 0.0
.debug_ranges 375656 375656 0 0.0
.debug_str 3837238 3837238 0 0.0
.hbn 536 536 0 0.0
.hbn_noinit 260 260 0 0.0
.init 342 342 0 0.0
.init_array 140 140 0 0.0
.psram 0 0 0 0.0
.riscv.attributes 47 47 0 0.0
.rodata 107168 107168 0 0.0
.rsvd 4 4 0 0.0
.sha_ocram 72 72 0 0.0
.shstrtab 304 304 0 0.0
.stack 2048 2048 0 0.0
.strtab 582392 582392 0 0.0
.symtab 175632 175632 0 0.0
.tcm_data 28 28 0 0.0
.tcmcode 3358 3358 0 0.0
.text 0 0 0 0.0
966828 966828 0 0.0
bl702+rpc (read only) 3358 3358 0 0.0
(read/write) 1277075 1277075 0 0.0
.bleromro 6342 6342 0 0.0
.bleromrw 124 124 0 0.0
.boot2 328 328 0 0.0
.bss 75633 75633 0 0.0
.bss_psram 25056 25056 0 0.0
.comment 48 48 0 0.0
.data 4504 4504 0 0.0
.debug_abbrev 1714754 1714754 0 0.0
.debug_aranges 144312 144312 0 0.0
.debug_frame 528380 528380 0 0.0
.debug_info 47077575 47077576 1 0.0
.debug_line 5786947 5786947 0 0.0
.debug_loc 3698987 3698987 0 0.0
.debug_ranges 401016 401016 0 0.0
.debug_str 4262755 4262755 0 0.0
.hbn 536 536 0 0.0
.hbn_noinit 260 260 0 0.0
.init 342 342 0 0.0
.init_array 156 156 0 0.0
.psram 0 0 0 0.0
.riscv.attributes 47 47 0 0.0
.rodata 121248 121248 0 0.0
.rsvd 4 4 0 0.0
.sha_ocram 72 72 0 0.0
.shstrtab 304 304 0 0.0
.stack 2048 2048 0 0.0
.strtab 643712 643712 0 0.0
.symtab 194128 194128 0 0.0
.tcm_data 28 28 0 0.0
.tcmcode 3358 3358 0 0.0
.text 0 0 0 0.0
1040214 1040216 2 0.0
cc13x2_26x2 lock-mtd LP_CC2652R7 (read only) 658147 658147 0 0.0
(read/write) 158713 158713 0 0.0
.bss 80376 80376 0 0.0
.data 3272 3272 0 0.0
.rodata 77099 77099 0 0.0
.text 580556 580556 0 0.0
pump-app LP_CC2652R7 (read only) 648775 648775 0 0.0
(read/write) 153177 153177 0 0.0
.bss 74600 74600 0 0.0
.data 3264 3264 0 0.0
.rodata 79631 79631 0 0.0
.text 568656 568656 0 0.0
pump-controller-app LP_CC2652R7 (read only) 634279 634279 0 0.0
(read/write) 153317 153317 0 0.0
.bss 74744 74744 0 0.0
.data 3260 3260 0 0.0
.rodata 75511 75511 0 0.0
.text 558280 558280 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 (read only) 747243 747243 0 0.0
(read/write) 170152 170152 0 0.0
.bss 92488 92488 0 0.0
.data 3464 3464 0 0.0
.rodata 79655 79655 0 0.0
.text 667196 667196 0 0.0
lock-ftd LP_EM_CC1354P10_6 (read only) 739255 739247 -8 -0.0
(read/write) 175372 175372 0 0.0
.bss 97712 97712 0 0.0
.data 3460 3460 0 0.0
.rodata 76331 76331 0 0.0
.text 662536 662528 -8 -0.0
lock-mtd LP_EM_CC1354P10_6 (read only) 727403 727403 0 0.0
(read/write) 169980 169980 0 0.0
.bss 92320 92320 0 0.0
.data 3460 3460 0 0.0
.rodata 102295 102295 0 0.0
.text 624716 624716 0 0.0
pump-app LP_EM_CC1354P10_6 (read only) 680795 680795 0 0.0
(read/write) 164444 164444 0 0.0
.bss 86544 86544 0 0.0
.data 3452 3452 0 0.0
.rodata 76863 76863 0 0.0
.text 603544 603544 0 0.0
pump-controller-app LP_EM_CC1354P10_6 (read only) 666259 666259 0 0.0
(read/write) 164576 164576 0 0.0
.bss 86688 86688 0 0.0
.data 3448 3448 0 0.0
.rodata 72703 72703 0 0.0
.text 593168 593168 0 0.0
cc32xx lock CC3235SF_LAUNCHXL (blank) 0 0 0 0.0
(read only) 605746 605746 0 0.0
(read/write) 204164 204164 0 0.0
.ARM.attributes 44 44 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 197576 197576 0 0.0
.comment 206 206 0 0.0
.data 1468 1468 0 0.0
.debug_abbrev 955088 955088 0 0.0
.debug_aranges 104344 104344 0 0.0
.debug_frame 353240 353240 0 0.0
.debug_info 20535798 20535796 -2 -0.0
.debug_line 2715071 2715071 0 0.0
.debug_line_str 513 513 0 0.0
.debug_loc 33340 33340 0 0.0
.debug_loclists 1532266 1532266 0 0.0
.debug_ranges 4984 4984 0 0.0
.debug_rnglists 96780 96780 0 0.0
.debug_str 3262257 3262257 0 0.0
.ramVecs 780 780 0 0.0
.resetVecs 64 64 0 0.0
.rodata 104378 104378 0 0.0
.shstrtab 265 265 0 0.0
.stack 2048 2048 0 0.0
.strtab 484213 484213 0 0.0
.symtab 287456 287456 0 0.0
.text 499244 499244 0 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 524595 524595 0 0.0
.app_xip_area 417389 417389 0 0.0
.bss 62184 62184 0 0.0
.data 712 712 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 529291 529299 8 0.0
.app_xip_area 416781 416789 8 0.0
.bss 67480 67480 0 0.0
.data 720 720 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor cyw930739m2evb_01 (read/write) 566307 566307 0 0.0
.app_xip_area 459861 459861 0 0.0
.bss 61472 61472 0 0.0
.data 668 668 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
switch cyw930739m2evb_01 (read/write) 531099 531099 0 0.0
.app_xip_area 422085 422085 0 0.0
.bss 63960 63960 0 0.0
.data 744 744 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A+rs9116 (read/write) 964316 964316 0 0.0
.bss 179680 179680 0 0.0
.data 2136 2136 0 0.0
.text 782480 782480 0 0.0
BRD4187C (read/write) 1000984 1000984 0 0.0
.bss 159412 159412 0 0.0
.data 2780 2780 0 0.0
.text 838772 838772 0 0.0
lock-app BRD4161A+wf200 (read/write) 1069000 1068992 -8 -0.0
.bss 174152 174152 0 0.0
.data 2152 2152 0 0.0
.text 892676 892668 -8 -0.0
window-app BRD4187C (read/write) 1076276 1076276 0 0.0
.bss 143884 143884 0 0.0
.data 2676 2676 0 0.0
.text 929696 929696 0 0.0
esp32 all-clusters-app c3devkit (read only) 1054286 1054284 -2 -0.0
(read/write) 1583808 1583808 0 0.0
.dram0.bss 77192 77192 0 0.0
.dram0.data 13964 13964 0 0.0
.flash.rodata 213512 213512 0 0.0
.flash.text 1054286 1054284 -2 -0.0
.iram0.text 76538 76538 0 0.0
m5stack (read only) 1101779 1101779 0 0.0
(read/write) 492966 492970 4 0.0
.dram0.bss 82208 82208 0 0.0
.dram0.data 34300 34300 0 0.0
.flash.rodata 241304 241308 4 0.0
.flash.text 1096395 1096395 0 0.0
.iram0.text 126055 126055 0 0.0
k32w contact k32w0+release (read only) 583676 583676 0 0.0
(read/write) 82704 82704 0 0.0
.bss 65888 65888 0 0.0
.data 2192 2192 0 0.0
.text 583140 583140 0 0.0
light k32w0+release (read only) 582620 582620 0 0.0
(read/write) 82356 82356 0 0.0
.bss 65552 65552 0 0.0
.data 2180 2180 0 0.0
.text 582084 582084 0 0.0
lock k32w0+release (read only) 556108 556108 0 0.0
(read/write) 80352 80352 0 0.0
.bss 63624 63624 0 0.0
.data 2104 2104 0 0.0
.text 555572 555572 0 0.0
linux all-clusters-app debug (read only) 3149453 3149453 0 0.0
(read/write) 152904 152904 0 0.0
.bss 60224 60224 0 0.0
.data 2160 2160 0 0.0
.data.rel.ro 84016 84016 0 0.0
.dynamic 608 608 0 0.0
.got 4728 4728 0 0.0
.init 27 27 0 0.0
.init_array 1120 1120 0 0.0
.rodata 231016 231016 0 0.0
.text 2732341 2732341 0 0.0
all-clusters-minimal-app debug (read only) 2957397 2957397 0 0.0
(read/write) 145792 145792 0 0.0
.bss 59328 59328 0 0.0
.data 2128 2128 0 0.0
.data.rel.ro 77936 77936 0 0.0
.dynamic 608 608 0 0.0
.got 4664 4664 0 0.0
.init 27 27 0 0.0
.init_array 1080 1080 0 0.0
.rodata 224296 224296 0 0.0
.text 2550661 2550661 0 0.0
bridge-app debug (read only) 2517549 2517549 0 0.0
(read/write) 129648 129648 0 0.0
.bss 50232 50232 0 0.0
.data 3824 3824 0 0.0
.data.rel.ro 69608 69608 0 0.0
.dynamic 608 608 0 0.0
.got 4568 4568 0 0.0
.init 27 27 0 0.0
.init_array 784 784 0 0.0
.rodata 173224 173224 0 0.0
.text 2172005 2172005 0 0.0
chip-tool debug (read only) 13688001 13688001 0 0.0
(read/write) 676552 676552 0 0.0
.bss 26424 26424 0 0.0
.data 3042 3042 0 0.0
.data.rel.ro 640296 640296 0 0.0
.dynamic 608 608 0 0.0
.got 5360 5360 0 0.0
.init 27 27 0 0.0
.init_array 776 776 0 0.0
.rodata 660205 660205 0 0.0
.text 11456692 11456692 0 0.0
chip-tool-ipv6only arm64 (read only) 12863132 12863132 0 0.0
(read/write) 728440 728440 0 0.0
.bss 34392 34392 0 0.0
.data 3008 3008 0 0.0
.data.rel.ro 669872 669872 0 0.0
.dynamic 560 560 0 0.0
.got 15952 15952 0 0.0
.init 24 24 0 0.0
.init_array 216 216 0 0.0
.rodata 602000 602000 0 0.0
.text 10533364 10533364 0 0.0
dynamic-bridge-app-ipv6only debug (read only) 2581197 2581197 0 0.0
(read/write) 126840 126840 0 0.0
.bss 47544 47544 0 0.0
.data 2864 2864 0 0.0
.data.rel.ro 70192 70192 0 0.0
.dynamic 624 624 0 0.0
.got 4800 4800 0 0.0
.init 27 27 0 0.0
.init_array 792 792 0 0.0
.rodata 175944 175944 0 0.0
.text 2227893 2227893 0 0.0
lighting-app debug+rpc+ui (read only) 3245433 3245433 0 0.0
(read/write) 132272 132272 0 0.0
.bss 48032 48032 0 0.0
.data 2704 2704 0 0.0
.data.rel.ro 74736 74736 0 0.0
.dynamic 656 656 0 0.0
.got 5240 5240 0 0.0
.init 27 27 0 0.0
.init_array 872 872 0 0.0
.rodata 284628 284628 0 0.0
.text 2769010 2769010 0 0.0
lock-app debug (read only) 2657781 2657781 0 0.0
(read/write) 123624 123624 0 0.0
.bss 45952 45952 0 0.0
.data 1904 1904 0 0.0
.data.rel.ro 69648 69648 0 0.0
.dynamic 608 608 0 0.0
.got 4648 4648 0 0.0
.init 27 27 0 0.0
.init_array 832 832 0 0.0
.rodata 206280 206280 0 0.0
.text 2278805 2278805 0 0.0
ota-provider-app debug (read only) 2209629 2209629 0 0.0
(read/write) 103672 103672 0 0.0
.bss 44528 44528 0 0.0
.data 2112 2112 0 0.0
.data.rel.ro 51944 51944 0 0.0
.dynamic 608 608 0 0.0
.got 3800 3800 0 0.0
.init 27 27 0 0.0
.init_array 672 672 0 0.0
.rodata 154376 154376 0 0.0
.text 1913733 1913733 0 0.0
ota-requestor-app debug (read only) 2376661 2376661 0 0.0
(read/write) 111464 111464 0 0.0
.bss 46960 46960 0 0.0
.data 2512 2512 0 0.0
.data.rel.ro 56800 56800 0 0.0
.dynamic 608 608 0 0.0
.got 3784 3784 0 0.0
.init 27 27 0 0.0
.init_array 752 752 0 0.0
.rodata 158440 158440 0 0.0
.text 2067829 2067829 0 0.0
shell debug (read only) 2686025 2686025 0 0.0
(read/write) 141328 141328 0 0.0
.bss 59176 59176 0 0.0
.data 1232 1232 0 0.0
.data.rel.ro 75080 75080 0 0.0
.dynamic 608 608 0 0.0
.got 4128 4128 0 0.0
.init 27 27 0 0.0
.init_array 1056 1056 0 0.0
.rodata 199538 199538 0 0.0
.text 2324322 2324322 0 0.0
thermostat-no-ble arm64 (read only) 2523660 2523660 0 0.0
(read/write) 142552 142552 0 0.0
.bss 53496 53496 0 0.0
.data 1784 1784 0 0.0
.data.rel.ro 77792 77792 0 0.0
.dynamic 560 560 0 0.0
.got 5432 5432 0 0.0
.init 24 24 0 0.0
.init_array 392 392 0 0.0
.rodata 129376 129376 0 0.0
.text 2130692 2130692 0 0.0
tv-app debug (read only) 3313841 3313841 0 0.0
(read/write) 261544 261544 0 0.0
.bss 171264 171264 0 0.0
.data 4080 4080 0 0.0
.data.rel.ro 79480 79480 0 0.0
.dynamic 608 608 0 0.0
.got 5000 5000 0 0.0
.init 27 27 0 0.0
.init_array 1088 1088 0 0.0
.rodata 222648 222648 0 0.0
.text 2895010 2895010 0 0.0
tv-casting-app debug (read only) 7415193 7415193 0 0.0
(read/write) 195280 195280 0 0.0
.bss 52096 52096 0 0.0
.data 1744 1744 0 0.0
.data.rel.ro 134872 134872 0 0.0
.dynamic 608 608 0 0.0
.got 4920 4920 0 0.0
.init 27 27 0 0.0
.init_array 1000 1000 0 0.0
.rodata 317836 317836 0 0.0
.text 6728498 6728498 0 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2495368 2495368 0 0.0
.bss 216304 216304 0 0.0
.data 5144 5144 0 0.0
.text 1458052 1458052 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1178080 1178080 0 0.0
bss 155621 155621 0 0.0
rodata 133072 133072 0 0.0
text 808680 808680 0 0.0
nrf7002dk_nrf5340_cpuapp (read only) 4 4 0 0.0
(read/write) 1437808 1437808 0 0.0
bss 135361 135361 0 0.0
rodata 229088 229088 0 0.0
text 779272 779276 4 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1124300 1124300 0 0.0
bss 154773 154773 0 0.0
rodata 109836 109836 0 0.0
text 778980 778980 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 (read only) 840616 840616 0 0.0
(read/write) 1709204 1709204 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 190164 190164 0 0.0
.comment 212 212 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2560 2560 0 0.0
.debug_abbrev 1286148 1286148 0 0.0
.debug_aranges 131752 131752 0 0.0
.debug_frame 438004 438004 0 0.0
.debug_info 28331847 28331847 0 0.0
.debug_line 3814223 3814223 0 0.0
.debug_line_str 957 957 0 0.0
.debug_loclists 2066593 2066593 0 0.0
.debug_rnglists 130769 130769 0 0.0
.debug_str 3774484 3774484 0 0.0
.heap 840616 840616 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 296 296 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 720359 720359 0 0.0
.symtab 467904 467904 0 0.0
.text 1508092 1508092 0 0.0
.zero.table 8 8 0 0.0
text 0 0 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 (read only) 841424 841424 0 0.0
(read/write) 1650268 1650268 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 189364 189364 0 0.0
.comment 212 212 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2552 2552 0 0.0
.debug_abbrev 1275887 1275887 0 0.0
.debug_aranges 131000 131000 0 0.0
.debug_frame 440444 440444 0 0.0
.debug_info 27951407 27951407 0 0.0
.debug_line 3827423 3827423 0 0.0
.debug_line_str 981 981 0 0.0
.debug_loclists 2057505 2057505 0 0.0
.debug_rnglists 129718 129718 0 0.0
.debug_str 3763243 3763243 0 0.0
.heap 841424 841424 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 296 296 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 676726 676726 0 0.0
.symtab 452352 452352 0 0.0
.text 1449964 1449964 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
light cy8ckit_062s2_43012 (read only) 849736 849736 0 0.0
(read/write) 1571276 1571276 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 181220 181220 0 0.0
.comment 212 212 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2384 2384 0 0.0
.debug_abbrev 1108717 1108717 0 0.0
.debug_aranges 121032 121032 0 0.0
.debug_frame 403276 403276 0 0.0
.debug_info 23224399 23224400 1 0.0
.debug_line 3388513 3388513 0 0.0
.debug_line_str 942 942 0 0.0
.debug_loclists 1887392 1887392 0 0.0
.debug_rnglists 119255 119255 0 0.0
.debug_str 3569262 3569262 0 0.0
.heap 849736 849736 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 296 296 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 592106 592106 0 0.0
.symtab 414352 414352 0 0.0
.text 1379284 1379284 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
lock cy8ckit_062s2_43012 (read only) 821952 821952 0 0.0
(read/write) 1627892 1627892 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 208996 208996 0 0.0
.comment 212 212 0 0.0
.copy.table 24 24 0 0.0
.cy_m0p_image 6216 6216 0 0.0
.cy_sharedmem 8 8 0 0.0
.data 2392 2392 0 0.0
.debug_abbrev 1107835 1107835 0 0.0
.debug_aranges 121536 121536 0 0.0
.debug_frame 405368 405368 0 0.0
.debug_info 23389073 23389071 -2 -0.0
.debug_line 3385032 3385032 0 0.0
.debug_line_str 933 933 0 0.0
.debug_loclists 1900865 1900865 0 0.0
.debug_rnglists 119711 119711 0 0.0
.debug_str 3584280 3584280 0 0.0
.heap 821952 821952 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 296 296 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 596120 596120 0 0.0
.symtab 416688 416688 0 0.0
.text 1408116 1408116 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
qpg lighting-app qpg6105+debug (read/write) 1170696 1170696 0 0.0
.bss 99928 99928 0 0.0
.data 856 856 0 0.0
.text 617796 617796 0 0.0
lock-app qpg6105+debug (read/write) 1139908 1139900 -8 -0.0
.bss 94824 94824 0 0.0
.data 856 856 0 0.0
.text 587008 587000 -8 -0.0
telink all-clusters-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1013456 1013456 0 0.0
bss 98988 98988 0 0.0
text 689136 689134 -2 -0.0
all-clusters-minimal-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 949164 949164 0 0.0
bss 98040 98040 0 0.0
text 651004 651002 -2 -0.0
bridge-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 927172 927180 8 0.0
bss 100256 100256 0 0.0
text 640640 640642 2 0.0
contact-sensor-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 858428 858428 0 0.0
bss 89940 89940 0 0.0
text 583318 583320 2 0.0
light-switch-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 874740 874740 0 0.0
bss 90096 90096 0 0.0
text 597950 597950 0 0.0
lighting-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 942312 942312 0 0.0
bss 98276 98276 0 0.0
text 657630 657632 2 0.0
lighting-app-factory-data tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 953692 953692 0 0.0
bss 102524 102524 0 0.0
text 665154 665152 -2 -0.0
lighting-app-rpc tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1010736 1010744 8 0.0
bss 99840 99840 0 0.0
text 702088 702090 2 0.0
lighting-app-shell tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1043168 1043168 0 0.0
bss 110924 110924 0 0.0
text 722664 722666 2 0.0
lock-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 913488 913488 0 0.0
bss 90592 90592 0 0.0
text 611986 611984 -2 -0.0
ota-requestor-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 880996 880996 0 0.0
bss 91196 91196 0 0.0
text 605224 605224 0 0.0
pump-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 864432 864432 0 0.0
bss 90060 90060 0 0.0
text 589494 589496 2 0.0
pump-controller-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 851228 851228 0 0.0
bss 89860 89860 0 0.0
text 579612 579612 0 0.0
temperature-measurement-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 847460 847468 8 0.0
bss 89780 89780 0 0.0
text 575328 575330 2 0.0
thermostat tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 879616 879616 0 0.0
bss 91500 91500 0 0.0
text 600106 600106 0 0.0
window-covering tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 875772 875772 0 0.0
bss 91896 91896 0 0.0
text 595346 595346 0 0.0

@andy31415 andy31415 merged commit 9f1a470 into project-chip:master May 25, 2023
@bzbarsky-apple bzbarsky-apple deleted the controller-factory-locking branch May 25, 2023 21:26
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.

None yet

3 participants