JetBrains / intellij-platform-plugin-template

Template repository for creating plugins for IntelliJ Platform
Apache License 2.0
3.15k stars 639 forks source link

[Bug] - Qodana - Code Inspection - Unhandled exception. System.IO.IOException: No space left on device #271

Closed dinbtechit closed 2 years ago

dinbtechit commented 2 years ago

Github Repo: https://github.com/dinbtechit/vscode-theme/actions/runs/2372135752

Describe the bug:

Qodana - Code Inspection fails due to No Space left on device.

[Build](https://github.com/dinbtechit/vscode-theme/runs/6557769443?check_suite_focus=true)
Unhandled exception. System.IO.IOException: No space left on device : '/home/runner/runners/2.291.1/_diag/Worker_20220523-145852-utc.log'
   at System.IO.RandomAccess.WriteAtOffset(SafeFileHandle handle, ReadOnlySpan`1 buffer, Int64 fileOffset)
   at System.IO.Strategies.BufferedFileStreamStrategy.FlushWrite()
   at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
   at System.Diagnostics.TextWriterTraceListener.Flush()
   at System.Diagnostics.TraceSource.Flush()
   at GitHub.Runner.Common.TraceManager.Dispose(Boolean disposing)
   at GitHub.Runner.Common.TraceManager.Dispose()
   at GitHub.Runner.Common.HostContext.Dispose(Boolean disposing)
   at GitHub.Runner.Common.HostContext.Dispose()
   at GitHub.Runner.Worker.Program.Main(String[] args)
System.IO.IOException: No space left on device : '/home/runner/runners/2.291.1/_diag/Worker_20220523-145852-utc.log'
   at System.IO.RandomAccess.WriteAtOffset(SafeFileHandle handle, ReadOnlySpan`1 buffer, Int64 fileOffset)
   at System.IO.Strategies.BufferedFileStreamStrategy.FlushWrite()
   at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
   at System.Diagnostics.TextWriterTraceListener.Flush()
   at GitHub.Runner.Common.HostTraceListener.WriteHeader(String source, TraceEventType eventType, Int32 id)
   at GitHub.Runner.Common.HostTraceListener.TraceEvent(TraceEventCache eventCache, String source, TraceEventType eventType, Int32 id, String message)
   at System.Diagnostics.TraceSource.TraceEvent(TraceEventType eventType, Int32 id, String message)
   at GitHub.Runner.Worker.Worker.RunAsync(String pipeIn, String pipeOut)
   at GitHub.Runner.Worker.Program.MainAsync(IHostContext context, String[] args)
System.IO.IOException: No space left on device : '/home/runner/runners/2.291.1/_diag/Worker_20220523-145852-utc.log'
   at System.IO.RandomAccess.WriteAtOffset(SafeFileHandle handle, ReadOnlySpan`1 buffer, Int64 fileOffset)
   at System.IO.Strategies.BufferedFileStreamStrategy.FlushWrite()
   at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
   at System.Diagnostics.TextWriterTraceListener.Flush()
   at GitHub.Runner.Common.HostTraceListener.WriteHeader(String source, TraceEventType eventType, Int32 id)
   at GitHub.Runner.Common.HostTraceListener.TraceEvent(TraceEventCache eventCache, String source, TraceEventType eventType, Int32 id, String message)
   at System.Diagnostics.TraceSource.TraceEvent(TraceEventType eventType, Int32 id, String message)
   at GitHub.Runner.Common.Tracing.Error(Exception exception)
   at GitHub.Runner.Worker.Program.MainAsync(IHostContext context, String[] args)
dinbtechit commented 2 years ago

I managed to get the builds passing by adding a Clean Worksapce stage before the build starts. Looks like there are 4GB worth of libraries that I don't need.

build.yml

  # Clean Workspace
      - name: Clean Workspace
        shell: bash
        run: |
          echo "Listing 100 largest packages"
          dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n | tail -n 100
          df -h
          echo "Removing large packages"
          sudo apt-get remove -y '^dotnet-.*'
          sudo apt-get remove -y '^llvm-.*'
          sudo apt-get remove -y 'php.*'
          sudo apt-get remove -y '^mongodb-.*'
          sudo apt-get remove -y '^mysql-.*'
          sudo apt-get remove -y azure-cli google-cloud-sdk hhvm google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri
          sudo apt-get autoremove -y
          sudo apt-get clean
          df -h
          echo "Removing large directories"
          # deleting 15GB
          rm -rf /usr/share/dotnet/
          df -h

Take a look at my build.yml file: https://github.com/dinbtechit/vscode-theme/blob/0fabed73350fe48391a241e8547f331281c1152a/.github/workflows/build.yml#L37

hsz commented 2 years ago

Build GitHub Actions workflow now contains a Maximize Build Space step which frees a few GB of disk space which helps handling this issue.