<!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>