<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hi, Evgeniy!</p>
<p><br>
</p>
<p>Thanks for the fixes!</p>
<p>Please consider the following comments:</p>
<p>1. please fix an action name in the
.github/actions/setup-sanitizers-linux/README.md <br>
<br>
</p>
<p>s/setup-sanitizers/setup-sanitizers-linux/</p>
<p>should we set CMAKE_PREFIX_PATH in
.github/actions/setup-sanitizers-linux/action.yml like we do in
the macos version.<br>
<br>
</p>
<p>the comment "# Try to install" is obvious and excess</p>
<p>2. there is inconsistency in the
.github/actions/setup-sanitizers-macos/README.md and
implementation:</p>
<p>README says: "Requires input: cc_name" but the current
implementation has a default (and `required: false`).</p>
<p><span class="HwtZe" lang="en"><span class="jCAhz"><span
class="ryNqvb">In action.yml, `CMAKE_C_COMPILER=clang-21`
(the name, not the full path) and `CMAKE_PREFIX_PATH` are
set,</span></span></span></p>
<p><span class="HwtZe" lang="en"><span class="jCAhz"><span
class="ryNqvb">and `-DCMAKE_C_COMPILER=clang-21` is passed
to the workflow.</span></span> <span class="jCAhz ChMk0b"><span
class="ryNqvb">CMake looks for the compiler in the `PATH` to</span></span></span></p>
<p><span class="HwtZe" lang="en"><span class="jCAhz ChMk0b"><span
class="ryNqvb">detect it - `CMAKE_PREFIX_PATH` has no effect
on this. </span></span> <span class="jCAhz ChMk0b"><span
class="ryNqvb">Either the required compiler is already in
the runner's `PATH`</span></span></span></p>
<p><span class="HwtZe" lang="en"><span class="jCAhz ChMk0b"><span
class="ryNqvb">(in which case `.github/actions/setup-macos`
is unnecessary, as it doesn't add anything to the `PATH`),</span></span></span></p>
<p><span class="HwtZe" lang="en"><span class="jCAhz ChMk0b"><span
class="ryNqvb">or the configuration will fail.</span></span>
<span class="jCAhz"><span class="ryNqvb">You should explicitly
add `$(brew --prefix llvm@21)/bin` to the `PATH`.</span></span></span></p>
<p>3. I don't like that we have three copies of ASAN_OPTIONS in the
same workflow. It is better to fix this.</p>
<p>4. .github/actions/setup-sanitizers-linux/action.yml:</p>
<p>why CC was renamed to CMAKE_C_COMPILER? I would leave CC env var.
CMAKE_C_COMPILER is a CMake option name name, GH action</p>
<p>knows nothing about CMake.</p>
<p>Also, please fix CMake name: s/cmake/CMake/</p>
<p><br>
</p>
<p>Sergey</p>
<div class="moz-cite-prefix">On 8/28/26 18:12, Evgeniy Temirgaleev
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:1787929924.462961851@f483.i.mail.ru">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div class="cl-02wch2qhds">
<div>Hi, Sergey! Thanks for review!</div>
<div>Please, see my answers below.</div>
<div>Fixes applied and the branch is force pushed.</div>
<div class="mail-quote-collapse">
<blockquote
style="border-left:1px solid #0857A6;margin:10px;padding:0 0 0 10px"><span>From:
Sergey Bronnikov <<a
href="mailto:sergeyb@tarantool.org"
moz-do-not-send="true" class="moz-txt-link-freetext">sergeyb@tarantool.org</a>><br>
To: Evgeniy Temirgaleev <<a
href="mailto:e.temirgaleev@tarantool.org"
moz-do-not-send="true" class="moz-txt-link-freetext">e.temirgaleev@tarantool.org</a>>,
Sergey Kaplun <<a href="mailto:skaplun@tarantool.org"
moz-do-not-send="true" class="moz-txt-link-freetext">skaplun@tarantool.org</a>><br>
Cc:<a href="mailto:tarantool-patches@dev.tarantool.org"
moz-do-not-send="true" class="moz-txt-link-freetext">tarantool-patches@dev.tarantool.org</a><br>
Date: Thursday, August 27, 2026 3:07 PM +03:00</span><br>
<div>
<div id="">
<div class="cl-xvl3itpr0y">
<div
class="js-helper_mr_css_attr js-readmsg-msg_mr_css_attr">
<div id="style_17878324360668478732_mr_css_attr">
<div
id="style_17878324360668478732_BODY_mr_css_attr">
<p>Hi, Evgeniy,</p>
<p>thanks for the patch! See my comments below.</p>
<p>Sergey</p>
<div class="moz-cite-prefix_mr_css_attr">On
8/6/26 15:47, Evgeniy Temirgaleev wrote:</div>
<blockquote type="cite">
<pre class="moz-quote-pre_mr_css_attr">From: Temir Galeev <a
href="mailto:temir.galeev@bk.ru"
class="moz-txt-link-rfc2396E_mr_css_attr"
moz-do-not-send="true"><temir.galeev@bk.ru></a>
The arm64 and x86_64 architectures with clang/gcc compiler were added
to the matrix.
---
.../README.md | 0
.../action.yml | 8 +-
.../actions/setup-sanitizers-macos/README.md | 15 +++
.../actions/setup-sanitizers-macos/action.yml | 73 +++++++++++++
.github/workflows/sanitizers-testing.yml | 101 ++++++++++++++++--
5 files changed, 186 insertions(+), 11 deletions(-)
rename .github/actions/{setup-sanitizers => setup-sanitizers-linux}/README.md (100%)
rename .github/actions/{setup-sanitizers => setup-sanitizers-linux}/action.yml (76%)
create mode 100644 .github/actions/setup-sanitizers-macos/README.md
create mode 100644 .github/actions/setup-sanitizers-macos/action.yml
diff --git a/.github/actions/setup-sanitizers/README.md b/.github/actions/setup-sanitizers-linux/README.md
similarity index 100%
rename from .github/actions/setup-sanitizers/README.md
rename to .github/actions/setup-sanitizers-linux/README.md
diff --git a/.github/actions/setup-sanitizers/action.yml b/.github/actions/setup-sanitizers-linux/action.yml
similarity index 76%
rename from .github/actions/setup-sanitizers/action.yml
rename to .github/actions/setup-sanitizers-linux/action.yml
index 8642d553..18f5a75d 100644
--- a/.github/actions/setup-sanitizers/action.yml
+++ b/.github/actions/setup-sanitizers-linux/action.yml
@@ -20,13 +20,17 @@ runs:
- name: Install build and test dependencies
run: |
apt -y update
+ echo Available compilers:
+ export CC_FAMILY=`echo ${CC_NAME} | sed 's/-.*$//'`
+ apt list | grep -Pe "^${CC_FAMILY}-[0-9]+/"
+ # Try to install</pre>
</blockquote>
<p>Honestly, I don't get why we should available
compilers on each run.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
<div>
<div>I think this information is important for some cases to
have it on hand. The example was present in the thread above: <a
href="https://lists.tarantool.org/pipermail/tarantool-patches/2026-August/030774.html"
moz-do-not-send="true" class="moz-txt-link-freetext">https://lists.tarantool.org/pipermail/tarantool-patches/2026-August/030774.html</a></div>
</div>
<div class="cl-02wch2qhds">
<div class="mail-quote-collapse">
<blockquote
style="border-left:1px solid #0857A6;margin:10px;padding:0 0 0 10px">
<div>
<div>
<div class="cl-xvl3itpr0y">
<div
class="js-helper_mr_css_attr js-readmsg-msg_mr_css_attr">
<div>
<div>
<p>Why we cannot</p>
<p>hardcode compiler here?</p>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
<div>This patch is not intended to refactor linux sanitizers
action, so the existing solution is used.</div>
<div> </div>
<div>Only info about available compilers was added:</div>
<div>
<div>
<div> </div>
<div>«Also, the 'setup-sanitizers-macos' action supplied with</div>
<div>the 'list available compilers' commands in one of it's
job.</div>
<div>It helps to get the answer to the question:</div>
<div>'Which compiler we can select just now with our current
environment?'</div>
<div> </div>
<div>The 'setup-sanitizers-linux' build job extended with such
commands also.»</div>
</div>
</div>
<div> </div>
<div class="cl-02wch2qhds">
<div class="mail-quote-collapse">
<blockquote
style="border-left:1px solid #0857A6;margin:10px;padding:0 0 0 10px">
<div>
<div>
<div class="cl-xvl3itpr0y">
<div
class="js-helper_mr_css_attr js-readmsg-msg_mr_css_attr">
<div>
<div>
<blockquote type="cite">
<pre class="moz-quote-pre_mr_css_attr"> apt -y install ${CC_NAME} libstdc++-10-dev cmake ninja-build make perl
shell: bash
env:
CC_NAME: ${{ inputs.cc_name }}
- - name: Set specific C compiler as a default toolchain
+ - name: Set specific C compiler as a default toolchain for cmake</pre>
</blockquote>
s/cmake/CMake/?</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
<div>Fixed.</div>
<div class="cl-02wch2qhds">
<div class="mail-quote-collapse">
<blockquote
style="border-left:1px solid #0857A6;margin:10px;padding:0 0 0 10px">
<div>
<div>
<div class="cl-xvl3itpr0y">
<div
class="js-helper_mr_css_attr js-readmsg-msg_mr_css_attr">
<div>
<div>
<blockquote type="cite">
<pre class="moz-quote-pre_mr_css_attr"> run: |
- echo CC=${CC_NAME} | tee -a $GITHUB_ENV
+ echo CMAKE_C_COMPILER=${CC_NAME} | tee -a $GITHUB_ENV</pre>
</blockquote>
s/tee -a/>>/ (feel free to ignore,
previously tee was used)</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
<div>The ‘tee -a’ method allows the programmer to see the
step’s result of the env definition. It’s used in the ‘setup’,
‘setup-linux’, ‘setup-macos’ actions and some workflows already.
I think it’s a good approach to use. Also, there is an
empty grep for the ‘>> $GITHUB_ENV’ method in our scripts.</div>
<div> </div>
<div>If there are the strong reasons to change it, I think it must
be done in all places and in the separate refactoring patch.</div>
</blockquote>
Agree, let's keep as is.
<blockquote type="cite"
cite="mid:1787929924.462961851@f483.i.mail.ru">
<div class="cl-02wch2qhds">
<div class="mail-quote-collapse">
<blockquote
style="border-left:1px solid #0857A6;margin:10px;padding:0 0 0 10px">
<div>
<div>
<div class="cl-xvl3itpr0y">
<div
class="js-helper_mr_css_attr js-readmsg-msg_mr_css_attr">
<div>
<div>
<blockquote type="cite">
<pre class="moz-quote-pre_mr_css_attr"> shell: bash
env:
CC_NAME: ${{ inputs.cc_name }}
diff --git a/.github/actions/setup-sanitizers-macos/README.md b/.github/actions/setup-sanitizers-macos/README.md
new file mode 100644
index 00000000..9ac5eb38
--- /dev/null
+++ b/.github/actions/setup-sanitizers-macos/README.md
@@ -0,0 +1,15 @@
+# Setup environment for sanitizers on macOS
+
+Action setups the environment on macOS runners (install requirements, setup the
+workflow environment, etc) for testing with sanitizers enabled.
+
+Requires input:
+- cc_name as versioned C compiler: gcc-ver or clang-ver.
+
+## How to use Github Action from Github workflow
+
+Add the following code to the running steps before LuaJIT configuration:
+```
+- uses: ./.github/actions/setup-sanitizers-macos
+ if: ${{ matrix.OS == 'macOS' }}
+```
diff --git a/.github/actions/setup-sanitizers-macos/action.yml b/.github/actions/setup-sanitizers-macos/action.yml
new file mode 100644
index 00000000..9836ea03
--- /dev/null
+++ b/.github/actions/setup-sanitizers-macos/action.yml
@@ -0,0 +1,73 @@
+name: Setup CI environment for testing with sanitizers on macOS
+description: Common part to tweak macOS CI runner environment for sanitizers
+inputs:
+ cc_name:
+ description: C compiler name (for example, gcc-12)
+ required: false
+ default: clang-21
+runs:
+ using: composite
+ steps:
+ - name: Get compiler version from cc_name
+ shell: bash
+ env:
+ CC_NAME: ${{ inputs.cc_name }}
+ run: |
+ echo CC_VERSION=`echo ${CC_NAME} | sed 's/.*-//'` | tee -a $GITHUB_ENV
+ - name: Get brew formula from cc_name
+ shell: bash
+ env:
+ CC_FORMULA_NAME: |-
+ ${{ case(
+ startsWith(inputs.cc_name, 'gcc'), 'gcc',
+ startsWith(inputs.cc_name, 'clang'), 'llvm',
+ 'MISCONFIG'
+ ) }}
+ run: |
+ echo CC_FORMULA=${CC_FORMULA_NAME}@${CC_VERSION} | tee -a $GITHUB_ENV
+ echo Available formulas: `brew search ${CC_FORMULA_NAME}`
+ - name: Setup CI environment
+ uses: ./.github/actions/setup
+ - name: Set CMAKE_BUILD_PARALLEL_LEVEL
+ shell: bash
+ run: |
+ # Set CMAKE_BUILD_PARALLEL_LEVEL environment variable to
+ # limit the number of parallel jobs for build/test step.
+ NPROC=$(sysctl -n hw.logicalcpu 2>/dev/null)
+ echo CMAKE_BUILD_PARALLEL_LEVEL=$(($NPROC + 1)) | tee -a $GITHUB_ENV
+ - name: Set MACOSX_DEPLOYMENT_TARGERT
+ shell: bash
+ run: |
+ # Set required MACOSX_DEPLOYMENT_TARGERT environment
+ # variable for Makefile.original build.
+ # See <a href="https://github.com/LuaJIT/LuaJIT/issues/484"
class="moz-txt-link-freetext_mr_css_attr moz-txt-link-freetext"
moz-do-not-send="true">https://github.com/LuaJIT/LuaJIT/issues/484</a>,
+ # <a href="https://github.com/LuaJIT/LuaJIT/issues/653"
class="moz-txt-link-freetext_mr_css_attr moz-txt-link-freetext"
moz-do-not-send="true">https://github.com/LuaJIT/LuaJIT/issues/653</a>.
+ echo MACOSX_DEPLOYMENT_TARGET=$(sw_vers -productVersion) | tee -a $GITHUB_ENV
+ - name: Install build and test dependencies
+ shell: bash
+ run: |
+ # Install brew using the command from Homebrew repository
+ # instructions: <a href="https://github.com/Homebrew/install"
class="moz-txt-link-freetext_mr_css_attr moz-txt-link-freetext"
moz-do-not-send="true">https://github.com/Homebrew/install</a>.
+ # XXX: 'echo' command below is required since brew
+ # installation script obliges the one to enter a newline
+ # for confirming the installation via Ruby script.
+ brew update ||
+ echo | /usr/bin/ruby -e "$(curl -fsSL <a
href="https://raw.githubusercontent.com/Homebrew/install/master/install"
class="moz-txt-link-freetext_mr_css_attr moz-txt-link-freetext"
moz-do-not-send="true">https://raw.githubusercontent.com/Homebrew/install/master/install</a>)"
+ # Try to install the packages either upgrade it to avoid
+ # of fails if the package already exists with the previous
+ # version.
+ brew install --force ${CC_FORMULA} cmake make ninja perl ||
+ brew upgrade ${CC_FORMULA} cmake make ninja perl
+ - name: Set specific C compiler as a default toolchain for cmake
+ shell: bash
+ env:
+ CC_NAME: ${{ inputs.cc_name }}
+ run: |
+ echo CMAKE_C_COMPILER=${CC_NAME} | tee -a $GITHUB_ENV
+ echo CMAKE_PREFIX_PATH="`brew --prefix ${CC_FORMULA}`" | tee -a $GITHUB_ENV
+ - name: Log installed compilers
+ shell: bash
+ run: |
+ echo default clang: `clang --version`
+ echo default gcc: `gcc --version`
+ echo cmake compiler: `${CMAKE_PREFIX_PATH}/bin/${CMAKE_C_COMPILER} --version`
diff --git a/.github/workflows/sanitizers-testing.yml b/.github/workflows/sanitizers-testing.yml
index 4bf7d023..fe550b81 100644
--- a/.github/workflows/sanitizers-testing.yml
+++ b/.github/workflows/sanitizers-testing.yml
@@ -31,17 +31,41 @@ jobs:
strategy:
fail-fast: false
matrix:
- # XXX: Let's start with only Linux/x86_64
+ ARCH: [ARM64, x86_64]
BUILDTYPE: [Debug, Release]
- CC: [gcc-10, clang-11]
+ OS: [Linux, macOS]
+ # There are different top-level versions available for Linux and macOS runners.
+ CC: [gcc-10, clang-11, gcc-15, clang-21]
include:
- BUILDTYPE: Debug
CMAKEFLAGS: -DCMAKE_BUILD_TYPE=Debug -DLUA_USE_ASSERT=ON -DLUA_USE_APICHECK=ON
- BUILDTYPE: Release
CMAKEFLAGS: -DCMAKE_BUILD_TYPE=RelWithDebInfo
- runs-on: [self-hosted, regular, Linux, x86_64]
+ exclude:
+ # On current runners with Linux/ARM64 environment and
+ # with LUAJIT_USE_SYSMALLOC=ON the system allocator returns addresses
+ # with 48-bit set. Thus checkptrGC() fails with new Lua state pointer
+ # and luajit fails to start with 'cannot create state: not enough memory'
+ # error. So, we exclude these cases.
+ - ARCH: ARM64
+ OS: Linux
+ # Exclude nonsuitable OS/compiler pairs.
+ - OS: macOS
+ CC: gcc-10
+ - OS: macOS
+ CC: clang-11
+ - OS: Linux
+ CC: gcc-15
+ - OS: Linux
+ CC: clang-21
+ # Exclude macOS/ARM64/gcc case due to some tests are failed.
+ # Details: <a
href="https://github.com/tarantool/tarantool/issues/13018"
class="moz-txt-link-freetext_mr_css_attr moz-txt-link-freetext"
moz-do-not-send="true">https://github.com/tarantool/tarantool/issues/13018</a>
+ - ARCH: ARM64
+ OS: macOS
+ CC: gcc-15
+ runs-on: [self-hosted, regular, '${{ matrix.OS }}', '${{ matrix.ARCH }}']
name: >
- LuaJIT with ASan and UBSan (Linux/x86_64)
+ LuaJIT with ASan and UBSan (${{ matrix.OS }}/${{ matrix.ARCH }})
${{ matrix.BUILDTYPE }}
CC:${{ matrix.CC }}
GC64:ON SYSMALLOC:ON
@@ -51,7 +75,13 @@ jobs:
fetch-depth: 0
submodules: recursive
- name: setup Linux for sanitizers
- uses: ./.github/actions/setup-sanitizers
+ if: ${{ matrix.OS == 'Linux' }}
+ uses: ./.github/actions/setup-sanitizers-linux
+ with:
+ cc_name: ${{ matrix.CC }}
+ - name: setup macOS for sanitizers
+ if: ${{ matrix.OS == 'macOS' }}
+ uses: ./.github/actions/setup-sanitizers-macos
with:
cc_name: ${{ matrix.CC }}
- name: configure
@@ -70,18 +100,46 @@ jobs:
cmake -S . -B ${{ env.BUILDDIR }}
-G Ninja
${{ matrix.CMAKEFLAGS }}
+ -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
+ -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}
-DLUAJIT_ENABLE_GC64=ON
-DLUAJIT_USE_ASAN=ON
-DLUAJIT_USE_SYSMALLOC=ON
-DLUAJIT_USE_UBSAN=ON
+ - name: Check for possible compiler misconfig
+ working-directory: ${{ env.BUILDDIR }}
+ env:
+ CC_NAME: ${{ matrix.CC }}
+ run: grep CMakeCache.txt -e CMAKE_C_COMPILER:STRING | grep ${CC_NAME}
- name: build
run: cmake --build . --parallel
working-directory: ${{ env.BUILDDIR }}
- - name: test
+
+ # Enable as much checks as possible. See more info here:</pre>
</blockquote>
<p>You say about enabling ASAN features, but
some features are disabled below,</p>
<p>please explain why these features are
disabled.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
<div class="cl-02wch2qhds">
<div class="mail-quote-collapse">
<blockquote
style="border-left:1px solid #0857A6;margin:10px;padding:0 0 0 10px">
<div>
<div>
<div class="cl-xvl3itpr0y">
<div
class="js-helper_mr_css_attr js-readmsg-msg_mr_css_attr">
<div>
<div>
<blockquote type="cite">
<pre class="moz-quote-pre_mr_css_attr">+ # <a
href="https://github.com/google/sanitizers/wiki/AddressSanitizerFlags"
class="moz-txt-link-freetext_mr_css_attr moz-txt-link-freetext"
moz-do-not-send="true">https://github.com/google/sanitizers/wiki/AddressSanitizerFlags</a>,
+ # <a
href="https://github.com/google/sanitizers/wiki/SanitizerCommonFlags"
class="moz-txt-link-freetext_mr_css_attr moz-txt-link-freetext"
moz-do-not-send="true">https://github.com/google/sanitizers/wiki/SanitizerCommonFlags</a>.
+ - name: setup sanitizer options for Linux
+ if: ${{ matrix.OS == 'Linux' }}
+ env:
+ ASAN_OPTIONS: " \
+ detect_invalid_pointer_pairs=1: \
+ detect_leaks=1: \</pre>
</blockquote>
already enabled by default
<blockquote type="cite">
<pre class="moz-quote-pre_mr_css_attr">+ detect_stack_use_after_return=1: \
+ dump_instruction_bytes=1: \
+ heap_profile=0: \</pre>
</blockquote>
disabled by default
<blockquote type="cite">
<pre class="moz-quote-pre_mr_css_attr">+ print_suppressions=0: \</pre>
</blockquote>
Why disabled?
<blockquote type="cite">
<pre class="moz-quote-pre_mr_css_attr">+ symbolize=1: \</pre>
</blockquote>
enabled by default</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
<div>The patch doesn’t enable ASAN for Linux, so this part isn’t
changed: the ASAN options for Linux is used as is.</div>
<div> </div>
<div>The ASAN options for macOS is just a copy of the Linux
options with one exception. The detect_leaks was disabled with
the explanation in a comment.</div>
<div> </div>
<div>The full option investigation and selection in not the
main goal of the patch. The patch enables ASAN for macOS and
it’s truly enabled for the options selected.</div>
<div> </div>
<div>I agree that the actualization of options for both Linux and
macOS is a valuable job. I suggest to make a ticket for it.</div>
<div class="cl-02wch2qhds">
<div class="mail-quote-collapse">
<blockquote
style="border-left:1px solid #0857A6;margin:10px;padding:0 0 0 10px">
<div>
<div>
<div class="cl-xvl3itpr0y">
<div
class="js-helper_mr_css_attr js-readmsg-msg_mr_css_attr">
<div>
<div>
<blockquote type="cite">
<pre class="moz-quote-pre_mr_css_attr">+ unmap_shadow_on_exit=1: \
+ "
+ UBSAN_OPTIONS: "
+ print_stacktrace=1 \
+ "
+ run: |
+ echo ASAN_OPTIONS=${ASAN_OPTIONS} | tee -a $GITHUB_ENV
+ echo UBSAN_OPTIONS=${UBSAN_OPTIONS} | tee -a $GITHUB_ENV</pre>
</blockquote>
s/tee -a/>>/ (<span lang="en"
class="HwtZe_mr_css_attr"><span
class="jCAhz_mr_css_attr ChMk0b_mr_css_attr"><span
class="ryNqvb_mr_css_attr">the same thing
but usually used in Github documentation</span></span></span>)</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
<div>Answered above.</div>
<div class="cl-02wch2qhds">
<div class="mail-quote-collapse">
<blockquote
style="border-left:1px solid #0857A6;margin:10px;padding:0 0 0 10px">
<div>
<div>
<div class="cl-xvl3itpr0y">
<div
class="js-helper_mr_css_attr js-readmsg-msg_mr_css_attr">
<div>
<div>
<blockquote type="cite">
<pre class="moz-quote-pre_mr_css_attr">+ - name: setup sanitizer options for macOS (common)
+ if: ${{ matrix.OS == 'macOS' && matrix.ARCH != 'ARM64' && matrix.CC != 'clang-21' }}
env:
- # Enable as much checks as possible. See more info here:
- # <a
href="https://github.com/google/sanitizers/wiki/AddressSanitizerFlags"
class="moz-txt-link-freetext_mr_css_attr moz-txt-link-freetext"
moz-do-not-send="true">https://github.com/google/sanitizers/wiki/AddressSanitizerFlags</a>,
- # <a
href="https://github.com/google/sanitizers/wiki/SanitizerCommonFlags"
class="moz-txt-link-freetext_mr_css_attr moz-txt-link-freetext"
moz-do-not-send="true">https://github.com/google/sanitizers/wiki/SanitizerCommonFlags</a>.
ASAN_OPTIONS: " \
detect_invalid_pointer_pairs=1: \
detect_leaks=1: \
@@ -95,5 +153,30 @@ jobs:
UBSAN_OPTIONS: "
print_stacktrace=1 \
"
+ run: |
+ echo ASAN_OPTIONS=${ASAN_OPTIONS} | tee -a $GITHUB_ENV
+ echo UBSAN_OPTIONS=${UBSAN_OPTIONS} | tee -a $GITHUB_ENV</pre>
</blockquote>
s/tee -a/>>/</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
<div>The same.</div>
<div class="cl-02wch2qhds">
<div class="mail-quote-collapse">
<blockquote
style="border-left:1px solid #0857A6;margin:10px;padding:0 0 0 10px">
<div>
<div>
<div class="cl-xvl3itpr0y">
<div
class="js-helper_mr_css_attr js-readmsg-msg_mr_css_attr">
<div>
<div>
<blockquote type="cite">
<pre class="moz-quote-pre_mr_css_attr">+ - name: setup sanitizer options for macOS (ARM64/clang-21)
+ if: ${{ matrix.OS == 'macOS' && matrix.ARCH == 'ARM64' && matrix.CC == 'clang-21' }}
+ # detect_leaks is disabled due to some tests build is failed.
+ # Details: <a
href="https://github.com/tarantool/tarantool/issues/13019"
class="moz-txt-link-freetext_mr_css_attr moz-txt-link-freetext"
moz-do-not-send="true">https://github.com/tarantool/tarantool/issues/13019</a>
+ env:
+ ASAN_OPTIONS: " \
+ detect_invalid_pointer_pairs=1: \
+ detect_leaks=0: \
+ detect_stack_use_after_return=1: \
+ dump_instruction_bytes=1: \
+ heap_profile=0: \
+ print_suppressions=0: \
+ symbolize=1: \
+ unmap_shadow_on_exit=1: \</pre>
</blockquote>
the same questions as above. Also, can we avoid
duplication?</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
<div>May be we can use the file to accumulate the options and to
update it in a specific steps. I suggest this task to the new
ticket ‘ci: actualization of the ASAN options for Linux and
macOS’ also.</div>
<div class="cl-02wch2qhds">
<div class="mail-quote-collapse">
<blockquote
style="border-left:1px solid #0857A6;margin:10px;padding:0 0 0 10px">
<div>
<div>
<div class="cl-xvl3itpr0y">
<div
class="js-helper_mr_css_attr js-readmsg-msg_mr_css_attr">
<div>
<div>
<blockquote type="cite">
<pre class="moz-quote-pre_mr_css_attr">+ "
+ UBSAN_OPTIONS: "
+ print_stacktrace=1 \
+ "
+ run: |
+ echo ASAN_OPTIONS=${ASAN_OPTIONS} | tee -a $GITHUB_ENV
+ echo UBSAN_OPTIONS=${UBSAN_OPTIONS} | tee -a $GITHUB_ENV</pre>
</blockquote>
s/tee -a/>>/</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
<div>Answered above.</div>
<div class="cl-02wch2qhds">
<div class="mail-quote-collapse">
<blockquote
style="border-left:1px solid #0857A6;margin:10px;padding:0 0 0 10px">
<div>
<div>
<div class="cl-xvl3itpr0y">
<div
class="js-helper_mr_css_attr js-readmsg-msg_mr_css_attr">
<div>
<div>
<blockquote type="cite">
<pre class="moz-quote-pre_mr_css_attr">+ - name: test
run: cmake --build . --parallel --target LuaJIT-test
working-directory: ${{ env.BUILDDIR }}
</pre>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
<div>
<div>The changes applied:</div>
<hr>
<div>
<div>
<div>diff --git
a/.github/actions/setup-sanitizers-linux/action.yml
b/.github/actions/setup-sanitizers-linux/action.yml</div>
<div>index 9744e5dd..19314dca 100644</div>
<div>--- a/.github/actions/setup-sanitizers-linux/action.yml</div>
<div>+++ b/.github/actions/setup-sanitizers-linux/action.yml</div>
<div>@@ -28,7 +28,7 @@ runs:</div>
<div> shell: bash</div>
<div> env:</div>
<div> CC_NAME: ${{ inputs.cc_name }}</div>
<div>- - name: Set specific C compiler as a default
toolchain for cmake</div>
<div>+ - name: Set specific C compiler as a default
toolchain for CMake.</div>
<div> run: |</div>
<div> echo CMAKE_C_COMPILER=${CC_NAME} | tee -a
$GITHUB_ENV</div>
<div> shell: bash</div>
<div>diff --git
a/.github/actions/setup-sanitizers-macos/action.yml
b/.github/actions/setup-sanitizers-macos/action.yml</div>
<div>index d2160faa..740943af 100644</div>
<div>--- a/.github/actions/setup-sanitizers-macos/action.yml</div>
<div>+++ b/.github/actions/setup-sanitizers-macos/action.yml</div>
<div>@@ -35,7 +35,7 @@ runs:</div>
<div> # of fails if the package already exists with
the previous</div>
<div> # version.</div>
<div> brew install --force ${CC_FORMULA} || brew
upgrade ${CC_FORMULA}</div>
<div>- - name: Set specific C compiler as a default
toolchain for cmake</div>
<div>+ - name: Set specific C compiler as a default
toolchain for CMake.</div>
<div> shell: bash</div>
<div> env:</div>
<div> CC_NAME: ${{ inputs.cc_name }}</div>
</div>
</div>
<div>--<br>
Best regards,</div>
<div>Evgeniy Temirgaleev</div>
</div>
</blockquote>
</body>
</html>