tarantool / tarantool/tarantool

Enable Address Sanitizer in nightly builds

Open
#5,696 3 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

build qa
Dominant language
Lua
Stars
3.7k
Forks
419
Avg merge
1d 23h
Merged PRs (30d)
88

Description

We regularly run our testsuite on binaries that built with enabled Address Sanitizer and enabling was useful - some issues were catched. Unfortunately our testsuite does not cover all user scenarios and it would be cool to provide binaries with enabled ASAN to users. It will help us to raise missed issues in Tarantool. ASAN immediately crashes executable as soon as wrong memory access detected and ASAN may downgrade overall application performance. Due to these reasons we cannot enable ASAN in released build, but enabling it in nightly build can be a compromise.

Discussed ticket with @Totktonada. He is afraid that users may use nightly builds in production and enabling ASAN may have negative impact for them. We decided to know do we have such users and estimate number of instances with nightly builds in production using Tg community chat and feedback statistics.

TBD: UBSan, Thread sanitizer.

Projects that enabled ASAN in nightly builds:

"Typical slowdown introduced by AddressSanitizer is 2x.", see https://clang.llvm.org/docs/AddressSanitizer.html

GWP-ASan: Sampling heap memory error detection in-the-wild

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing nightly-build configuration and how the testsuite runs ASAN-enabled binaries. Use the Tg community chat and feedback statistics to estimate whether nightly builds are used in production, then assess the impact on nightly users while keeping released builds unchanged. Done means the nightly-build policy and implementation decision are documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
lua
Domain
build-system, release
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.