-
Notifications
You must be signed in to change notification settings - Fork 70
Re-introduce TSAN and configure ASAN #659
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
Conversation
| services: | ||
| redis: | ||
| image: faasm/redis:0.8.12 | ||
| ports: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
GHA service containers and the job container are connected with a docker-specific network, so there is no need to publish ports:
You don't need to configure any ports for service containers. By default, all containers that are part of the same Docker network expose all ports to each other, and no ports are exposed outside of the Docker network.
In addition, this was creating problems when running jobs in parallel with two self-hosted runners in the same machine.
2e12723 to
cbc74a7
Compare
0ccf477 to
9c9fec2
Compare
|
Pinging @eigenraven to pick their brains. Is there something we are completely overlooking here? |
9c9fec2 to
3daf2c9
Compare
|
Hi! For TSAN, have you tried reducing history size? The memory used grows exponentially with the size parameter in the options. As for ASAN, I'm not sure why the sudden jump - did you change anything with memory management that could've caused more allocations? It usually doesn't have that high of an overhead, it mostly consumes virtual memory which is almost free. |
900a60c to
4e8286d
Compare
|
@eigenraven thanks for the tips! For ASAN, as you say, I think there might be another problem. For TSAN, changing the |
|
@csegarragonz looking at the current failed run, there seems to be 1) a lot of useless tls access logging, 2) a lot of warnings about unreclaimed memory https://github.com/faasm/faasm/runs/7000258660?check_suite_focus=true#step%3A23%3A5773= - this looks like faasm logs rather than tsan logs |
|
Looks like this check is failing repeatedly https://github.com/faasm/faasm/blob/main/src/wasm/WasmModule.cpp#L826-L833=. I remember having to modify the brk mechanism locally because it didn't work properly when the wasm module allocated memory itself via |
4e8286d to
d6d2c95
Compare
4c6cdf3 to
8703848
Compare
…ised builds that we use in github actions
Co-authored-by: Raven Szewczyk <git@kubasz.xyz>
|
@eigenraven thanks for pointing out the typos. FYI, the |
eigenraven
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, out of curiosity what are the network namespaces data races? All functions there seem to be properly guarded by mutexes so it's a bit unexpected
271d8f3 to
1ff7860
Compare
|
Good question. I removed it and the tests pass as well. I can't remember why I included it in the first place... |
ASAN and TSAN builds of the tests are consuming upwards of 15 and 20 GB of memory each. This is bricking the Github-hosted runners.
In this PR, we modify the flags we use in these runs to reduce memory consumption. These tweaks also allow us to re-introduce TSAN. We also re-introduce some changes that fix some leaks.
Also for future reference, here are the TSAN runtime flags and the ASAN runtime flags.