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

Enable TSAN builds on CI #7797

Merged
merged 4 commits into from
Jun 23, 2021
Merged

Conversation

mrjerryjohns
Copy link
Contributor

@mrjerryjohns mrjerryjohns commented Jun 21, 2021

This enables TSAN checking when running the functional tests in CI.

This is currently only enabled on Linux since the various races there were fixed when #7478 landed.

When Darwin races are fixed, tsan can be enabled for those too.

@andy31415 andy31415 marked this pull request as draft June 21, 2021 21:02
@woody-apple
Copy link
Contributor

woody-apple commented Jun 21, 2021

Love to see failing (new) tests :)

Copy link
Contributor

@bzbarsky-apple bzbarsky-apple left a comment

Choose a reason for hiding this comment

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

The filenames for the failure-case artifact uploads probably need to include matrix.type, or we (more plausibly) should only do the uploads for the non-tsan case.

This enables TSAN checking when running the functional tests in CI.

This is currently only enabled on Linux since the various races there
were fixed when project-chip#7478 landed.

When Darwin races are fixed, tsan can be enabled for those too.
@mrjerryjohns mrjerryjohns changed the title **WIP** Enable TSAN builds on CI Enable TSAN builds on CI Jun 22, 2021
@mspang
Copy link
Contributor

mspang commented Jun 22, 2021

bikeshed: Can we change the name from no_tsan to something else? default? Naming it what it's not isn't a scalable scheme (don't want to end up calling no_tsan_no_asan_no_*).

@mspang
Copy link
Contributor

mspang commented Jun 22, 2021

bikeshed: Can we change the name from no_tsan to something else? default? Naming it what it's not isn't a scalable scheme (don't want to end up calling no_tsan_no_asan_no_*).

Or maybe "debug".

@mrjerryjohns
Copy link
Contributor Author

mrjerryjohns commented Jun 22, 2021

debug and with_tsan feel like an odd pairing...(isn't with_tsan debug too?)

Would default and with_tsan be preferable?

@mspang
Copy link
Contributor

mspang commented Jun 22, 2021

debug and with_tsan feel like an odd pairing...(isn't with_tsan debug too?)

Would default and with_tsan be preferable?

The default is optimized for debug & test (optimizations are limited, debug-only assertions enabled, etc) which is why it is usually called "debug". These names are or should be understood in a broader context than just this workflow.

"default" and "tsan" seem OK though

@mrjerryjohns mrjerryjohns marked this pull request as ready for review June 23, 2021 17:42
@bzbarsky-apple bzbarsky-apple merged commit fd3f9a2 into project-chip:master Jun 23, 2021
@github-actions
Copy link

Size increase report for "nrfconnect-example-build" from 039dfbd

File Section File VM
chip-lock.elf [LOAD #3 [RW]] 0 -4
chip-lock.elf device_handles -12 -12
chip-lock.elf rodata -16 -16
chip-lock.elf text -20 -20
chip-lock.elf bss 0 -28
Full report output
BLOAT REPORT

Files found only in the build output:
    report.csv

Comparing ./master_artifact/chip-lock.elf and ./pull_artifact/chip-lock.elf:

sections,vmsize,filesize
.debug_ranges,0,24
.debug_abbrev,0,23
.debug_loc,0,5
.debug_str,0,-1
[LOAD #3 [RW]],-4,0
device_handles,-12,-12
rodata,-16,-16
.debug_line,0,-20
text,-20,-20
bss,-28,0
.debug_info,0,-71

Comparing ./master_artifact/chip-shell.elf and ./pull_artifact/chip-shell.elf:

sections,vmsize,filesize


@github-actions
Copy link

Size increase report for "esp32-example-build" from 039dfbd

File Section File VM
chip-all-clusters-app.elf .flash.text -24 -24
chip-all-clusters-app.elf .flash.rodata -224 -224
chip-all-clusters-app.elf .dram0.bss 0 -472
Full report output
BLOAT REPORT

Files found only in the build output:
    report.csv

Comparing ./master_artifact/chip-pigweed-app.elf and ./pull_artifact/chip-pigweed-app.elf:

sections,vmsize,filesize

Comparing ./master_artifact/chip-all-clusters-app.elf and ./pull_artifact/chip-all-clusters-app.elf:

sections,vmsize,filesize
[Unmapped],0,224
.debug_ranges,0,24
.debug_abbrev,0,23
.debug_str,0,2
.debug_loc,0,-4
.flash.text,-24,-24
.debug_line,0,-46
.debug_info,0,-67
.flash.rodata,-224,-224
.dram0.bss,-472,0


@github-actions
Copy link

Size increase report for "gn_qpg6100-example-build" from 039dfbd

File Section File VM
chip-qpg6100-lighting-example.out .heap 0 32
chip-qpg6100-lighting-example.out .bss 0 -32
chip-qpg6100-lighting-example.out .text -32 -32
Full report output
BLOAT REPORT

Files found only in the build output:
    report.csv

Comparing ./master_artifact/chip-qpg6100-lighting-example.out and ./pull_artifact/chip-qpg6100-lighting-example.out:

sections,vmsize,filesize
.heap,32,0
[Unmapped],0,32
.debug_ranges,0,24
.debug_abbrev,0,23
.debug_str,0,-8
.debug_line,0,-20
.bss,-32,0
.text,-32,-32
.debug_info,0,-71

Comparing ./master_artifact/chip-qpg6100-lighting-example.out.map and ./pull_artifact/chip-qpg6100-lighting-example.out.map:

BLOAT EXECUTION FAILED WITH CODE 1:
bloaty: unknown file type for file './pull_artifact/chip-qpg6100-lighting-example.out.map'


nikita-s-wrk pushed a commit to nikita-s-wrk/connectedhomeip that referenced this pull request Sep 23, 2021
* Enable TSAN builds on CI for Functional Tests.

This enables TSAN checking when running the functional tests in CI.

This is currently only enabled on Linux since the various races there
were fixed when project-chip#7478 landed.

When Darwin races are fixed, tsan can be enabled for those too.

* Fix-ups as per review feedback, including enabling it for Darwin

* Increased timeout for tsan jobs since it takes some time!

* Increased timeout for tsan jobs since it takes some time (real fix)!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants