Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error: volume is in use #2457

Open
GsLogiMaker opened this issue Sep 12, 2024 · 2 comments
Open

Error: volume is in use #2457

GsLogiMaker opened this issue Sep 12, 2024 · 2 comments
Labels
kind/bug Something isn't working

Comments

@GsLogiMaker
Copy link

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.

@GsLogiMaker GsLogiMaker added the kind/bug Something isn't working label Sep 12, 2024
@sebastien-perpignane
Copy link
Contributor

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.

@donovanmuller
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants