[GH-ISSUE #2457] Error: volume is in use #1133

Open
opened 2026-03-01 21:49:10 +03:00 by kerem · 4 comments
Owner

Originally created by @GsLogiMaker on GitHub (Sep 12, 2024).
Original GitHub issue: https://github.com/nektos/act/issues/2457

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.

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/restore@v4.0.2
    #   with:
    #     path: addons/glecs/cpp
    #     key: ${{ env.cpp_key }}

    # - name: 💾 Restore cached include files
    #   uses: actions/cache/restore@v4.0.2
    #   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/save@v4.0.2
    #   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/restore@v4.0.2
        #   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/restore@v4.0.2
        #   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/godot-tester@v5.1
        #   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.

Originally created by @GsLogiMaker on GitHub (Sep 12, 2024). Original GitHub issue: https://github.com/nektos/act/issues/2457 ### Bug report info ```plain text 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 ```sh 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 ```yml 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/restore@v4.0.2 # with: # path: addons/glecs/cpp # key: ${{ env.cpp_key }} # - name: 💾 Restore cached include files # uses: actions/cache/restore@v4.0.2 # 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/save@v4.0.2 # 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/restore@v4.0.2 # 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/restore@v4.0.2 # 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/godot-tester@v5.1 # 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 ```sh [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.
Author
Owner

@sebastien-perpignane commented on GitHub (Oct 11, 2024):

Hey,

Try this maybe:
docker ps -a --filter volume=act-Build-Process-run-test-suite-898315f0e00f8ddda9d4f14d4a139d00e0b979c90a05c3b0826ed0c4b5a471a4

It should let you know which container is using the volume.

Then you should be able to remove the container using the volume.

<!-- gh-comment-id:2408137226 --> @sebastien-perpignane commented on GitHub (Oct 11, 2024): Hey, Try this maybe: `docker ps -a --filter volume=act-Build-Process-run-test-suite-898315f0e00f8ddda9d4f14d4a139d00e0b979c90a05c3b0826ed0c4b5a471a4` It should let you know which container is using the volume. Then you should be able to remove the container using the volume.
Author
Owner

@donovanmuller commented on GitHub (Nov 4, 2024):

Same issue, deleted the exited container:

$ docker ps -a --filter volume=act-xxx-30c9d7d991c0b592bef67343da294c5042c27a4a55765fa4ebc000df27f6bf5c
CONTAINER ID   IMAGE                                  COMMAND                  CREATED         STATUS                        PORTS     NAMES
0a0d1b51677b   danielflook/terraform-github-actions   "/entrypoints/valida…"   8 minutes ago   Exited (137) 59 seconds ago             act-xxx-30c9d7d991c0b592bef67343da294c5042c27a4-535096946b77f9e05d543c3194fc423bdec634726d199f94d2ae0dc92b448fee

$ docker rm 0a0d1b51677b
0a0d1b51677b
<!-- gh-comment-id:2455612066 --> @donovanmuller commented on GitHub (Nov 4, 2024): Same issue, deleted the exited container: ```console $ docker ps -a --filter volume=act-xxx-30c9d7d991c0b592bef67343da294c5042c27a4a55765fa4ebc000df27f6bf5c CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0a0d1b51677b danielflook/terraform-github-actions "/entrypoints/valida…" 8 minutes ago Exited (137) 59 seconds ago act-xxx-30c9d7d991c0b592bef67343da294c5042c27a4-535096946b77f9e05d543c3194fc423bdec634726d199f94d2ae0dc92b448fee $ docker rm 0a0d1b51677b 0a0d1b51677b ```
Author
Owner

@github-actions[bot] commented on GitHub (May 4, 2025):

Issue is stale and will be closed in 14 days unless there is new activity

<!-- gh-comment-id:2848871847 --> @github-actions[bot] commented on GitHub (May 4, 2025): Issue is stale and will be closed in 14 days unless there is new activity
Author
Owner

@sebthom commented on GitHub (Jun 23, 2025):

I am seeing the same issue on windows using latest act version (0.2.78). I constantly need to manually remove contains. this is quite annoying.

<!-- gh-comment-id:2996561600 --> @sebthom commented on GitHub (Jun 23, 2025): I am seeing the same issue on windows using latest act version (0.2.78). I constantly need to manually remove contains. this is quite annoying.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/act#1133
No description provided.