diff options
author | Jean-Sébastien Pédron <[email protected]> | 2025-07-08 19:42:36 +0200 |
---|---|---|
committer | Jean-Sébastien Pédron <[email protected]> | 2025-07-22 17:24:42 +0200 |
commit | 5b8264609ab562ab4c968d4f27af55415062012b (patch) | |
tree | 037f425bffd0ca872a3b0630d6a6a0c52668914f | |
parent | a90161b8554bd694eebc8138a8c7de84797f2175 (diff) | |
download | erlang.mk-5b8264609ab562ab4c968d4f27af55415062012b.tar.gz erlang.mk-5b8264609ab562ab4c968d4f27af55415062012b.tar.bz2 erlang.mk-5b8264609ab562ab4c968d4f27af55415062012b.zip |
GitHub Actions: Create Erlang cookie before running tests
With the parallel execution of tests, I think it's possible that an
Erlang VM starts to initialize the missing cookie while a parallel VM
reads an yet-to-be-populated empty file. This leads to the following
crash:
Slogan: Kernel pid terminated (application_controller) ("{application_start_failure,kernel,{{shutdown,{failed_to_start_child,net_sup,{shutdown,{failed_to_start_child,auth,{\"Too short cookie string\",[{auth,init_no_setcookie,0,[{file,\"auth.erl\"},{line,360}]},...
-rw-r--r-- | .github/workflows/ci.yaml | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2c8c3b6..3c12e65 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -104,12 +104,17 @@ jobs: - name: Run tests (Linux) if: matrix.os == 'ubuntu-latest' - run: make check c=${{ matrix.suite }} -j4 -k ${{ matrix.extra }} + run: | + erl -sname init_cookie -run erlang halt + make check c=${{ matrix.suite }} -j4 -k ${{ matrix.extra }} - name: Run tests (Windows) if: matrix.os == 'windows-latest' shell: msys2 {0} - run: PATH=$INSTALL_DIR_FOR_OTP/bin:$PATH make check c=${{ matrix.suite }} -j4 -k ${{ matrix.extra }} + run: | + export PATH=$INSTALL_DIR_FOR_OTP/bin:$PATH + erl -sname init_cookie -run erlang halt + make check c=${{ matrix.suite }} -j4 -k ${{ matrix.extra }} - name: Upload artifacts if: failure() @@ -144,7 +149,10 @@ jobs: run: sudo apt-get -y install libsodium-dev - name: Run tests - run: make check c=core-elixir -j4 -k PATH=$PWD:/home/runner/.asdf/shims:$PATH + run: | + export PATH=$PWD:/home/runner/.asdf/shims:$PATH + erl -sname init_cookie -run erlang halt + make check c=core-elixir -j4 -k check-hex: strategy: @@ -205,12 +213,17 @@ jobs: - name: Run tests (Linux) if: matrix.os == 'ubuntu-latest' - run: make check c=hex -j4 -k ${{ matrix.extra }} + run: | + erl -sname init_cookie -run erlang halt + make check c=hex -j4 -k ${{ matrix.extra }} - name: Run tests (Windows) if: matrix.os == 'windows-latest' shell: msys2 {0} - run: PATH=$INSTALL_DIR_FOR_OTP/bin:$PATH make check c=hex -j4 -k ${{ matrix.extra }} + run: | + export PATH=$INSTALL_DIR_FOR_OTP/bin:$PATH + erl -sname init_cookie -run erlang halt + make check c=hex -j4 -k ${{ matrix.extra }} - name: Upload artifacts if: failure() |