actions / setup-java

Set up your GitHub Actions workflow with a specific version of Java
MIT License
1.53k stars 738 forks source link

Overgrowing of the toolchains.xml on the self-hosted runners #530

Open IvanZosimov opened 1 year ago

IvanZosimov commented 1 year ago

Description: Every time build runs setup-java adds a new toolchain element to toolchains.xml. Even it already exists.

<?xml version="1.0"?>
<toolchains xmlns="https://maven.apache.org/TOOLCHAINS/1.1.0"
  xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="https://maven.apache.org/TOOLCHAINS/1.1.0 https://maven.apache.org/xsd/toolchains-1.1.0.xsd">
  <toolchain>
    <type>jdk</type>
    <provides>
      <version>17</version>
      <vendor>temurin</vendor>
      <id>temurin_17</id>
    </provides>
    <configuration>
      <jdkHome>C:\actions-runner\_work\_tool\Java_Temurin-Hotspot_jdk\17.0.7-7\x64</jdkHome>
    </configuration>
  </toolchain>
  <toolchain>
    <type>jdk</type>
    <provides>
      <version>17</version>
      <vendor>temurin</vendor>
      <id>temurin_17</id>
    </provides>
    <configuration>
      <jdkHome>C:\actions-runner\_work\_tool\Java_Temurin-Hotspot_jdk\17.0.7-7\x64</jdkHome>
    </configuration>
  </toolchain>
  <toolchain>
    <type>jdk</type>
    <provides>
      <version>17</version>
      <vendor>temurin</vendor>
      <id>temurin_17</id>
    </provides>
    <configuration>
      <jdkHome>C:\actions-runner\_work\_tool\Java_Temurin-Hotspot_jdk\17.0.7-7\x64</jdkHome>
    </configuration>
  </toolchain>
  <toolchain>
    <type>jdk</type>
    <provides>
      <version>17</version>
      <vendor>temurin</vendor>
      <id>temurin_17</id>
    </provides>
    <configuration>
      <jdkHome>C:\actions-runner\_work\_tool\Java_Temurin-Hotspot_jdk\17.0.7-7\x64</jdkHome>
    </configuration>
  </toolchain>
  <toolchain>
    <type>jdk</type>
    <provides>
      <version>17</version>
      <vendor>temurin</vendor>
      <id>temurin_17</id>
    </provides>
    <configuration>
      <jdkHome>C:\actions-runner\_work\_tool\Java_Temurin-Hotspot_jdk\17.0.7-7\x64</jdkHome>
    </configuration>
  </toolchain>
</toolchains>

Thanks @cyrillzadra for mentioning this issue.

Task version: v3

Platform:

Runner type:

Repro steps:
Run actions several times in a row and check the toolchains.xml file.

Expected behavior: The toolchains.xml should have only none identical toolchains records.

Actual behavior: The toolchains.xml has several (in relation to number of action runs) identical toolchains records.

fpiresca commented 4 months ago

I am getting this weird issue as well, and from the logs it seems this file is already 41k lines.

Resolved Java 17.0.1+12 from tool-cache
  Setting Java 17.0.1+12 as the default
  Creating toolchains.xml for JDK version 17.0.1 from zulu
  Error: Missing closing element tag end symbol `>`
  Index: 1138688
  Ln: 41071, Col: 13
  Input:     </configu

If I delete this file does the job will able to repair it?

Okeanos commented 4 months ago

The file should be recreated and then grow again; the only problem is if you added custom information to it manually. You'd have to redo that part. However, what you probably could do as a workaround is a run a custom shell step at the end of the job to delete this file and have it re-created again during setup-java execution.