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

Rollback() on data model builder should reset the error on the builder. #26982

Merged
merged 2 commits into from
Jun 2, 2023

Conversation

bzbarsky-apple
Copy link
Contributor

Without this, it's too easy to forget to ResetError() when rolling back. That's exactly what happened in ClusterStateCache:OnUpdateDataVersionFilterList, and that could lead to inability to ever re-subscribe after a subscription drop.

We had the following Rollback() calls not immediately followed by ResetError():

  • In SendFailureStatus in ember-compatibility-functions.cpp. This is never reached when there is a failure on aAttributeReports, so doing the ResetError here is not a problem.
  • AttributeValueEncoder::EncodeListItem. This was relying on the InteractionModelEngine to ResetError after the rollback.
  • ClusterStateCache:OnUpdateDataVersionFilterList. When CreateDataVersionFilter() failed, this could leave the DataVersionFilterIBs::Builder in an error state, which would lead to the subscribe request (incorrectly) failing completely.
  • WriteHandler::ProcessAttributeDataIBs. This codepath was apparently not getting hit in practice, since it would fail. It was also checkpointing/restoring on the wrong builder.
  • Engine::BuildSingleReportDataAttributeReportIBs. This was buggy: If we hit an error other than "out of memory" while encoding the value, we could end up with the builder in an error state and then fail to encode our status response.
  • ReadClient::SendReadRequest. This is never reached with an error on the builder.
  • ReadClient::SendSubscribeRequestImpl. This is never reached with an error on the builder.

@github-actions
Copy link

github-actions bot commented May 31, 2023

PR #26982: Size comparison from d145bbb to fb998cb

Increases above 0.2%:

platform target config section d145bbb fb998cb change % change
bl702 lighting-app bl702 .debug_ranges 388640 392096 3456 0.9
bl702+rpc .debug_ranges 414000 417456 3456 0.8
Increases (9 builds for bl602, bl702, cc32xx, psoc6)
platform target config section d145bbb fb998cb change % change
bl602 lighting-app bl602 (read/write) 1356274 1356786 512 0.0
.text 1036360 1036870 510 0.0
bl602+rpc (read/write) 1402550 1403062 512 0.0
.text 1067716 1068228 512 0.0
bl702 lighting-app bl702 (read/write) 1188063 1188607 544 0.0
.debug_abbrev 1549961 1550045 84 0.0
.debug_info 44558674 44559803 1129 0.0
.debug_line 5559389 5560017 628 0.0
.debug_loc 3785221 3787188 1967 0.1
.debug_ranges 388640 392096 3456 0.9
.debug_str 4319908 4319932 24 0.0
.text 966574 967112 538 0.1
bl702+rpc (read/write) 1276867 1277411 544 0.0
.debug_abbrev 1708971 1709055 84 0.0
.debug_info 49503399 49504529 1130 0.0
.debug_line 5975210 5975838 628 0.0
.debug_loc 3987899 3989851 1952 0.0
.debug_ranges 414000 417456 3456 0.8
.debug_str 4745416 4745440 24 0.0
.text 1039960 1040500 540 0.1
cc32xx lock CC3235SF_LAUNCHXL .debug_abbrev 949825 949864 39 0.0
.debug_aranges 117512 117664 152 0.1
.debug_frame 400904 401392 488 0.1
.debug_rnglists 106399 106503 104 0.1
.debug_str 3759427 3759451 24 0.0
.strtab 484683 484798 115 0.0
.symtab 287504 287568 64 0.0
psoc6 all-clusters cy8ckit_062s2_43012 .debug_abbrev 1292067 1292106 39 0.0
.debug_aranges 146704 146880 176 0.1
.debug_frame 490768 491332 564 0.1
.debug_rnglists 142425 142547 122 0.1
.debug_str 4319228 4319252 24 0.0
.strtab 745879 745994 115 0.0
.symtab 475904 475968 64 0.0
all-clusters-minimal cy8ckit_062s2_43012 .debug_abbrev 1281801 1281840 39 0.0
.debug_aranges 145840 146016 176 0.1
.debug_frame 492948 493512 564 0.1
.debug_rnglists 141262 141384 122 0.1
.debug_str 4305547 4305571 24 0.0
.strtab 699129 699244 115 0.0
.symtab 459136 459200 64 0.0
light cy8ckit_062s2_43012 .debug_abbrev 1120043 1120082 39 0.0
.debug_aranges 136232 136376 144 0.1
.debug_frame 457036 457496 460 0.1
.debug_rnglists 131284 131382 98 0.1
.debug_str 4119354 4119378 24 0.0
.strtab 622577 622692 115 0.0
.symtab 424640 424704 64 0.0
lock cy8ckit_062s2_43012 .debug_abbrev 1102418 1102457 39 0.0
.debug_aranges 134704 134856 152 0.1
.debug_frame 451596 452084 488 0.1
.debug_rnglists 129330 129434 104 0.1
.debug_str 4081438 4081462 24 0.0
.strtab 596602 596717 115 0.0
.symtab 416768 416832 64 0.0
Decreases (54 builds for bl702, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, telink)
platform target config section d145bbb fb998cb change % change
bl702 lighting-app bl702 .debug_aranges 148360 148320 -40 -0.0
.debug_frame 545636 545400 -236 -0.0
.strtab 582506 582229 -277 -0.0
.symtab 175584 175504 -80 -0.0
bl702+rpc .debug_aranges 156648 156608 -40 -0.0
.debug_frame 573648 573412 -236 -0.0
.strtab 643826 643549 -277 -0.0
.symtab 194080 194000 -80 -0.0
cc32xx lock CC3235SF_LAUNCHXL (read only) 606066 604954 -1112 -0.2
.debug_info 22708987 22708283 -704 -0.0
.debug_line 2853238 2853202 -36 -0.0
.debug_loclists 1711740 1709636 -2104 -0.1
.text 499528 498416 -1112 -0.2
cyw30739 light cyw930739m2evb_01 (read/write) 542011 541755 -256 -0.0
.app_xip_area 434637 434381 -256 -0.1
lock cyw930739m2evb_01 (read/write) 529411 529155 -256 -0.0
.app_xip_area 416901 416645 -256 -0.1
ota-requestor cyw930739m2evb_01 (read/write) 566243 566003 -240 -0.0
.app_xip_area 459797 459557 -240 -0.1
switch cyw930739m2evb_01 (read/write) 530939 530659 -280 -0.1
.app_xip_area 421925 421645 -280 -0.1
efr32 lighting-app BRD4161A+rs9116 (read/write) 988164 987012 -1152 -0.1
.text 806144 804992 -1152 -0.1
BRD4187C (read/write) 1019000 1018680 -320 -0.0
.text 856604 856284 -320 -0.0
lock-app BRD4161A+wf200 (read/write) 1069240 1069000 -240 -0.0
.text 892908 892668 -240 -0.0
window-app BRD4187C (read/write) 1091008 1089728 -1280 -0.1
.text 945736 944456 -1280 -0.1
esp32 all-clusters-app c3devkit (read only) 1068922 1068802 -120 -0.0
.flash.text 1068922 1068802 -120 -0.0
m5stack (read only) 1114679 1114599 -80 -0.0
.flash.text 1109295 1109215 -80 -0.0
k32w contact k32w0+release (read only) 583612 583292 -320 -0.1
.text 583076 582756 -320 -0.1
light k32w0+release (read only) 582572 582204 -368 -0.1
.text 582036 581668 -368 -0.1
lock k32w0+release (read only) 556188 555804 -384 -0.1
.text 555652 555268 -384 -0.1
linux all-clusters-app debug (read only) 3239893 3239541 -352 -0.0
.text 2819301 2818949 -352 -0.0
all-clusters-minimal-app debug (read only) 3037573 3037221 -352 -0.0
.text 2628229 2627877 -352 -0.0
bridge-app debug (read only) 2518821 2518469 -352 -0.0
.text 2173717 2173365 -352 -0.0
chip-tool debug (read only) 15497257 15488489 -8768 -0.1
.text 13177188 13168420 -8768 -0.1
chip-tool-ipv6only arm64 (read only) 14827364 14822276 -5088 -0.0
.text 12413636 12408548 -5088 -0.0
dynamic-bridge-app-ipv6only debug (read only) 2567837 2567485 -352 -0.0
.text 2214773 2214421 -352 -0.0
lighting-app debug+rpc+ui (read only) 3380185 3379817 -368 -0.0
.text 2897250 2896882 -368 -0.0
lock-app debug (read only) 2661261 2660909 -352 -0.0
.text 2282533 2282181 -352 -0.0
ota-provider-app debug (read only) 2210101 2209749 -352 -0.0
.text 1914645 1914293 -352 -0.0
ota-requestor-app debug (read only) 2377661 2377309 -352 -0.0
.text 2069301 2068949 -352 -0.0
shell debug (read only) 2773497 2773145 -352 -0.0
.text 2408898 2408546 -352 -0.0
thermostat-no-ble arm64 (read only) 2606252 2605964 -288 -0.0
.text 2211556 2211268 -288 -0.0
tv-app debug (read only) 3315081 3314665 -416 -0.0
.text 2896626 2896210 -416 -0.0
tv-casting-app debug (read only) 9078665 9069881 -8784 -0.1
.text 8324882 8316098 -8784 -0.1
mbed lock-app CY8CPROTO_062_4343W+release (read/write) 2495712 2495456 -256 -0.0
.text 1458396 1458140 -256 -0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1188876 1188588 -288 -0.0
text 819884 819588 -296 -0.0
nrf7002dk_nrf5340_cpuapp (read/write) 1448672 1448400 -272 -0.0
text 790552 790284 -268 -0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1131760 1131472 -288 -0.0
text 788880 788584 -296 -0.0
psoc6 all-clusters cy8ckit_062s2_43012 (read/write) 1724820 1723460 -1360 -0.1
.debug_info 31667592 31666747 -845 -0.0
.debug_line 3996331 3996291 -40 -0.0
.debug_loclists 2281880 2279166 -2714 -0.1
.text 1525356 1523996 -1360 -0.1
all-clusters-minimal cy8ckit_062s2_43012 (read/write) 1662476 1661116 -1360 -0.1
.debug_info 31220273 31219427 -846 -0.0
.debug_line 4008589 4008549 -40 -0.0
.debug_loclists 2271760 2269046 -2714 -0.1
.text 1464172 1462812 -1360 -0.1
light cy8ckit_062s2_43012 (read/write) 1595036 1593884 -1152 -0.1
.debug_info 26095255 26094546 -709 -0.0
.debug_line 3587216 3587152 -64 -0.0
.debug_loclists 2112306 2110216 -2090 -0.1
.text 1402868 1401716 -1152 -0.1
lock cy8ckit_062s2_43012 (read/write) 1628212 1627060 -1152 -0.1
.debug_info 25661303 25660599 -704 -0.0
.debug_line 3522646 3522609 -37 -0.0
.debug_loclists 2085726 2083603 -2123 -0.1
.text 1408444 1407292 -1152 -0.1
telink all-clusters-app tlsr9518adk80d (read/write) 1027684 1027660 -24 -0.0
text 703344 703322 -22 -0.0
all-clusters-minimal-app tlsr9518adk80d (read/write) 959748 959724 -24 -0.0
text 663822 663800 -22 -0.0
bridge-app tlsr9518adk80d (read/write) 928192 928144 -48 -0.0
text 641404 641354 -50 -0.0
contact-sensor-app tlsr9518adk80d (read/write) 859340 859300 -40 -0.0
text 584042 584008 -34 -0.0
light-switch-app tlsr9518adk80d (read/write) 875656 875632 -24 -0.0
text 598664 598640 -24 -0.0
lighting-app tlsr9518adk80d (read/write) 964084 964052 -32 -0.0
text 677788 677758 -30 -0.0
lighting-app-factory-data tlsr9518adk80d (read/write) 975464 975432 -32 -0.0
text 685310 685282 -28 -0.0
lighting-app-rpc tlsr9518adk80d (read/write) 1032508 1032476 -32 -0.0
text 722254 722224 -30 -0.0
lighting-app-shell tlsr9518adk80d (read/write) 1064940 1064908 -32 -0.0
text 742826 742796 -30 -0.0
lock-app tlsr9518adk80d (read/write) 914764 914740 -24 -0.0
text 613024 613000 -24 -0.0
ota-requestor-app tlsr9518adk80d (read/write) 881948 881932 -16 -0.0
text 605934 605920 -14 -0.0
pump-app tlsr9518adk80d (read/write) 865356 865284 -72 -0.0
text 590220 590146 -74 -0.0
pump-controller-app tlsr9518adk80d (read/write) 852152 852080 -72 -0.0
text 580340 580268 -72 -0.0
temperature-measurement-app tlsr9518adk80d (read/write) 848276 848260 -16 -0.0
text 575996 575978 -18 -0.0
thermostat tlsr9518adk80d (read/write) 893688 893664 -24 -0.0
text 614884 614858 -26 -0.0
window-covering tlsr9518adk80d (read/write) 889084 889052 -32 -0.0
text 609826 609794 -32 -0.0
Full report (56 builds for bl602, bl702, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, telink)
platform target config section d145bbb fb998cb change % change
bl602 lighting-app bl602 (read/write) 1356274 1356786 512 0.0
.bss 87886 87886 0 0.0
.data 9648 9648 0 0.0
.text 1036360 1036870 510 0.0
bl602+rpc (read/write) 1402550 1403062 512 0.0
.bss 95934 95934 0 0.0
.data 10040 10040 0 0.0
.text 1067716 1068228 512 0.0
bl702 lighting-app bl702 (read only) 3358 3358 0 0.0
(read/write) 1188063 1188607 544 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 1549961 1550045 84 0.0
.debug_aranges 148360 148320 -40 -0.0
.debug_frame 545636 545400 -236 -0.0
.debug_info 44558674 44559803 1129 0.0
.debug_line 5559389 5560017 628 0.0
.debug_loc 3785221 3787188 1967 0.1
.debug_ranges 388640 392096 3456 0.9
.debug_str 4319908 4319932 24 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 107216 107216 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 582506 582229 -277 -0.0
.symtab 175584 175504 -80 -0.0
.tcm_data 28 28 0 0.0
.tcmcode 3358 3358 0 0.0
.text 0 0 0 0.0
966574 967112 538 0.1
bl702+rpc (read only) 3358 3358 0 0.0
(read/write) 1276867 1277411 544 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 1708971 1709055 84 0.0
.debug_aranges 156648 156608 -40 -0.0
.debug_frame 573648 573412 -236 -0.0
.debug_info 49503399 49504529 1130 0.0
.debug_line 5975210 5975838 628 0.0
.debug_loc 3987899 3989851 1952 0.0
.debug_ranges 414000 417456 3456 0.8
.debug_str 4745416 4745440 24 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 121296 121296 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 643826 643549 -277 -0.0
.symtab 194080 194000 -80 -0.0
.tcm_data 28 28 0 0.0
.tcmcode 3358 3358 0 0.0
.text 0 0 0 0.0
1039960 1040500 540 0.1
cc32xx lock CC3235SF_LAUNCHXL (blank) 0 0 0 0.0
(read only) 606066 604954 -1112 -0.2
(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 949825 949864 39 0.0
.debug_aranges 117512 117664 152 0.1
.debug_frame 400904 401392 488 0.1
.debug_info 22708987 22708283 -704 -0.0
.debug_line 2853238 2853202 -36 -0.0
.debug_line_str 513 513 0 0.0
.debug_loc 33340 33340 0 0.0
.debug_loclists 1711740 1709636 -2104 -0.1
.debug_ranges 4984 4984 0 0.0
.debug_rnglists 106399 106503 104 0.1
.debug_str 3759427 3759451 24 0.0
.ramVecs 780 780 0 0.0
.resetVecs 64 64 0 0.0
.rodata 104418 104418 0 0.0
.shstrtab 265 265 0 0.0
.stack 2048 2048 0 0.0
.strtab 484683 484798 115 0.0
.symtab 287504 287568 64 0.0
.text 499528 498416 -1112 -0.2
cyw30739 light cyw930739m2evb_01 (read/write) 542011 541755 -256 -0.0
.app_xip_area 434637 434381 -256 -0.1
.bss 62352 62352 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) 529411 529155 -256 -0.0
.app_xip_area 416901 416645 -256 -0.1
.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) 566243 566003 -240 -0.0
.app_xip_area 459797 459557 -240 -0.1
.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) 530939 530659 -280 -0.1
.app_xip_area 421925 421645 -280 -0.1
.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) 988164 987012 -1152 -0.1
.bss 179856 179856 0 0.0
.data 2144 2144 0 0.0
.text 806144 804992 -1152 -0.1
BRD4187C (read/write) 1019000 1018680 -320 -0.0
.bss 159588 159588 0 0.0
.data 2788 2788 0 0.0
.text 856604 856284 -320 -0.0
lock-app BRD4161A+wf200 (read/write) 1069240 1069000 -240 -0.0
.bss 174160 174160 0 0.0
.data 2152 2152 0 0.0
.text 892908 892668 -240 -0.0
window-app BRD4187C (read/write) 1091008 1089728 -1280 -0.1
.bss 142572 142572 0 0.0
.data 2680 2680 0 0.0
.text 945736 944456 -1280 -0.1
esp32 all-clusters-app c3devkit (read only) 1068922 1068802 -120 -0.0
(read/write) 1583064 1583064 0 0.0
.dram0.bss 75536 75536 0 0.0
.dram0.data 13964 13964 0 0.0
.flash.rodata 214432 214432 0 0.0
.flash.text 1068922 1068802 -120 -0.0
.iram0.text 76740 76740 0 0.0
m5stack (read only) 1114679 1114599 -80 -0.0
(read/write) 492322 492322 0 0.0
.dram0.bss 80536 80536 0 0.0
.dram0.data 34304 34304 0 0.0
.flash.rodata 242332 242332 0 0.0
.flash.text 1109295 1109215 -80 -0.0
.iram0.text 126055 126055 0 0.0
k32w contact k32w0+release (read only) 583612 583292 -320 -0.1
(read/write) 82704 82704 0 0.0
.bss 65888 65888 0 0.0
.data 2192 2192 0 0.0
.text 583076 582756 -320 -0.1
light k32w0+release (read only) 582572 582204 -368 -0.1
(read/write) 82356 82356 0 0.0
.bss 65552 65552 0 0.0
.data 2180 2180 0 0.0
.text 582036 581668 -368 -0.1
lock k32w0+release (read only) 556188 555804 -384 -0.1
(read/write) 80352 80352 0 0.0
.bss 63624 63624 0 0.0
.data 2104 2104 0 0.0
.text 555652 555268 -384 -0.1
linux all-clusters-app debug (read only) 3239893 3239541 -352 -0.0
(read/write) 154904 154904 0 0.0
.bss 58592 58592 0 0.0
.data 2160 2160 0 0.0
.data.rel.ro 87632 87632 0 0.0
.dynamic 608 608 0 0.0
.got 4728 4728 0 0.0
.init 27 27 0 0.0
.init_array 1136 1136 0 0.0
.rodata 231304 231304 0 0.0
.text 2819301 2818949 -352 -0.0
all-clusters-minimal-app debug (read only) 3037573 3037221 -352 -0.0
(read/write) 145064 145064 0 0.0
.bss 57344 57344 0 0.0
.data 2128 2128 0 0.0
.data.rel.ro 79184 79184 0 0.0
.dynamic 608 608 0 0.0
.got 4664 4664 0 0.0
.init 27 27 0 0.0
.init_array 1088 1088 0 0.0
.rodata 224168 224168 0 0.0
.text 2628229 2627877 -352 -0.0
bridge-app debug (read only) 2518821 2518469 -352 -0.0
(read/write) 129672 129672 0 0.0
.bss 50232 50232 0 0.0
.data 3824 3824 0 0.0
.data.rel.ro 69616 69616 0 0.0
.dynamic 608 608 0 0.0
.got 4568 4568 0 0.0
.init 27 27 0 0.0
.init_array 776 776 0 0.0
.rodata 172808 172808 0 0.0
.text 2173717 2173365 -352 -0.0
chip-tool debug (read only) 15497257 15488489 -8768 -0.1
(read/write) 705216 705216 0 0.0
.bss 26424 26424 0 0.0
.data 3042 3042 0 0.0
.data.rel.ro 668960 668960 0 0.0
.dynamic 608 608 0 0.0
.got 5360 5360 0 0.0
.init 27 27 0 0.0
.init_array 768 768 0 0.0
.rodata 683541 683541 0 0.0
.text 13177188 13168420 -8768 -0.1
chip-tool-ipv6only arm64 (read only) 14827364 14822276 -5088 -0.0
(read/write) 758088 758088 0 0.0
.bss 34408 34408 0 0.0
.data 3008 3008 0 0.0
.data.rel.ro 698752 698752 0 0.0
.dynamic 560 560 0 0.0
.got 16680 16680 0 0.0
.init 24 24 0 0.0
.init_array 224 224 0 0.0
.rodata 620008 620008 0 0.0
.text 12413636 12408548 -5088 -0.0
dynamic-bridge-app-ipv6only debug (read only) 2567837 2567485 -352 -0.0
(read/write) 126832 126832 0 0.0
.bss 47544 47544 0 0.0
.data 2704 2704 0 0.0
.data.rel.ro 70344 70344 0 0.0
.dynamic 624 624 0 0.0
.got 4792 4792 0 0.0
.init 27 27 0 0.0
.init_array 784 784 0 0.0
.rodata 175752 175752 0 0.0
.text 2214773 2214421 -352 -0.0
lighting-app debug+rpc+ui (read only) 3380185 3379817 -368 -0.0
(read/write) 135728 135728 0 0.0
.bss 49344 49344 0 0.0
.data 2704 2704 0 0.0
.data.rel.ro 76824 76824 0 0.0
.dynamic 656 656 0 0.0
.got 5264 5264 0 0.0
.init 27 27 0 0.0
.init_array 904 904 0 0.0
.rodata 286356 286356 0 0.0
.text 2897250 2896882 -368 -0.0
lock-app debug (read only) 2661261 2660909 -352 -0.0
(read/write) 123616 123616 0 0.0
.bss 45952 45952 0 0.0
.data 1904 1904 0 0.0
.data.rel.ro 69656 69656 0 0.0
.dynamic 608 608 0 0.0
.got 4648 4648 0 0.0
.init 27 27 0 0.0
.init_array 824 824 0 0.0
.rodata 206056 206056 0 0.0
.text 2282533 2282181 -352 -0.0
ota-provider-app debug (read only) 2210101 2209749 -352 -0.0
(read/write) 103664 103664 0 0.0
.bss 44528 44528 0 0.0
.data 2112 2112 0 0.0
.data.rel.ro 51936 51936 0 0.0
.dynamic 608 608 0 0.0
.got 3800 3800 0 0.0
.init 27 27 0 0.0
.init_array 664 664 0 0.0
.rodata 153960 153960 0 0.0
.text 1914645 1914293 -352 -0.0
ota-requestor-app debug (read only) 2377661 2377309 -352 -0.0
(read/write) 111424 111424 0 0.0
.bss 46960 46960 0 0.0
.data 2512 2512 0 0.0
.data.rel.ro 56792 56792 0 0.0
.dynamic 608 608 0 0.0
.got 3784 3784 0 0.0
.init 27 27 0 0.0
.init_array 744 744 0 0.0
.rodata 157992 157992 0 0.0
.text 2069301 2068949 -352 -0.0
shell debug (read only) 2773497 2773145 -352 -0.0
(read/write) 143224 143224 0 0.0
.bss 57512 57512 0 0.0
.data 1232 1232 0 0.0
.data.rel.ro 78632 78632 0 0.0
.dynamic 608 608 0 0.0
.got 4128 4128 0 0.0
.init 27 27 0 0.0
.init_array 1064 1064 0 0.0
.rodata 199410 199410 0 0.0
.text 2408898 2408546 -352 -0.0
thermostat-no-ble arm64 (read only) 2606252 2605964 -288 -0.0
(read/write) 142824 142824 0 0.0
.bss 52344 52344 0 0.0
.data 1736 1736 0 0.0
.data.rel.ro 79128 79128 0 0.0
.dynamic 560 560 0 0.0
.got 5520 5520 0 0.0
.init 24 24 0 0.0
.init_array 416 416 0 0.0
.rodata 129560 129560 0 0.0
.text 2211556 2211268 -288 -0.0
tv-app debug (read only) 3315081 3314665 -416 -0.0
(read/write) 261504 261504 0 0.0
.bss 171232 171232 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 1080 1080 0 0.0
.rodata 222296 222296 0 0.0
.text 2896626 2896210 -416 -0.0
tv-casting-app debug (read only) 9078665 9069881 -8784 -0.1
(read/write) 218440 218440 0 0.0
.bss 52064 52064 0 0.0
.data 1744 1744 0 0.0
.data.rel.ro 158072 158072 0 0.0
.dynamic 608 608 0 0.0
.got 4920 4920 0 0.0
.init 27 27 0 0.0
.init_array 992 992 0 0.0
.rodata 327564 327564 0 0.0
.text 8324882 8316098 -8784 -0.1
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2495712 2495456 -256 -0.0
.bss 216304 216304 0 0.0
.data 5144 5144 0 0.0
.text 1458396 1458140 -256 -0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1188876 1188588 -288 -0.0
bss 153967 153967 0 0.0
rodata 134332 134332 0 0.0
text 819884 819588 -296 -0.0
nrf7002dk_nrf5340_cpuapp (read only) 4 4 0 0.0
(read/write) 1448672 1448400 -272 -0.0
bss 133707 133707 0 0.0
rodata 230336 230336 0 0.0
text 790552 790284 -268 -0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1131760 1131472 -288 -0.0
bss 152775 152775 0 0.0
rodata 109440 109440 0 0.0
text 788880 788584 -296 -0.0
psoc6 all-clusters cy8ckit_062s2_43012 (read only) 842264 842264 0 0.0
(read/write) 1724820 1723460 -1360 -0.1
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 188516 188516 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 1292067 1292106 39 0.0
.debug_aranges 146704 146880 176 0.1
.debug_frame 490768 491332 564 0.1
.debug_info 31667592 31666747 -845 -0.0
.debug_line 3996331 3996291 -40 -0.0
.debug_line_str 957 957 0 0.0
.debug_loclists 2281880 2279166 -2714 -0.1
.debug_rnglists 142425 142547 122 0.1
.debug_str 4319228 4319252 24 0.0
.heap 842264 842264 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 745879 745994 115 0.0
.symtab 475904 475968 64 0.0
.text 0 0 0 0.0
1525356 1523996 -1360 -0.1
.zero.table 8 8 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 (read only) 843424 843424 0 0.0
(read/write) 1662476 1661116 -1360 -0.1
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 187356 187356 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 1281801 1281840 39 0.0
.debug_aranges 145840 146016 176 0.1
.debug_frame 492948 493512 564 0.1
.debug_info 31220273 31219427 -846 -0.0
.debug_line 4008589 4008549 -40 -0.0
.debug_line_str 981 981 0 0.0
.debug_loclists 2271760 2269046 -2714 -0.1
.debug_rnglists 141262 141384 122 0.1
.debug_str 4305547 4305571 24 0.0
.heap 843424 843424 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 699129 699244 115 0.0
.symtab 459136 459200 64 0.0
.text 1464172 1462812 -1360 -0.1
.zero.table 0 0 0 0.0
8 8 0 0.0
light cy8ckit_062s2_43012 (read only) 849560 849560 0 0.0
(read/write) 1595036 1593884 -1152 -0.1
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 181388 181388 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 1120043 1120082 39 0.0
.debug_aranges 136232 136376 144 0.1
.debug_frame 457036 457496 460 0.1
.debug_info 26095255 26094546 -709 -0.0
.debug_line 3587216 3587152 -64 -0.0
.debug_line_str 942 942 0 0.0
.debug_loclists 2112306 2110216 -2090 -0.1
.debug_rnglists 131284 131382 98 0.1
.debug_str 4119354 4119378 24 0.0
.heap 849560 849560 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 622577 622692 115 0.0
.symtab 424640 424704 64 0.0
.text 1402868 1401716 -1152 -0.1
.zero.table 0 0 0 0.0
8 8 0 0.0
lock cy8ckit_062s2_43012 (read only) 821960 821960 0 0.0
(read/write) 1628212 1627060 -1152 -0.1
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 208988 208988 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 1102418 1102457 39 0.0
.debug_aranges 134704 134856 152 0.1
.debug_frame 451596 452084 488 0.1
.debug_info 25661303 25660599 -704 -0.0
.debug_line 3522646 3522609 -37 -0.0
.debug_line_str 933 933 0 0.0
.debug_loclists 2085726 2083603 -2123 -0.1
.debug_rnglists 129330 129434 104 0.1
.debug_str 4081438 4081462 24 0.0
.heap 821960 821960 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 596602 596717 115 0.0
.symtab 416768 416832 64 0.0
.text 1408444 1407292 -1152 -0.1
.zero.table 0 0 0 0.0
8 8 0 0.0
telink all-clusters-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1027684 1027660 -24 -0.0
bss 97372 97372 0 0.0
text 703344 703322 -22 -0.0
all-clusters-minimal-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 959748 959724 -24 -0.0
bss 96064 96064 0 0.0
text 663822 663800 -22 -0.0
bridge-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 928192 928144 -48 -0.0
bss 100300 100300 0 0.0
text 641404 641354 -50 -0.0
contact-sensor-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 859340 859300 -40 -0.0
bss 89960 89960 0 0.0
text 584042 584008 -34 -0.0
light-switch-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 875656 875632 -24 -0.0
bss 90128 90128 0 0.0
text 598664 598640 -24 -0.0
lighting-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 964084 964052 -32 -0.0
bss 98484 98484 0 0.0
text 677788 677758 -30 -0.0
lighting-app-factory-data tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 975464 975432 -32 -0.0
bss 102732 102732 0 0.0
text 685310 685282 -28 -0.0
lighting-app-rpc tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1032508 1032476 -32 -0.0
bss 100048 100048 0 0.0
text 722254 722224 -30 -0.0
lighting-app-shell tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1064940 1064908 -32 -0.0
bss 111132 111132 0 0.0
text 742826 742796 -30 -0.0
lock-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 914764 914740 -24 -0.0
bss 90624 90624 0 0.0
text 613024 613000 -24 -0.0
ota-requestor-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 881948 881932 -16 -0.0
bss 91228 91228 0 0.0
text 605934 605920 -14 -0.0
pump-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 865356 865284 -72 -0.0
bss 90092 90092 0 0.0
text 590220 590146 -74 -0.0
pump-controller-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 852152 852080 -72 -0.0
bss 89892 89892 0 0.0
text 580340 580268 -72 -0.0
temperature-measurement-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 848276 848260 -16 -0.0
bss 89800 89800 0 0.0
text 575996 575978 -18 -0.0
thermostat tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 893688 893664 -24 -0.0
bss 90336 90336 0 0.0
text 614884 614858 -26 -0.0
window-covering tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 889084 889052 -32 -0.0
bss 90628 90628 0 0.0
text 609826 609794 -32 -0.0

Without this, it's too easy to forget to ResetError() when rolling back.  That's
exactly what happened in ClusterStateCache:OnUpdateDataVersionFilterList, and
that could lead to inability to ever re-subscribe after a subscription drop.

We had the following Rollback() calls not immediately followed by ResetError():

* In SendFailureStatus in ember-compatibility-functions.cpp. This is never
  reached when there is a failure on aAttributeReports, so doing the ResetError
  here is not a problem.
* AttributeValueEncoder::EncodeListItem. This was relying on the
  InteractionModelEngine to ResetError after the rollback.
* ClusterStateCache:OnUpdateDataVersionFilterList. When
  CreateDataVersionFilter() failed, this could leave the
  DataVersionFilterIBs::Builder in an error state, which would lead to the
  subscribe request (incorrectly) failing completely.
* WriteHandler::ProcessAttributeDataIBs. This codepath was apparently not
  getting hit in practice, since it would fail. It was also
  checkpointing/restoring on the wrong builder.
* Engine::BuildSingleReportDataAttributeReportIBs. This was buggy: If we hit an
  error other than "out of memory" while encoding the value, we could end up
  with the builder in an error state and then fail to encode our status
  response.
* ReadClient::SendReadRequest. This is never reached with an error on the
  builder.
* ReadClient::SendSubscribeRequestImpl. This is never reached with an error on
  the builder.
@github-actions
Copy link

github-actions bot commented Jun 1, 2023

PR #26982: Size comparison from 28e0423 to 783acd5

Increases above 0.2%:

platform target config section 28e0423 783acd5 change % change
bl702 lighting-app bl702 .debug_ranges 388184 391736 3552 0.9
bl702+rpc .debug_ranges 413664 417216 3552 0.9
Increases (10 builds for bl602, bl702, cc32xx, esp32, psoc6)
platform target config section 28e0423 783acd5 change % change
bl602 lighting-app bl602 (read/write) 1356026 1356794 768 0.1
.text 1036102 1036868 766 0.1
bl602+rpc (read/write) 1403022 1403782 760 0.1
.text 1067732 1068494 762 0.1
bl702 lighting-app bl702 (read/write) 1187903 1188735 832 0.1
.debug_abbrev 1551313 1551381 68 0.0
.debug_info 44560370 44561758 1388 0.0
.debug_line 5558874 5559595 721 0.0
.debug_loc 3781197 3783353 2156 0.1
.debug_ranges 388184 391736 3552 0.9
.debug_str 4315652 4315676 24 0.0
.text 966458 967286 828 0.1
bl702+rpc (read/write) 1277699 1278259 560 0.0
.debug_abbrev 1710355 1710423 68 0.0
.debug_info 49505299 49506685 1386 0.0
.debug_line 5974916 5975637 721 0.0
.debug_loc 3984360 3986516 2156 0.1
.debug_ranges 413664 417216 3552 0.9
.debug_str 4741122 4741146 24 0.0
.text 1040374 1040944 570 0.1
cc32xx lock CC3235SF_LAUNCHXL .debug_abbrev 951194 951233 39 0.0
.debug_aranges 117584 117736 152 0.1
.debug_frame 401012 401500 488 0.1
.debug_rnglists 106453 106557 104 0.1
.debug_str 3756505 3756529 24 0.0
.strtab 484233 484348 115 0.0
.symtab 287408 287472 64 0.0
esp32 all-clusters-app m5stack (read/write) 493822 493826 4 0.0
.flash.rodata 243664 243668 4 0.0
psoc6 all-clusters cy8ckit_062s2_43012 .debug_abbrev 1294089 1294128 39 0.0
.debug_aranges 146872 147048 176 0.1
.debug_frame 491068 491632 564 0.1
.debug_rnglists 142551 142673 122 0.1
.debug_str 4316224 4316248 24 0.0
.strtab 745938 746053 115 0.0
.symtab 476144 476208 64 0.0
all-clusters-minimal cy8ckit_062s2_43012 .debug_abbrev 1283823 1283862 39 0.0
.debug_aranges 145912 146088 176 0.1
.debug_frame 493056 493620 564 0.1
.debug_rnglists 141316 141438 122 0.1
.debug_str 4301235 4301259 24 0.0
.strtab 698504 698619 115 0.0
.symtab 459008 459072 64 0.0
light cy8ckit_062s2_43012 .debug_abbrev 1121574 1121613 39 0.0
.debug_aranges 136304 136448 144 0.1
.debug_frame 457144 457604 460 0.1
.debug_rnglists 131338 131436 98 0.1
.debug_str 4115363 4115387 24 0.0
.strtab 622002 622117 115 0.0
.symtab 424512 424576 64 0.0
lock cy8ckit_062s2_43012 .debug_abbrev 1103896 1103935 39 0.0
.debug_aranges 134776 134928 152 0.1
.debug_frame 451704 452192 488 0.1
.debug_rnglists 129384 129488 104 0.1
.debug_str 4077447 4077471 24 0.0
.strtab 596027 596142 115 0.0
.symtab 416640 416704 64 0.0
Decreases (56 builds for bl702, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
platform target config section 28e0423 783acd5 change % change
bl702 lighting-app bl702 .debug_aranges 148448 148408 -40 -0.0
.debug_frame 545792 545556 -236 -0.0
.strtab 582090 581945 -145 -0.0
.symtab 175536 175472 -64 -0.0
bl702+rpc .debug_aranges 156736 156696 -40 -0.0
.debug_frame 573804 573568 -236 -0.0
.strtab 643593 643448 -145 -0.0
.symtab 194096 194032 -64 -0.0
cc32xx lock CC3235SF_LAUNCHXL (read only) 605850 604786 -1064 -0.2
.debug_info 22707684 22706979 -705 -0.0
.debug_line 2853264 2853226 -38 -0.0
.debug_loclists 1711471 1709367 -2104 -0.1
.text 499272 498208 -1064 -0.2
cyw30739 light cyw930739m2evb_01 (read/write) 541995 541723 -272 -0.1
.app_xip_area 434621 434349 -272 -0.1
lock cyw930739m2evb_01 (read/write) 529387 529131 -256 -0.0
.app_xip_area 416877 416621 -256 -0.1
ota-requestor cyw930739m2evb_01 (read/write) 566283 566043 -240 -0.0
.app_xip_area 459837 459597 -240 -0.1
switch cyw930739m2evb_01 (read/write) 530915 530627 -288 -0.1
.app_xip_area 421901 421613 -288 -0.1
efr32 lighting-app BRD4161A+rs9116 (read/write) 987924 986820 -1104 -0.1
.text 805904 804800 -1104 -0.1
BRD4187C (read/write) 1019560 1019240 -320 -0.0
.text 857164 856844 -320 -0.0
lock-app BRD4161A+wf200 (read/write) 1069240 1069000 -240 -0.0
.text 892908 892668 -240 -0.0
window-app BRD4187C (read/write) 1090488 1089264 -1224 -0.1
.text 945216 943992 -1224 -0.1
esp32 all-clusters-app c3devkit (read only) 1069166 1069052 -114 -0.0
.flash.text 1069166 1069052 -114 -0.0
m5stack (read only) 1115123 1115055 -68 -0.0
.flash.text 1109739 1109671 -68 -0.0
k32w contact k32w0+release (read only) 584652 584332 -320 -0.1
.text 584116 583796 -320 -0.1
light k32w0+release (read only) 583612 583244 -368 -0.1
.text 583076 582708 -368 -0.1
lock k32w0+release (read only) 556156 555788 -368 -0.1
.text 555620 555252 -368 -0.1
linux all-clusters-app debug (read only) 3239341 3238973 -368 -0.0
.text 2818501 2818133 -368 -0.0
all-clusters-minimal-app debug (read only) 3036109 3035757 -352 -0.0
.text 2626805 2626453 -352 -0.0
bridge-app debug (read only) 2518637 2518285 -352 -0.0
.text 2173573 2173221 -352 -0.0
chip-tool debug (read only) 15477097 15468361 -8736 -0.1
.text 13157892 13149156 -8736 -0.1
chip-tool-ipv6only arm64 (read only) 14808708 14803636 -5072 -0.0
.text 12395956 12390884 -5072 -0.0
dynamic-bridge-app-ipv6only debug (read only) 2567653 2567301 -352 -0.0
.text 2214629 2214277 -352 -0.0
lighting-app debug+rpc+ui (read only) 3381241 3380873 -368 -0.0
.text 2898162 2897794 -368 -0.0
lock-app debug (read only) 2659829 2659461 -368 -0.0
.text 2281141 2280773 -368 -0.0
ota-provider-app debug (read only) 2208669 2208301 -368 -0.0
.text 1913253 1912885 -368 -0.0
ota-requestor-app debug (read only) 2376245 2375893 -352 -0.0
.text 2067893 2067541 -352 -0.0
shell debug (read only) 2773113 2772761 -352 -0.0
.text 2408194 2407842 -352 -0.0
thermostat-no-ble arm64 (read only) 2605196 2604924 -272 -0.0
.text 2210596 2210324 -272 -0.0
tv-app debug (read only) 3313521 3313105 -416 -0.0
.text 2895106 2894690 -416 -0.0
tv-casting-app debug (read only) 9058721 9049969 -8752 -0.1
.text 8305986 8297234 -8752 -0.1
mbed lock-app CY8CPROTO_062_4343W+release (read/write) 2496392 2496136 -256 -0.0
.text 1459076 1458820 -256 -0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1190588 1190284 -304 -0.0
text 820052 819756 -296 -0.0
nrf7002dk_nrf5340_cpuapp (read/write) 1450424 1450168 -256 -0.0
text 790776 790512 -264 -0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1131696 1131392 -304 -0.0
text 788820 788524 -296 -0.0
psoc6 all-clusters cy8ckit_062s2_43012 (read/write) 1726148 1724836 -1312 -0.1
.debug_info 31666227 31665382 -845 -0.0
.debug_line 3996836 3996794 -42 -0.0
.debug_loclists 2281929 2279215 -2714 -0.1
.text 1526516 1525204 -1312 -0.1
all-clusters-minimal cy8ckit_062s2_43012 (read/write) 1662236 1660924 -1312 -0.1
.debug_info 31218086 31217242 -844 -0.0
.debug_line 4008614 4008572 -42 -0.0
.debug_loclists 2271463 2268749 -2714 -0.1
.text 1463932 1462620 -1312 -0.1
light cy8ckit_062s2_43012 (read/write) 1594788 1593684 -1104 -0.1
.debug_info 2609334 26092633 -708 -0.0
.debug_line 3587241 3587175 -66 -0.0
.debug_loclists 2112009 2109919 -2090 -0.1
.text 1402620 1401516 -1104 -0.1
lock cy8ckit_062s2_43012 (read/write) 1627964 1626844 -1120 -0.1
.debug_info 25659344 25658639 -705 -0.0
.debug_line 3522671 3522632 -39 -0.0
.debug_loclists 2085429 2083306 -2123 -0.1
.text 1408196 1407076 -1120 -0.1
qpg lighting-app qpg6105+debug (read/write) 1170468 1170164 -304 -0.0
.text 617564 617260 -304 -0.0
lock-app qpg6105+debug (read/write) 1139852 1139524 -328 -0.0
.text 586952 586624 -328 -0.1
telink all-clusters-app tlsr9518adk80d (read/write) 1029616 1029592 -24 -0.0
text 703656 703636 -20 -0.0
all-clusters-minimal-app tlsr9518adk80d (read/write) 960012 959988 -24 -0.0
text 664062 664038 -24 -0.0
bridge-app tlsr9518adk80d (read/write) 928352 928296 -56 -0.0
text 641538 641488 -50 -0.0
contact-sensor-app tlsr9518adk80d (read/write) 859596 859572 -24 -0.0
text 584278 584250 -28 -0.0
light-switch-app tlsr9518adk80d (read/write) 875912 875888 -24 -0.0
text 598900 598876 -24 -0.0
lighting-app tlsr9518adk80d (read/write) 964244 964212 -32 -0.0
text 677924 677894 -30 -0.0
lighting-app-factory-data tlsr9518adk80d (read/write) 975624 975584 -40 -0.0
text 685446 685412 -34 -0.0
lighting-app-rpc tlsr9518adk80d (read/write) 1033348 1033316 -32 -0.0
text 722622 722588 -34 -0.0
lighting-app-shell tlsr9518adk80d (read/write) 1065100 1065068 -32 -0.0
text 742960 742930 -30 -0.0
lock-app tlsr9518adk80d (read/write) 915020 915004 -16 -0.0
text 613260 613240 -20 -0.0
ota-requestor-app tlsr9518adk80d (read/write) 882172 882156 -16 -0.0
text 606082 606068 -14 -0.0
pump-app tlsr9518adk80d (read/write) 865612 865548 -64 -0.0
text 590454 590386 -68 -0.0
pump-controller-app tlsr9518adk80d (read/write) 852408 852344 -64 -0.0
text 580574 580508 -66 -0.0
temperature-measurement-app tlsr9518adk80d (read/write) 848516 848500 -16 -0.0
text 576156 576138 -18 -0.0
thermostat tlsr9518adk80d (read/write) 893944 893920 -24 -0.0
text 615118 615094 -24 -0.0
window-covering tlsr9518adk80d (read/write) 889340 889316 -24 -0.0
text 610058 610030 -28 -0.0
Full report (58 builds for bl602, bl702, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
platform target config section 28e0423 783acd5 change % change
bl602 lighting-app bl602 (read/write) 1356026 1356794 768 0.1
.bss 87886 87886 0 0.0
.data 9648 9648 0 0.0
.text 1036102 1036868 766 0.1
bl602+rpc (read/write) 1403022 1403782 760 0.1
.bss 95934 95934 0 0.0
.data 10040 10040 0 0.0
.text 1067732 1068494 762 0.1
bl702 lighting-app bl702 (read only) 3358 3358 0 0.0
(read/write) 1187903 1188735 832 0.1
.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 1551313 1551381 68 0.0
.debug_aranges 148448 148408 -40 -0.0
.debug_frame 545792 545556 -236 -0.0
.debug_info 44560370 44561758 1388 0.0
.debug_line 5558874 5559595 721 0.0
.debug_loc 3781197 3783353 2156 0.1
.debug_ranges 388184 391736 3552 0.9
.debug_str 4315652 4315676 24 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 582090 581945 -145 -0.0
.symtab 175536 175472 -64 -0.0
.tcm_data 28 28 0 0.0
.tcmcode 3358 3358 0 0.0
.text 0 0 0 0.0
966458 967286 828 0.1
bl702+rpc (read only) 3358 3358 0 0.0
(read/write) 1277699 1278259 560 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 1710355 1710423 68 0.0
.debug_aranges 156736 156696 -40 -0.0
.debug_frame 573804 573568 -236 -0.0
.debug_info 49505299 49506685 1386 0.0
.debug_line 5974916 5975637 721 0.0
.debug_loc 3984360 3986516 2156 0.1
.debug_ranges 413664 417216 3552 0.9
.debug_str 4741122 4741146 24 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 121712 121712 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 643593 643448 -145 -0.0
.symtab 194096 194032 -64 -0.0
.tcm_data 28 28 0 0.0
.tcmcode 3358 3358 0 0.0
.text 0 0 0 0.0
1040374 1040944 570 0.1
cc32xx lock CC3235SF_LAUNCHXL (blank) 0 0 0 0.0
(read only) 605850 604786 -1064 -0.2
(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 951194 951233 39 0.0
.debug_aranges 117584 117736 152 0.1
.debug_frame 401012 401500 488 0.1
.debug_info 22707684 22706979 -705 -0.0
.debug_line 2853264 2853226 -38 -0.0
.debug_line_str 513 513 0 0.0
.debug_loc 33340 33340 0 0.0
.debug_loclists 1711471 1709367 -2104 -0.1
.debug_ranges 4984 4984 0 0.0
.debug_rnglists 106453 106557 104 0.1
.debug_str 3756505 3756529 24 0.0
.ramVecs 780 780 0 0.0
.resetVecs 64 64 0 0.0
.rodata 104458 104458 0 0.0
.shstrtab 265 265 0 0.0
.stack 2048 2048 0 0.0
.strtab 484233 484348 115 0.0
.symtab 287408 287472 64 0.0
.text 499272 498208 -1064 -0.2
cyw30739 light cyw930739m2evb_01 (read/write) 541995 541723 -272 -0.1
.app_xip_area 434621 434349 -272 -0.1
.bss 62352 62352 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) 529387 529131 -256 -0.0
.app_xip_area 416877 416621 -256 -0.1
.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) 566283 566043 -240 -0.0
.app_xip_area 459837 459597 -240 -0.1
.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) 530915 530627 -288 -0.1
.app_xip_area 421901 421613 -288 -0.1
.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) 987924 986820 -1104 -0.1
.bss 179856 179856 0 0.0
.data 2144 2144 0 0.0
.text 805904 804800 -1104 -0.1
BRD4187C (read/write) 1019560 1019240 -320 -0.0
.bss 159588 159588 0 0.0
.data 2788 2788 0 0.0
.text 857164 856844 -320 -0.0
lock-app BRD4161A+wf200 (read/write) 1069240 1069000 -240 -0.0
.bss 174160 174160 0 0.0
.data 2152 2152 0 0.0
.text 892908 892668 -240 -0.0
window-app BRD4187C (read/write) 1090488 1089264 -1224 -0.1
.bss 142572 142572 0 0.0
.data 2680 2680 0 0.0
.text 945216 943992 -1224 -0.1
esp32 all-clusters-app c3devkit (read only) 1069166 1069052 -114 -0.0
(read/write) 1584576 1584576 0 0.0
.dram0.bss 75704 75704 0 0.0
.dram0.data 13964 13964 0 0.0
.flash.rodata 215768 215768 0 0.0
.flash.text 1069166 1069052 -114 -0.0
.iram0.text 76740 76740 0 0.0
m5stack (read only) 1115123 1115055 -68 -0.0
(read/write) 493822 493826 4 0.0
.dram0.bss 80704 80704 0 0.0
.dram0.data 34304 34304 0 0.0
.flash.rodata 243664 243668 4 0.0
.flash.text 1109739 1109671 -68 -0.0
.iram0.text 126055 126055 0 0.0
k32w contact k32w0+release (read only) 584652 584332 -320 -0.1
(read/write) 90108 90108 0 0.0
.bss 66104 66104 0 0.0
.data 2168 2168 0 0.0
.text 584116 583796 -320 -0.1
light k32w0+release (read only) 583612 583244 -368 -0.1
(read/write) 89756 89756 0 0.0
.bss 65768 65768 0 0.0
.data 2156 2156 0 0.0
.text 583076 582708 -368 -0.1
lock k32w0+release (read only) 556156 555788 -368 -0.1
(read/write) 87556 87556 0 0.0
.bss 63632 63632 0 0.0
.data 2100 2100 0 0.0
.text 555620 555252 -368 -0.1
linux all-clusters-app debug (read only) 3239341 3238973 -368 -0.0
(read/write) 156952 156952 0 0.0
.bss 58784 58784 0 0.0
.data 2160 2160 0 0.0
.data.rel.ro 89496 89496 0 0.0
.dynamic 608 608 0 0.0
.got 4728 4728 0 0.0
.init 27 27 0 0.0
.init_array 1136 1136 0 0.0
.rodata 231336 231336 0 0.0
.text 2818501 2818133 -368 -0.0
all-clusters-minimal-app debug (read only) 3036109 3035757 -352 -0.0
(read/write) 145000 145000 0 0.0
.bss 57344 57344 0 0.0
.data 2128 2128 0 0.0
.data.rel.ro 79128 79128 0 0.0
.dynamic 608 608 0 0.0
.got 4664 4664 0 0.0
.init 27 27 0 0.0
.init_array 1088 1088 0 0.0
.rodata 224200 224200 0 0.0
.text 2626805 2626453 -352 -0.0
bridge-app debug (read only) 2518637 2518285 -352 -0.0
(read/write) 129608 129608 0 0.0
.bss 50232 50232 0 0.0
.data 3824 3824 0 0.0
.data.rel.ro 69560 69560 0 0.0
.dynamic 608 608 0 0.0
.got 4568 4568 0 0.0
.init 27 27 0 0.0
.init_array 776 776 0 0.0
.rodata 172840 172840 0 0.0
.text 2173573 2173221 -352 -0.0
chip-tool debug (read only) 15477097 15468361 -8736 -0.1
(read/write) 704768 704768 0 0.0
.bss 26424 26424 0 0.0
.data 3042 3042 0 0.0
.data.rel.ro 668512 668512 0 0.0
.dynamic 608 608 0 0.0
.got 5360 5360 0 0.0
.init 27 27 0 0.0
.init_array 768 768 0 0.0
.rodata 683733 683733 0 0.0
.text 13157892 13149156 -8736 -0.1
chip-tool-ipv6only arm64 (read only) 14808708 14803636 -5072 -0.0
(read/write) 757608 757608 0 0.0
.bss 34408 34408 0 0.0
.data 3008 3008 0 0.0
.data.rel.ro 698304 698304 0 0.0
.dynamic 560 560 0 0.0
.got 16648 16648 0 0.0
.init 24 24 0 0.0
.init_array 224 224 0 0.0
.rodata 620184 620184 0 0.0
.text 12395956 12390884 -5072 -0.0
dynamic-bridge-app-ipv6only debug (read only) 2567653 2567301 -352 -0.0
(read/write) 126768 126768 0 0.0
.bss 47544 47544 0 0.0
.data 2704 2704 0 0.0
.data.rel.ro 70288 70288 0 0.0
.dynamic 624 624 0 0.0
.got 4792 4792 0 0.0
.init 27 27 0 0.0
.init_array 784 784 0 0.0
.rodata 175784 175784 0 0.0
.text 2214629 2214277 -352 -0.0
lighting-app debug+rpc+ui (read only) 3381241 3380873 -368 -0.0
(read/write) 135696 135696 0 0.0
.bss 49344 49344 0 0.0
.data 2704 2704 0 0.0
.data.rel.ro 76768 76768 0 0.0
.dynamic 656 656 0 0.0
.got 5280 5280 0 0.0
.init 27 27 0 0.0
.init_array 904 904 0 0.0
.rodata 286388 286388 0 0.0
.text 2898162 2897794 -368 -0.0
lock-app debug (read only) 2659829 2659461 -368 -0.0
(read/write) 123584 123584 0 0.0
.bss 45952 45952 0 0.0
.data 1904 1904 0 0.0
.data.rel.ro 69600 69600 0 0.0
.dynamic 608 608 0 0.0
.got 4648 4648 0 0.0
.init 27 27 0 0.0
.init_array 824 824 0 0.0
.rodata 206088 206088 0 0.0
.text 2281141 2280773 -368 -0.0
ota-provider-app debug (read only) 2208669 2208301 -368 -0.0
(read/write) 103600 103600 0 0.0
.bss 44528 44528 0 0.0
.data 2112 2112 0 0.0
.data.rel.ro 51880 51880 0 0.0
.dynamic 608 608 0 0.0
.got 3800 3800 0 0.0
.init 27 27 0 0.0
.init_array 664 664 0 0.0
.rodata 153992 153992 0 0.0
.text 1913253 1912885 -368 -0.0
ota-requestor-app debug (read only) 2376245 2375893 -352 -0.0
(read/write) 111392 111392 0 0.0
.bss 46960 46960 0 0.0
.data 2512 2512 0 0.0
.data.rel.ro 56736 56736 0 0.0
.dynamic 608 608 0 0.0
.got 3784 3784 0 0.0
.init 27 27 0 0.0
.init_array 744 744 0 0.0
.rodata 158056 158056 0 0.0
.text 2067893 2067541 -352 -0.0
shell debug (read only) 2773113 2772761 -352 -0.0
(read/write) 145336 145336 0 0.0
.bss 57704 57704 0 0.0
.data 1232 1232 0 0.0
.data.rel.ro 80552 80552 0 0.0
.dynamic 608 608 0 0.0
.got 4128 4128 0 0.0
.init 27 27 0 0.0
.init_array 1064 1064 0 0.0
.rodata 199442 199442 0 0.0
.text 2408194 2407842 -352 -0.0
thermostat-no-ble arm64 (read only) 2605196 2604924 -272 -0.0
(read/write) 142760 142760 0 0.0
.bss 52344 52344 0 0.0
.data 1736 1736 0 0.0
.data.rel.ro 79072 79072 0 0.0
.dynamic 560 560 0 0.0
.got 5512 5512 0 0.0
.init 24 24 0 0.0
.init_array 416 416 0 0.0
.rodata 129608 129608 0 0.0
.text 2210596 2210324 -272 -0.0
tv-app debug (read only) 3313521 3313105 -416 -0.0
(read/write) 261472 261472 0 0.0
.bss 171232 171232 0 0.0
.data 4080 4080 0 0.0
.data.rel.ro 79424 79424 0 0.0
.dynamic 608 608 0 0.0
.got 5000 5000 0 0.0
.init 27 27 0 0.0
.init_array 1080 1080 0 0.0
.rodata 222328 222328 0 0.0
.text 2895106 2894690 -416 -0.0
tv-casting-app debug (read only) 9058721 9049969 -8752 -0.1
(read/write) 217960 217960 0 0.0
.bss 52064 52064 0 0.0
.data 1744 1744 0 0.0
.data.rel.ro 157600 157600 0 0.0
.dynamic 608 608 0 0.0
.got 4920 4920 0 0.0
.init 27 27 0 0.0
.init_array 992 992 0 0.0
.rodata 327596 327596 0 0.0
.text 8305986 8297234 -8752 -0.1
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2496392 2496136 -256 -0.0
.bss 216304 216304 0 0.0
.data 5144 5144 0 0.0
.text 1459076 1458820 -256 -0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1190588 1190284 -304 -0.0
bss 154135 154135 0 0.0
rodata 135612 135612 0 0.0
text 820052 819756 -296 -0.0
nrf7002dk_nrf5340_cpuapp (read only) 4 4 0 0.0
(read/write) 1450424 1450168 -256 -0.0
bss 133875 133875 0 0.0
rodata 231672 231672 0 0.0
text 790776 790512 -264 -0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read only) 4 4 0 0.0
(read/write) 1131696 1131392 -304 -0.0
bss 152775 152775 0 0.0
rodata 109424 109424 0 0.0
text 788820 788524 -296 -0.0
psoc6 all-clusters cy8ckit_062s2_43012 (read only) 842096 842096 0 0.0
(read/write) 1726148 1724836 -1312 -0.1
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 188684 188684 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 1294089 1294128 39 0.0
.debug_aranges 146872 147048 176 0.1
.debug_frame 491068 491632 564 0.1
.debug_info 31666227 31665382 -845 -0.0
.debug_line 3996836 3996794 -42 -0.0
.debug_line_str 957 957 0 0.0
.debug_loclists 2281929 2279215 -2714 -0.1
.debug_rnglists 142551 142673 122 0.1
.debug_str 4316224 4316248 24 0.0
.heap 842096 842096 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 745938 746053 115 0.0
.symtab 476144 476208 64 0.0
.text 1526516 1525204 -1312 -0.1
.zero.table 8 8 0 0.0
text 0 0 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 (read only) 843424 843424 0 0.0
(read/write) 1662236 1660924 -1312 -0.1
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 187356 187356 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 1283823 1283862 39 0.0
.debug_aranges 145912 146088 176 0.1
.debug_frame 493056 493620 564 0.1
.debug_info 31218086 31217242 -844 -0.0
.debug_line 4008614 4008572 -42 -0.0
.debug_line_str 981 981 0 0.0
.debug_loclists 2271463 2268749 -2714 -0.1
.debug_rnglists 141316 141438 122 0.1
.debug_str 4301235 4301259 24 0.0
.heap 843424 843424 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 698504 698619 115 0.0
.symtab 459008 459072 64 0.0
.text 1463932 1462620 -1312 -0.1
.zero.table 0 0 0 0.0
8 8 0 0.0
light cy8ckit_062s2_43012 (read only) 849560 849560 0 0.0
(read/write) 1594788 1593684 -1104 -0.1
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 181388 181388 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 1121574 1121613 39 0.0
.debug_aranges 136304 136448 144 0.1
.debug_frame 457144 457604 460 0.1
.debug_info 2609334 26092633 -708 -0.0
.debug_line 3587241 3587175 -66 -0.0
.debug_line_str 942 942 0 0.0
.debug_loclists 2112009 2109919 -2090 -0.1
.debug_rnglists 131338 131436 98 0.1
.debug_str 4115363 4115387 24 0.0
.heap 849560 849560 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 622002 622117 115 0.0
.symtab 424512 424576 64 0.0
.text 1402620 1401516 -1104 -0.1
.zero.table 0 0 0 0.0
8 8 0 0.0
lock cy8ckit_062s2_43012 (read only) 821960 821960 0 0.0
(read/write) 1627964 1626844 -1120 -0.1
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 208988 208988 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 1103896 1103935 39 0.0
.debug_aranges 134776 134928 152 0.1
.debug_frame 451704 452192 488 0.1
.debug_info 25659344 25658639 -705 -0.0
.debug_line 3522671 3522632 -39 -0.0
.debug_line_str 933 933 0 0.0
.debug_loclists 2085429 2083306 -2123 -0.1
.debug_rnglists 129384 129488 104 0.1
.debug_str 4077447 4077471 24 0.0
.heap 821960 821960 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 596027 596142 115 0.0
.symtab 416640 416704 64 0.0
.text 1408196 1407076 -1120 -0.1
.zero.table 0 0 0 0.0
8 8 0 0.0
qpg lighting-app qpg6105+debug (read/write) 1170468 1170164 -304 -0.0
.bss 99928 99928 0 0.0
.data 852 852 0 0.0
.text 617564 617260 -304 -0.0
lock-app qpg6105+debug (read/write) 1139852 1139524 -328 -0.0
.bss 94824 94824 0 0.0
.data 856 856 0 0.0
.text 586952 586624 -328 -0.1
telink all-clusters-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1029616 1029592 -24 -0.0
bss 97548 97548 0 0.0
text 703656 703636 -20 -0.0
all-clusters-minimal-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 960012 959988 -24 -0.0
bss 96072 96072 0 0.0
text 664062 664038 -24 -0.0
bridge-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 928352 928296 -56 -0.0
bss 100308 100308 0 0.0
text 641538 641488 -50 -0.0
contact-sensor-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 859596 859572 -24 -0.0
bss 89968 89968 0 0.0
text 584278 584250 -28 -0.0
light-switch-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 875912 875888 -24 -0.0
bss 90136 90136 0 0.0
text 598900 598876 -24 -0.0
lighting-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 964244 964212 -32 -0.0
bss 98492 98492 0 0.0
text 677924 677894 -30 -0.0
lighting-app-factory-data tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 975624 975584 -40 -0.0
bss 102740 102740 0 0.0
text 685446 685412 -34 -0.0
lighting-app-rpc tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1033348 1033316 -32 -0.0
bss 100056 100056 0 0.0
text 722622 722588 -34 -0.0
lighting-app-shell tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 1065100 1065068 -32 -0.0
bss 111140 111140 0 0.0
text 742960 742930 -30 -0.0
lock-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 915020 915004 -16 -0.0
bss 90632 90632 0 0.0
text 613260 613240 -20 -0.0
ota-requestor-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 882172 882156 -16 -0.0
bss 91236 91236 0 0.0
text 606082 606068 -14 -0.0
pump-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 865612 865548 -64 -0.0
bss 90100 90100 0 0.0
text 590454 590386 -68 -0.0
pump-controller-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 852408 852344 -64 -0.0
bss 89900 89900 0 0.0
text 580574 580508 -66 -0.0
temperature-measurement-app tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 848516 848500 -16 -0.0
bss 89808 89808 0 0.0
text 576156 576138 -18 -0.0
thermostat tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 893944 893920 -24 -0.0
bss 90344 90344 0 0.0
text 615118 615094 -24 -0.0
window-covering tlsr9518adk80d (read only) 4 4 0 0.0
(read/write) 889340 889316 -24 -0.0
bss 90636 90636 0 0.0
text 610058 610030 -28 -0.0

@andy31415 andy31415 merged commit a669fc0 into project-chip:master Jun 2, 2023
@bzbarsky-apple bzbarsky-apple deleted the rollback-reset-state branch June 2, 2023 22:30
bzbarsky-apple added a commit to bzbarsky-apple/connectedhomeip that referenced this pull request Jun 2, 2023
…r. (project-chip#26982)

* Rollback() on data model builder should reset the error on the builder.

Without this, it's too easy to forget to ResetError() when rolling back.  That's
exactly what happened in ClusterStateCache:OnUpdateDataVersionFilterList, and
that could lead to inability to ever re-subscribe after a subscription drop.

We had the following Rollback() calls not immediately followed by ResetError():

* In SendFailureStatus in ember-compatibility-functions.cpp. This is never
  reached when there is a failure on aAttributeReports, so doing the ResetError
  here is not a problem.
* AttributeValueEncoder::EncodeListItem. This was relying on the
  InteractionModelEngine to ResetError after the rollback.
* ClusterStateCache:OnUpdateDataVersionFilterList. When
  CreateDataVersionFilter() failed, this could leave the
  DataVersionFilterIBs::Builder in an error state, which would lead to the
  subscribe request (incorrectly) failing completely.
* WriteHandler::ProcessAttributeDataIBs. This codepath was apparently not
  getting hit in practice, since it would fail. It was also
  checkpointing/restoring on the wrong builder.
* Engine::BuildSingleReportDataAttributeReportIBs. This was buggy: If we hit an
  error other than "out of memory" while encoding the value, we could end up
  with the builder in an error state and then fail to encode our status
  response.
* ReadClient::SendReadRequest. This is never reached with an error on the
  builder.
* ReadClient::SendSubscribeRequestImpl. This is never reached with an error on
  the builder.

* Address review comment.
andy31415 pushed a commit that referenced this pull request Jun 3, 2023
…r. (#26982) (#27054)

* Rollback() on data model builder should reset the error on the builder.

Without this, it's too easy to forget to ResetError() when rolling back.  That's
exactly what happened in ClusterStateCache:OnUpdateDataVersionFilterList, and
that could lead to inability to ever re-subscribe after a subscription drop.

We had the following Rollback() calls not immediately followed by ResetError():

* In SendFailureStatus in ember-compatibility-functions.cpp. This is never
  reached when there is a failure on aAttributeReports, so doing the ResetError
  here is not a problem.
* AttributeValueEncoder::EncodeListItem. This was relying on the
  InteractionModelEngine to ResetError after the rollback.
* ClusterStateCache:OnUpdateDataVersionFilterList. When
  CreateDataVersionFilter() failed, this could leave the
  DataVersionFilterIBs::Builder in an error state, which would lead to the
  subscribe request (incorrectly) failing completely.
* WriteHandler::ProcessAttributeDataIBs. This codepath was apparently not
  getting hit in practice, since it would fail. It was also
  checkpointing/restoring on the wrong builder.
* Engine::BuildSingleReportDataAttributeReportIBs. This was buggy: If we hit an
  error other than "out of memory" while encoding the value, we could end up
  with the builder in an error state and then fail to encode our status
  response.
* ReadClient::SendReadRequest. This is never reached with an error on the
  builder.
* ReadClient::SendSubscribeRequestImpl. This is never reached with an error on
  the builder.

* Address review comment.
maciejbaczmanski pushed a commit to maciejbaczmanski/connectedhomeip that referenced this pull request Jul 15, 2024
…r on the builder. (project-chip#26982) (project-chip#27054)

* Rollback() on data model builder should reset the error on the builder.

Without this, it's too easy to forget to ResetError() when rolling back.  That's
exactly what happened in ClusterStateCache:OnUpdateDataVersionFilterList, and
that could lead to inability to ever re-subscribe after a subscription drop.

We had the following Rollback() calls not immediately followed by ResetError():

* In SendFailureStatus in ember-compatibility-functions.cpp. This is never
  reached when there is a failure on aAttributeReports, so doing the ResetError
  here is not a problem.
* AttributeValueEncoder::EncodeListItem. This was relying on the
  InteractionModelEngine to ResetError after the rollback.
* ClusterStateCache:OnUpdateDataVersionFilterList. When
  CreateDataVersionFilter() failed, this could leave the
  DataVersionFilterIBs::Builder in an error state, which would lead to the
  subscribe request (incorrectly) failing completely.
* WriteHandler::ProcessAttributeDataIBs. This codepath was apparently not
  getting hit in practice, since it would fail. It was also
  checkpointing/restoring on the wrong builder.
* Engine::BuildSingleReportDataAttributeReportIBs. This was buggy: If we hit an
  error other than "out of memory" while encoding the value, we could end up
  with the builder in an error state and then fail to encode our status
  response.
* ReadClient::SendReadRequest. This is never reached with an error on the
  builder.
* ReadClient::SendSubscribeRequestImpl. This is never reached with an error on
  the builder.

* Address review comment.

(Cherry picked from commit 8db0d65)
maciejbaczmanski pushed a commit to maciejbaczmanski/connectedhomeip that referenced this pull request Jul 15, 2024
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.

3 participants