act
act copied to clipboard
Error: volume is in use
Bug report info
act version: 0.2.66
GOOS: linux
GOARCH: amd64
NumCPU: 8
Docker host: DOCKER_HOST environment variable is not set
Sockets found:
/var/run/docker.sock
Config files:
/home/gabrielschwab/.config/act/actrc:
-P ubuntu-latest=catthehacker/ubuntu:act-latest
-P ubuntu-22.04=catthehacker/ubuntu:act-22.04
-P ubuntu-20.04=catthehacker/ubuntu:act-20.04
-P ubuntu-18.04=catthehacker/ubuntu:act-18.04
Build info:
Go version: go1.21.13
Module path: github.com/nektos/act
Main version: (devel)
Main path: github.com/nektos/act
Main checksum:
Build settings:
-buildmode: exe
-compiler: gc
-ldflags: -s -w -X main.version=0.2.66 -X main.commit=38e43bd51f66493057857f6d743153c874a7178f -X main.date=2024-09-01T02:29:57Z -X main.builtBy=goreleaser
CGO_ENABLED: 0
GOARCH: amd64
GOOS: linux
GOAMD64: v1
vcs: git
vcs.revision: 38e43bd51f66493057857f6d743153c874a7178f
vcs.time: 2024-09-01T02:29:39Z
vcs.modified: false
Docker Engine:
Engine version: 27.2.0
Engine runtime: runc
Cgroup version: 2
Cgroup driver: systemd
Storage driver: overlay2
Registry URI: https://index.docker.io/v1/
OS: Pop!_OS 22.04 LTS
OS type: linux
OS version: 22.04
OS arch: x86_64
OS kernel: 6.8.0-76060800daily20240311-generic
OS CPU: 8
OS memory: 31905 MB
Security options:
name=apparmor
name=seccomp,profile=builtin
name=cgroupns
Command used with act
sudo act # sudo not needed to reproduce the error
Describe issue
I had been debugging my github actions workflow with act for a while and after some tweaking to the workflow file, I suddenly started getting a volume is in use
error. The workflow consists of two jobs, where the second needs the first to finish. The first completes fine, but the second doesn't start because of the aforementioned error. I didn't change anything substantial, and even after commenting out most of the workflow's code I still get the error.
I believe the issue might be because of some kind of internal state stored by act, maybe on the file-system, but I couldn't find any commands to clear out any internal states or caches and I don't know where to look to find them if they do exist.
Link to GitHub repository
https://github.com/GsLogiMaker/glecs_godot_plugin/tree/cpp
Workflow content
name: Build Process
on:
push:
branches: [ "dev" ]
pull_request:
branches: [ "dev" ]
workflow_dispatch:
jobs:
compile_glecs:
strategy:
matrix:
include:
# Linux
- platform: linux
arch: x86_64
os: ubuntu-latest
glecs_lib: libglecs.linux.template_debug.x86_64.so
runs-on: ${{ matrix.os }}
outputs:
# Linux
bin_key_linux_x86_64: ${{ steps.set_cache_key.outputs.bin_key_linux_x86_64 }}
i686-linux_bin_key: ${{ steps.set_cache_key.outputs.i686-unknown-linux-gnu_bin_key }}
# Mac
aarch64-mac_bin_key: ${{ steps.set_cache_key.outputs.x86_64-apple-darwin_bin_key }}
x86_64-mac_bin_key: ${{ steps.set_cache_key.outputs.aarch64-apple-darwin_bin_key }}
# Windows
x86_64-windows_bin_key: ${{ steps.set_cache_key.outputs.x86_64-pc-windows-gnu_bin_key }}
steps:
- name: 🐙 Setup git environment
uses: actions/checkout@v4
# - name: 🗳️ Initialize git submodules
# run: git submodule update --init --recursive
# - name: Python install
# uses: actions/setup-python@v5
# with:
# python-version: '3.10'
# --- Define keys ---
# - name: 🏔️ Define library cache key in env
# run: |
# printf "*** Setting key in env***"
# echo "bin_key=lib.${{ matrix.platform }}_${{ matrix.arch }}.${{ hashFiles('addons/glecs/bin') }}" >> $GITHUB_ENV
# - name: 🏔️ Define library cache key in output
# id: set_cache_key
# run: |
# printf "*** Setting key ***"
# echo "bin_key_${{ matrix.platform }}_${{ matrix.arch }}=${{env.bin_key}}" >> $GITHUB_OUTPUT
# - name: 🏔️ Define cpp cache key
# run: |
# printf "*** Setting key ***"
# echo "cpp_key=cpp.${{ matrix.platform }}_${{ matrix.arch }}.${{ hashFiles('addons/glecs/cpp/') }}" >> $GITHUB_ENV
# - name: 🏔️ Define includes cache key
# run: |
# printf "*** Setting key ***"
# echo "include_key=include.${{ matrix.platform }}_${{ matrix.arch }}.${{ hashFiles('addons/glecs/cpp/include') }}.${{ hashFiles('addons/glecs/cpp/SConstruct') }}" >> $GITHUB_ENV
# # --- Restore caches ---
# - name: 💾 Restore cached cpp files
# uses: actions/cache/[email protected]
# with:
# path: addons/glecs/cpp
# key: ${{ env.cpp_key }}
# - name: 💾 Restore cached include files
# uses: actions/cache/[email protected]
# with:
# path: addons/glecs/cpp/include
# key: ${{ env.include_key }}
# # --- ---
# # - name: 🐧 Install GCC multilib for Linux i686 build
# # if: ${{ matrix.target == 'i686-unknown-linux-gnu' && runner.os == 'Linux'}}
# # run: sudo apt-get install gcc-multilib
# # - name: 🪟 Install mingw for Windows build
# # if: ${{ matrix.target == 'x86_64-pc-windows-gnu' && runner.os == 'Linux' }}
# # run: sudo apt install gcc-mingw-w64
# # --- Compile Glecs ---
# - name: Install scons
# run: |
# pip install scons
# - name: Build C++ code
# run: |
# cd addons/glecs/cpp
# scons platform=${{ matrix.platform }} arch=${{ matrix.arch }}
# #target=template_release
# # --- Define bin key ---
# - name: 🏔️ Define library cache key in env
# run: |
# printf "*** Setting key in env***"
# echo "bin_key=bin.${{ matrix.platform }}_${{ matrix.arch }}.${{ hashFiles('addons/glecs/bin') }}" >> $GITHUB_ENV
# - name: 🏔️ Define library cache key in output
# id: set_cache_key
# run: |
# printf "*** Setting key ***"
# echo "bin_key_${{ matrix.platform }}_${{ matrix.arch }}=${{env.bin_key}}" >> $GITHUB_OUTPUT
# # --- Save caches ---
# - name: Cache cpp source build files
# uses: actions/cache/save@v4
# with:
# path: addons/glecs/cpp
# key: ${{ env.cpp_key }}
# - name: Cache cpp include build files
# uses: actions/cache/save@v4
# with:
# path: addons/glecs/cpp/include
# key: ${{ env.include_key }}
# - name: 💾 Cache bin
# uses: actions/cache/[email protected]
# with:
# path: ./addons/glecs/bin/${{ matrix.glecs_lib }}
# key: ${{ env.bin_key }}
# enableCrossOsArchive: true
run_test_suite:
needs: compile_glecs
runs-on: ubuntu-latest
steps:
- name: 🐙 Setup git environment
uses: actions/checkout@v4
# - name: 💾 Load cached library as debug
# uses: actions/cache/[email protected]
# with:
# path: ./addons/glecs/bin/libglecs.linux.template_debug.x86_64.so
# key: ${{ needs.compile_glecs.outputs.bin_key_linux_x86_64 }}
# enableCrossOsArchive: true
# - name: 💾 Load cached library as release
# uses: actions/cache/[email protected]
# with:
# path: ./addons/glecs/bin/libglecs.linux.template_release.x86_64.so
# key: ${{ needs.compile_glecs.outputs.bin_key_linux_x86_64 }}
# enableCrossOsArchive: true
# - name: 🤖 Run Godot unit tests
# id: run-godot-tests
# uses: croconut/[email protected]
# with:
# # required
# version: "4.3"
# is-mono: "false"
# # the folder with your project.godot file in it
# path: "./"
# # the ratio of tests that must pass for this action to pass
# # e.g. 0.6 means 60% of your tests must pass
# minimum-pass: "1.0"
# # the directory containing Gut tests
# test-dir: "res://unittests"
# # default is GUTs default: 'res://.gutconfig.json'; set this to load a different config file
# config-file: "res://.gut_editor_config.json"
# # relative path to the xml file to read / write GUT's results from, recommended
# # for direct-scene users to check this file if you have issues
# result-output-file: "test_results.xml"
# - name: 📄 Print Godot logs
# if: failure() && steps.run-godot-tests.outcome != 'success'
# run: |
# echo ""
# echo "***"
# echo "GODOT LOG"
# echo "***"
# echo ""
# printf "$(cat logs/godot.log)\n"
# echo ""
# echo "***"
# echo "GODOT TEST RESULTS"
# echo "***"
# echo ""
# echo $(cat test_results.xml)
# echo ""
# echo "***"
# echo "LS"
# echo "***"
# ls -g -A
# echo ""
# echo "***"
# echo "LS glecs/bin/"
# echo "***"
# ls addons/glecs/bin -g -A
Relevant log output
[Build Process/run_test_suite] [DEBUG] 🐳 docker volume rm act-Build-Process-run-test-suite-898315f0e00f8ddda9d4f14d4a139d00e0b979c90a05c3b0826ed0c4b5a471a4
Error: Error response from daemon: remove act-Build-Process-run-test-suite-898315f0e00f8ddda9d4f14d4a139d00e0b979c90a05c3b0826ed0c4b5a471a4: volume is in use - [5764949cc2bf543154af786d0fd768e2e17f70cba968851651b1c09f0522e115]
Additional information
I needed to run act as root because of file permission issues surrounding the use of code-server. I still get the same error when running the workflow in my normal file-system home without sudo.