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

[Tizen] Do not notify the resolve error of dnssd #23156

Merged
merged 1 commit into from
Oct 14, 2022

Conversation

hyunuktak
Copy link
Contributor

@hyunuktak hyunuktak commented Oct 13, 2022

Problem

DNSSD Platform contract does not expect callback to be called from within the Resolve call. In particular, the ::Resolve error state is already returned as a return code of the method and does not need to be re-iterated within the callback (doing so seems to result in double-error handling)

For reference, at least the linux-avahi and darwin implementations also do not call the callback if an error occurs within the resolve initiation.

Change overview

Remove a notification about resolve error of dnssd.

Testing

chip-tool and chip-lighting-app examples

@github-actions
Copy link

github-actions bot commented Oct 13, 2022

PR #23156: Size comparison from 910218a to 640a69e

Increases (3 builds for bl602, telink)
platform target config section 910218a 640a69e change % change
bl602 lighting-app bl602 .text 1069052 1069054 2 0.0
telink light-switch-app tlsr9518adk80d text 553136 553138 2 0.0
lighting-app tlsr9518adk80d (read/write) 811468 811476 8 0.0
text 571356 571358 2 0.0
Decreases (7 builds for cc13x2_26x2, esp32, nrfconnect, psoc6, qpg, telink)
platform target config section 910218a 640a69e change % change
cc13x2_26x2 all-clusters-minimal-app LP_CC2652R7 (read only) 641423 641415 -8 -0.0
.text 562176 562168 -8 -0.0
esp32 all-clusters-app m5stack (read/write) 564212 564204 -8 -0.0
.flash.rodata 314936 314928 -8 -0.0
nrfconnect all-clusters-minimal-app nrf52840dk_nrf52840 text 803600 803596 -4 -0.0
psoc6 all-clusters cy8ckit_062s2_43012 .debug_info 26831617 26831616 -1 -0.0
light cy8ckit_062s2_43012 .debug_info 22032120 22032119 -1 -0.0
qpg lighting-app qpg6105+debug (read/write) 1148632 1148624 -8 -0.0
.text 595732 595724 -8 -0.0
telink ota-requestor-app tlsr9518adk80d text 577542 577540 -2 -0.0
Full report (38 builds for bl602, bl702, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
platform target config section 910218a 640a69e change % change
bl602 lighting-app bl602 (read/write) 1389646 1389646 0 0.0
.bss 90729 90729 0 0.0
.data 9928 9928 0 0.0
.text 1069052 1069054 2 0.0
bl602+rpc (read/write) 1434858 1434858 0 0.0
.bss 98161 98161 0 0.0
.data 10312 10312 0 0.0
.text 1100398 1100398 0 0.0
bl702 lighting-app bl702 (read only) 3262 3262 0 0.0
(read/write) 1188643 1188643 0 0.0
.bleromro 6296 6296 0 0.0
.bleromrw 124 124 0 0.0
.boot2 688 688 0 0.0
.bss 67102 67102 0 0.0
.bss_psram 29696 29696 0 0.0
.comment 48 48 0 0.0
.data 4272 4272 0 0.0
.debug_abbrev 1506865 1506865 0 0.0
.debug_aranges 133128 133128 0 0.0
.debug_frame 486580 486580 0 0.0
.debug_info 37905258 37905258 0 0.0
.debug_line 5256764 5256764 0 0.0
.debug_loc 3367112 3367112 0 0.0
.debug_ranges 359368 359368 0 0.0
.debug_str 3457811 3457811 0 0.0
.hbn 509 509 0 0.0
.hbn_noinit 260 260 0 0.0
.init 342 342 0 0.0
.init_array 144 144 0 0.0
.psram 0 0 0 0.0
.riscv.attributes 47 47 0 0.0
.rodata 116744 116744 0 0.0
.rsvd 3188 3188 0 0.0
.shstrtab 293 293 0 0.0
.stack 2048 2048 0 0.0
.strtab 565071 565071 0 0.0
.symtab 171664 171664 0 0.0
.tcm_data 36 36 0 0.0
.tcmcode 3262 3262 0 0.0
.text 0 0 0 0.0
957024 957024 0 0.0
bl702+rpc (read only) 3262 3262 0 0.0
(read/write) 1284579 1284579 0 0.0
.bleromro 6296 6296 0 0.0
.bleromrw 124 124 0 0.0
.boot2 688 688 0 0.0
.bss 75150 75150 0 0.0
.bss_psram 29936 29936 0 0.0
.comment 48 48 0 0.0
.data 4800 4800 0 0.0
.debug_abbrev 1644410 1644410 0 0.0
.debug_aranges 140632 140632 0 0.0
.debug_frame 511956 511956 0 0.0
.debug_info 41811871 41811871 0 0.0
.debug_line 5631299 5631299 0 0.0
.debug_loc 3559772 3559772 0 0.0
.debug_ranges 381824 381824 0 0.0
.debug_str 3853711 3853711 0 0.0
.hbn 509 509 0 0.0
.hbn_noinit 260 260 0 0.0
.init 342 342 0 0.0
.init_array 160 160 0 0.0
.psram 0 0 0 0.0
.riscv.attributes 47 47 0 0.0
.rodata 130136 130136 0 0.0
.rsvd 3188 3188 0 0.0
.shstrtab 293 293 0 0.0
.stack 2048 2048 0 0.0
.strtab 624244 624244 0 0.0
.symtab 189472 189472 0 0.0
.tcm_data 36 36 0 0.0
.tcmcode 3262 3262 0 0.0
.text 0 0 0 0.0
1030726 1030726 0 0.0
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 677175 677175 0 0.0
(read/write) 174368 174368 0 0.0
.bss 81236 81236 0 0.0
.data 3380 3380 0 0.0
.rodata 89791 89791 0 0.0
.text 587072 587072 0 0.0
all-clusters-minimal-app LP_CC2652R7 (read only) 641423 641415 -8 -0.0
(read/write) 158004 158004 0 0.0
.bss 80508 80508 0 0.0
.data 3380 3380 0 0.0
.rodata 78927 78927 0 0.0
.text 562176 562168 -8 -0.0
lock-ftd LP_CC2652R7 (read only) 675867 675867 0 0.0
(read/write) 172828 172828 0 0.0
.bss 78476 78476 0 0.0
.data 3304 3304 0 0.0
.rodata 77315 77315 0 0.0
.text 598072 598072 0 0.0
lock-mtd LP_CC2652R7 (read only) 659623 659623 0 0.0
(read/write) 184760 184760 0 0.0
.bss 74164 74164 0 0.0
.data 3304 3304 0 0.0
.rodata 103135 103135 0 0.0
.text 556008 556008 0 0.0
pump-app LP_CC2652R7 (read only) 687915 687915 0 0.0
(read/write) 161500 161500 0 0.0
.bss 78428 78428 0 0.0
.data 3296 3296 0 0.0
.rodata 90731 90731 0 0.0
.text 596700 596700 0 0.0
pump-controller-app LP_CC2652R7 (read only) 672423 672423 0 0.0
(read/write) 177104 177104 0 0.0
.bss 78540 78540 0 0.0
.data 3292 3292 0 0.0
.rodata 86287 86287 0 0.0
.text 585656 585656 0 0.0
shell LP_CC2652R7 (read only) 668198 668198 0 0.0
(read/write) 185664 185664 0 0.0
.bss 83556 83556 0 0.0
.data 3376 3376 0 0.0
.rodata 86502 86502 0 0.0
.text 581380 581380 0 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 587914 587914 0 0.0
.app_xip_area 464524 464524 0 0.0
.bss 65808 65808 0 0.0
.data 760 760 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
lock cyw930739m2evb_01 (read/write) 592162 592162 0 0.0
.app_xip_area 463452 463452 0 0.0
.bss 71120 71120 0 0.0
.data 768 768 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 543958 543958 0 0.0
.app_xip_area 425624 425624 0 0.0
.bss 60800 60800 0 0.0
.data 716 716 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A+rpc (read/write) 973892 973892 0 0.0
.bss 152252 152252 0 0.0
.data 2248 2248 0 0.0
.text 819372 819372 0 0.0
BRD4161A+rs911x (read/write) 1030960 1030960 0 0.0
.bss 186656 186656 0 0.0
.data 2092 2092 0 0.0
.text 842192 842192 0 0.0
BRD4187C (read/write) 1145876 1145876 0 0.0
.bss 138640 138640 0 0.0
.data 2596 2596 0 0.0
.text 980044 980044 0 0.0
lock-app BRD4161A+wf200 (read/write) 1157024 1157024 0 0.0
.bss 158208 158208 0 0.0
.data 2100 2100 0 0.0
.text 996696 996696 0 0.0
window-app BRD4187C (read/write) 1139312 1139312 0 0.0
.bss 140080 140080 0 0.0
.data 2620 2620 0 0.0
.text 972016 972016 0 0.0
esp32 all-clusters-app c3devkit (read only) 1223342 1223342 0 0.0
(read/write) 1788294 1788294 0 0.0
.dram0.bss 76944 76944 0 0.0
.dram0.data 13840 13840 0 0.0
.flash.rodata 257864 257864 0 0.0
.flash.text 1223342 1223342 0 0.0
.iram0.text 65204 65204 0 0.0
m5stack (read only) 1233415 1233415 0 0.0
(read/write) 564212 564204 -8 -0.0
.dram0.bss 82312 82312 0 0.0
.dram0.data 34296 34296 0 0.0
.flash.rodata 314936 314928 -8 -0.0
.flash.text 1228031 1228031 0 0.0
.iram0.text 123939 123939 0 0.0
k32w contact k32w0+release (read/write) 661284 661284 0 0.0
.bss 77040 77040 0 0.0
.data 2104 2104 0 0.0
.text 563028 563028 0 0.0
light k32w0+release (read/write) 671280 671280 0 0.0
.bss 74816 74816 0 0.0
.data 2060 2060 0 0.0
.text 591676 591676 0 0.0
lock k32w0+release (read/write) 633092 633092 0 0.0
.bss 75600 75600 0 0.0
.data 2080 2080 0 0.0
.text 552684 552684 0 0.0
linux chip-tool-ipv6only arm64 (read only) 10429476 10429476 0 0.0
(read/write) 706353 706353 0 0.0
.bss 33953 33953 0 0.0
.data 2768 2768 0 0.0
.data.rel.ro 650632 650632 0 0.0
.dynamic 560 560 0 0.0
.got 13896 13896 0 0.0
.init 24 24 0 0.0
.init_array 208 208 0 0.0
.rodata 518132 518132 0 0.0
.text 8255780 8255780 0 0.0
thermostat-no-ble arm64 (read only) 2390380 2390380 0 0.0
(read/write) 143633 143633 0 0.0
.bss 55377 55377 0 0.0
.data 1816 1816 0 0.0
.data.rel.ro 77256 77256 0 0.0
.dynamic 560 560 0 0.0
.got 5176 5176 0 0.0
.init 24 24 0 0.0
.init_array 440 440 0 0.0
.rodata 144436 144436 0 0.0
.text 2003040 2003040 0 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2452168 2452168 0 0.0
.bss 215028 215028 0 0.0
.data 5872 5872 0 0.0
.text 1414812 1414812 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1183451 1183451 0 0.0
bss 144441 144441 0 0.0
rodata 144396 144396 0 0.0
text 815708 815708 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 (read/write) 1162119 1162119 0 0.0
bss 143668 143668 0 0.0
rodata 135968 135968 0 0.0
text 803600 803596 -4 -0.0
psoc6 all-clusters cy8ckit_062s2_43012 (read only) 841968 841968 0 0.0
(read/write) 1745164 1745164 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 188712 188712 0 0.0
.comment 204 204 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 2664 2664 0 0.0
.debug_abbrev 1229390 1229390 0 0.0
.debug_aranges 111856 111856 0 0.0
.debug_frame 373484 373484 0 0.0
.debug_info 26831617 26831616 -1 -0.0
.debug_line 3672030 3672030 0 0.0
.debug_loc 3589149 3589149 0 0.0
.debug_ranges 339712 339712 0 0.0
.debug_str 3441214 3441214 0 0.0
.heap 841968 841968 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 569639 569639 0 0.0
.symtab 421184 421184 0 0.0
.text 1545400 1545400 0 0.0
.zero.table 8 8 0 0.0
text 0 0 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 (read only) 842704 842704 0 0.0
(read/write) 1687748 1687748 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 187976 187976 0 0.0
.comment 204 204 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 2664 2664 0 0.0
.debug_abbrev 1221189 1221189 0 0.0
.debug_aranges 111328 111328 0 0.0
.debug_frame 376564 376564 0 0.0
.debug_info 2656839 2656839 0 0.0
.debug_line 3692747 3692747 0 0.0
.debug_loc 3576786 3576786 0 0.0
.debug_ranges 338328 338328 0 0.0
.debug_str 3430227 3430227 0 0.0
.heap 842704 842704 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 533728 533728 0 0.0
.symtab 407616 407616 0 0.0
.text 1488720 1488720 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
light cy8ckit_062s2_43012 (read only) 850896 850896 0 0.0
(read/write) 1606292 1606292 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 179992 179992 0 0.0
.comment 204 204 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 2456 2456 0 0.0
.debug_abbrev 1055300 1055300 0 0.0
.debug_aranges 103536 103536 0 0.0
.debug_frame 346896 346896 0 0.0
.debug_info 22032120 22032119 -1 -0.0
.debug_line 3262675 3262675 0 0.0
.debug_loc 3274748 3274748 0 0.0
.debug_ranges 303632 303632 0 0.0
.debug_str 3235759 3235759 0 0.0
.heap 850896 850896 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 470105 470105 0 0.0
.symtab 376064 376064 0 0.0
.text 1415456 1415456 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
lock cy8ckit_062s2_43012 (read only) 845880 845880 0 0.0
(read/write) 1640212 1640212 0 0.0
.ARM.attributes 46 46 0 0.0
.ARM.exidx 8 8 0 0.0
.bss 184992 184992 0 0.0
.comment 204 204 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 2472 2472 0 0.0
.debug_abbrev 1057426 1057426 0 0.0
.debug_aranges 103936 103936 0 0.0
.debug_frame 348788 348788 0 0.0
.debug_info 22270816 22270816 0 0.0
.debug_line 3260534 3260534 0 0.0
.debug_loc 3303341 3303341 0 0.0
.debug_ranges 305576 305576 0 0.0
.debug_str 3255273 3255273 0 0.0
.heap 845880 845880 0 0.0
.noinit 148 148 0 0.0
.ramVectors 736 736 0 0.0
.shstrtab 288 288 0 0.0
.stab 156 156 0 0.0
.stabstr 335 335 0 0.0
.stack_dummy 4096 4096 0 0.0
.strtab 472512 472512 0 0.0
.symtab 377728 377728 0 0.0
.text 1444360 1444360 0 0.0
.zero.table 0 0 0 0.0
8 8 0 0.0
qpg lighting-app qpg6105+debug (read/write) 1148632 1148624 -8 -0.0
.bss 110556 110556 0 0.0
.data 832 832 0 0.0
.text 595732 595724 -8 -0.0
lock-app qpg6105+debug (read/write) 1113704 1113704 0 0.0
.bss 106372 106372 0 0.0
.data 836 836 0 0.0
.text 560800 560800 0 0.0
telink light-switch-app tlsr9518adk80d (read/write) 789364 789364 0 0.0
bss 72480 72480 0 0.0
noinit 43520 43520 0 0.0
text 553136 553138 2 0.0
lighting-app tlsr9518adk80d (read/write) 811468 811476 8 0.0
bss 73328 73328 0 0.0
noinit 43520 43520 0 0.0
text 571356 571358 2 0.0
ota-requestor-app tlsr9518adk80d (read/write) 819412 819412 0 0.0
bss 74236 74236 0 0.0
noinit 43520 43520 0 0.0
text 577542 577540 -2 -0.0

@andy31415
Copy link
Contributor

@hyunuktak - please explain "It can cause a collision in the caller's user callback."

Copy link
Contributor

@andy31415 andy31415 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Description of issue does not help me understand the problem and the fix.

I see a notification of error being removed, but I am unclear of why this is causing problems and why removing the error notification is the correct thing to do.

Silent error never seem ok. At least a log seems apropriate, but a callback of "error happened" seems even better.

Please make sure that your PR description is clear to understand for reviewers.

@hyunuktak
Copy link
Contributor Author

@hyunuktak - please explain "It can cause a collision in the caller's user callback."

It seems that the explanation was insufficient.
I updated the detailed explanation. please refer to it.

@andy31415
Copy link
Contributor

@hyunuktak - please explain "It can cause a collision in the caller's user callback."

It seems that the explanation was insufficient. I updated the detailed explanation. please refer to it.

The explanation is still vague. I do not understand it. The way I read it is:

"An error is reported when resoltion fails, but this may cause an error to the user like double free".

Why don't you fix the double free then? Fix on the other side. Reporting an error when an error occurs is ok.
Unless you prove (with code links or some clear explanation) why user code never expects error reports and this is documented.

@andy31415
Copy link
Contributor

For example, user calls the resolve api of dnssd and cleans up the user data if it fails. Why the vagueness of 'for example'?

If you fix it, make the user properly handle the cleanup of the data. This seems to be a bug in the user usage of resolution not in the implementation of error handling.

@andy31415
Copy link
Contributor

I guess explanation could be done by example:

Linux avahi: https://github.com/project-chip/connectedhomeip/blob/master/src/platform/Linux/DnssdImpl.cpp#L693 does NOT callback error on failure

Darwin: https://github.com/project-chip/connectedhomeip/blob/master/src/platform/Darwin/DnssdImpl.cpp#L344 does NOT callback on failure.

I will update the summary

@andy31415 andy31415 merged commit fe7c18b into project-chip:master Oct 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants