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 handle cleanup in CommandHandler. #34262

Merged

Conversation

bzbarsky-apple
Copy link
Contributor

When a CommandHandler went away, it invalidated its handles, but did not remove them from the list. This would cause it to fail a fatal assert when the non-empty list was destroyed.

The fix is to clear the list once we have invalidated all the handles, since we no longer need to track them once they have been invalidated.

When a CommandHandler went away, it invalidated its handles, but did not remove
them from the list.  This would cause it to fail a fatal assert when the
non-empty list was destroyed.

The fix is to clear the list once we have invalidated all the handles, since we
no longer need to track them once they have been invalidated.
Copy link

github-actions bot commented Jul 9, 2024

PR #34262: Size comparison from 9d3d8d2 to 3bca692

Full report (85 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, mbed, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section 9d3d8d2 3bca692 change % change
bl602 lighting-app bl602 FLASH 1271226 1271264 38 0.0
RAM 95328 95328 0 0.0
bl602+mfd FLASH 1285484 1285522 38 0.0
RAM 95472 95472 0 0.0
bl602+rpc FLASH 1310186 1310224 38 0.0
RAM 103752 103752 0 0.0
bl702 lighting-app bl702 FLASH 1092064 1092102 38 0.0
RAM 15265 15265 0 0.0
bl702+mfd FLASH 1102758 1102796 38 0.0
RAM 15417 15417 0 0.0
bl702+rpc FLASH 1181874 1181912 38 0.0
RAM 24285 24285 0 0.0
bl706-eth FLASH 875396 875434 38 0.0
RAM 27376 27376 0 0.0
bl706-wifi FLASH 1127492 1127524 32 0.0
RAM 14709 14709 0 0.0
bl702l lighting-app bl702l FLASH 1078946 1078984 38 0.0
RAM 21836 21836 0 0.0
bl702l+mfd FLASH 1090208 1090246 38 0.0
RAM 21996 21996 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 798236 798252 16 0.0
RAM 109180 109180 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 816272 816288 16 0.0
RAM 116956 116956 0 0.0
lock-mtd LP_EM_CC1354P10_6 FLASH 807732 807748 16 0.0
RAM 111236 111236 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 760588 760604 16 0.0
RAM 105336 105336 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 746300 746316 16 0.0
RAM 105576 105576 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 605970 606018 48 0.0
RAM 204508 204508 0 0.0
lock CC3235SF_LAUNCHXL FLASH 651014 651062 48 0.0
RAM 204780 204780 0 0.0
cyw30739 light CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 667377 667393 16 0.0
RAM 77644 77644 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 687221 687237 16 0.0
RAM 80276 80276 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 687221 687237 16 0.0
RAM 80276 80276 0 0.0
CYW930739M2EVB-02 unknown 2040 2040 0 0.0
FLASH 644165 644181 16 0.0
RAM 72712 72712 0 0.0
light-switch CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 609009 609025 16 0.0
RAM 70804 70804 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 628653 628669 16 0.0
RAM 73348 73348 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 628653 628669 16 0.0
RAM 73348 73348 0 0.0
lock CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 624529 624545 16 0.0
RAM 73820 73820 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 644245 644261 16 0.0
RAM 76364 76364 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 644245 644261 16 0.0
RAM 76364 76364 0 0.0
thermostat CYW30739B2-P5-EVK-01 unknown 2040 2040 0 0.0
FLASH 593109 593125 16 0.0
RAM 67788 67788 0 0.0
CYW30739B2-P5-EVK-02 unknown 2040 2040 0 0.0
FLASH 612953 612969 16 0.0
RAM 70428 70428 0 0.0
CYW30739B2-P5-EVK-03 unknown 2040 2040 0 0.0
FLASH 612953 612969 16 0.0
RAM 70428 70428 0 0.0
efr32 lighting-app BRD4187C FLASH 924336 924336 0 0.0
RAM 137516 137516 0 0.0
lock-app BRD4338a FLASH 733124 733148 24 0.0
RAM 207900 207900 0 0.0
window-app BRD4187C FLASH 1012180 1012212 32 0.0
RAM 129620 129620 0 0.0
esp32 all-clusters-app c3devkit DRAM 90860 90860 0 0.0
FLASH 1468876 1468906 30 0.0
IRAM 75570 75570 0 0.0
m5stack DRAM 117412 117412 0 0.0
FLASH 1537859 1537867 8 0.0
IRAM 125403 125403 0 0.0
linux air-purifier-app debug unknown 4592 4592 0 0.0
FLASH 2529504 2529712 208 0.0
RAM 125072 125072 0 0.0
all-clusters-app debug unknown 5368 5368 0 0.0
FLASH 5589310 5589518 208 0.0
RAM 490864 490864 0 0.0
all-clusters-minimal-app debug unknown 5288 5288 0 0.0
FLASH 5061232 5061440 208 0.0
RAM 235488 235488 0 0.0
bridge-app debug unknown 5256 5256 0 0.0
FLASH 4477824 4478032 208 0.0
RAM 212744 212744 0 0.0
chip-tool debug unknown 5728 5728 0 0.0
FLASH 11721383 11721607 224 0.0
RAM 543610 543610 0 0.0
chip-tool-ipv6only arm64 unknown 20008 20008 0 0.0
FLASH 10836092 10836284 192 0.0
RAM 592416 592416 0 0.0
fabric-admin debug unknown 5616 5616 0 0.0
FLASH 10805543 10805751 208 0.0
RAM 540450 540450 0 0.0
fabric-bridge-app debug unknown 4528 4528 0 0.0
FLASH 4243376 4243600 224 0.0
RAM 198808 198808 0 0.0
lighting-app debug+rpc+ui unknown 5936 5936 0 0.0
FLASH 5382210 5382418 208 0.0
RAM 224096 224096 0 0.0
lock-app debug unknown 5192 5192 0 0.0
FLASH 4541312 4541520 208 0.0
RAM 200240 200240 0 0.0
ota-provider-app debug unknown 4576 4576 0 0.0
FLASH 4197232 4197440 208 0.0
RAM 194520 194520 0 0.0
ota-requestor-app debug unknown 4512 4512 0 0.0
FLASH 4322768 4322992 224 0.0
RAM 199176 199176 0 0.0
shell debug unknown 4112 4112 0 0.0
FLASH 2804461 2804685 224 0.0
RAM 153000 153000 0 0.0
thermostat-no-ble arm64 unknown 9144 9144 0 0.0
FLASH 4167580 4167772 192 0.0
RAM 235640 235640 0 0.0
tv-app debug unknown 5472 5472 0 0.0
FLASH 5605504 5605712 208 0.0
RAM 341760 341760 0 0.0
tv-casting-app debug unknown 5096 5096 0 0.0
FLASH 9890878 9891086 208 0.0
RAM 400816 400816 0 0.0
mbed lock-app-release cy8cproto_062_4343w FLASH 1502420 1502420 0 0.0
RAM 226640 226640 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 882276 882296 20 0.0
RAM 142109 142109 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 952864 952884 20 0.0
RAM 140537 140537 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 827876 827892 16 0.0
RAM 141023 141023 0 0.0
nxp contact k32w0+release FLASH 576012 576028 16 0.0
RAM 70004 70004 0 0.0
k32w1+release FLASH 591280 591296 16 0.0
RAM 74056 74056 0 0.0
light k32w0+release FLASH 610128 610144 16 0.0
RAM 69480 69480 0 0.0
k32w1+release FLASH 674864 674880 16 0.0
RAM 82816 82816 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1615060 1615108 48 0.0
RAM 209692 209692 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1535972 1536020 48 0.0
RAM 206580 206580 0 0.0
light cy8ckit_062s2_43012 FLASH 1462612 1462660 48 0.0
RAM 199852 199852 0 0.0
lock cy8ckit_062s2_43012 FLASH 1463124 1463172 48 0.0
RAM 224380 224380 0 0.0
qpg lighting-app qpg6105+debug FLASH 651140 651156 16 0.0
RAM 104560 104560 0 0.0
lock-app qpg6105+debug FLASH 611256 611272 16 0.0
RAM 99228 99228 0 0.0
stm32 light STM32WB5MM-DK FLASH 473464 473480 16 0.0
RAM 144204 144204 0 0.0
telink air-quality-sensor-app tlsr9528a_retention FLASH 632600 632630 30 0.0
RAM 50424 50424 0 0.0
all-clusters-app tlsr9118bdk40d FLASH 658400 658430 30 0.0
RAM 148296 148296 0 0.0
all-clusters-minimal-app tlsr9528a FLASH 778766 778796 30 0.0
RAM 113116 113116 0 0.0
bridge-app tlsr9258a FLASH 675586 675616 30 0.0
RAM 95200 95200 0 0.0
contact-sensor-app tlsr9528a_retention FLASH 634184 634214 30 0.0
RAM 50468 50468 0 0.0
light-switch-app-ota-shell-factory-data tlsr9528a FLASH 720058 720088 30 0.0
RAM 77044 77044 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 613588 613618 30 0.0
RAM 144532 144532 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 801340 801370 30 0.0
RAM 102936 102936 0 0.0
lock-app-dfu tlsr9528a FLASH 665750 665780 30 0.0
RAM 69756 69756 0 0.0
ota-requestor-app tlsr9258a FLASH 694916 694946 30 0.0
RAM 94924 94924 0 0.0
pump-app tlsr9518adk80d FLASH 616448 616478 30 0.0
RAM 56848 56848 0 0.0
pump-controller-app tlsr9518adk80d FLASH 606832 606862 30 0.0
RAM 56648 56648 0 0.0
shell tlsr9518adk80d FLASH 466316 466316 0 0.0
RAM 72460 72460 0 0.0
smoke_co_alarm-app tlsr9528a_retention FLASH 640802 640832 30 0.0
RAM 52096 52096 0 0.0
temperature-measurement-app-mars-ota tlsr9518adk80d FLASH 650658 650688 30 0.0
RAM 60284 60284 0 0.0
thermostat tlsr9518adk80d FLASH 625722 625752 30 0.0
RAM 56980 56980 0 0.0
window-covering tlsr9118bdk40d FLASH 518982 519012 30 0.0
RAM 97696 97696 0 0.0
tizen all-clusters-app arm unknown 1584 1584 0 0.0
FLASH 1638016 1638144 128 0.0
RAM 48540 48540 0 0.0
chip-tool-ubsan arm unknown 2384 2384 0 0.0
FLASH 16170906 16171382 476 0.0
RAM 7104636 7104868 232 0.0

@woody-apple
Copy link
Contributor

Note: This is a crash reported from the wild

@woody-apple
Copy link
Contributor

Fast tracking quality fix

@mergify mergify bot merged commit 853d9ca into project-chip:master Jul 9, 2024
68 checks passed
@bzbarsky-apple bzbarsky-apple deleted the fix-command-handler-cleanup branch July 9, 2024 22:55
lazarkov pushed a commit to lazarkov/connectedhomeip that referenced this pull request Jul 10, 2024
When a CommandHandler went away, it invalidated its handles, but did not remove
them from the list.  This would cause it to fail a fatal assert when the
non-empty list was destroyed.

The fix is to clear the list once we have invalidated all the handles, since we
no longer need to track them once they have been invalidated.
austina-csa pushed a commit to austina-csa/connectedhomeip that referenced this pull request Jul 10, 2024
When a CommandHandler went away, it invalidated its handles, but did not remove
them from the list.  This would cause it to fail a fatal assert when the
non-empty list was destroyed.

The fix is to clear the list once we have invalidated all the handles, since we
no longer need to track them once they have been invalidated.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

None yet

3 participants