From 0abc1ec90bf9ff7b842578980c5501bb18f8c6f1 Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Mon, 23 Sep 2024 22:22:52 +0100 Subject: [PATCH] Capture reason if zstd fails unexpectedly --- .github/workflows/__zstd-bundle-fallback.yml | 125 +++++++++++++++++++ lib/setup-codeql.js | 12 +- lib/setup-codeql.js.map | 2 +- pr-checks/checks/zstd-bundle-fallback.yml | 74 +++++++++++ src/setup-codeql.ts | 16 ++- 5 files changed, 226 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/__zstd-bundle-fallback.yml create mode 100644 pr-checks/checks/zstd-bundle-fallback.yml diff --git a/.github/workflows/__zstd-bundle-fallback.yml b/.github/workflows/__zstd-bundle-fallback.yml new file mode 100644 index 000000000..55f7f55a4 --- /dev/null +++ b/.github/workflows/__zstd-bundle-fallback.yml @@ -0,0 +1,125 @@ +# Warning: This file is generated automatically, and should not be modified. +# Instead, please modify the template in the pr-checks directory and run: +# (cd pr-checks; pip install ruamel.yaml@0.17.31 && python3 sync.py) +# to regenerate this file. + +name: PR Check - Zstandard bundle fallback +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GO111MODULE: auto +on: + push: + branches: + - main + - releases/v* + pull_request: + types: + - opened + - synchronize + - reopened + - ready_for_review + schedule: + - cron: '0 5 * * *' + workflow_dispatch: {} +jobs: + zstd-bundle-fallback: + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + version: linked + name: Zstandard bundle fallback + permissions: + contents: read + security-events: write + timeout-minutes: 45 + runs-on: ${{ matrix.os }} + steps: + - name: Setup Python on MacOS + uses: actions/setup-python@v5 + if: >- + runner.os == 'macOS' && ( + + matrix.version == 'stable-v2.13.5' || + + matrix.version == 'stable-v2.14.6') + with: + python-version: '3.11' + - name: Check out repository + uses: actions/checkout@v4 + - name: Prepare test + id: prepare-test + uses: ./.github/actions/prepare-test + with: + version: ${{ matrix.version }} + use-all-platform-bundle: 'false' + setup-kotlin: 'true' + - name: Remove CodeQL from toolcache + run: | + rm -rf $RUNNER_TOOL_CACHE/CodeQL + - id: init + uses: ./../action/init + with: + # Swift is not supported on Ubuntu so we manually exclude it from the list here + languages: cpp,csharp,go,java,javascript,python,ruby + tools: ${{ steps.prepare-test.outputs.tools-url }} + - name: Build code + shell: bash + run: ./build.sh + - uses: ./../action/analyze + with: + output: ${{ runner.temp }}/results + upload-database: false + - name: Upload SARIF + uses: actions/upload-artifact@v3 + with: + name: zstd-bundle.sarif + path: ${{ runner.temp }}/results/cpp.sarif + retention-days: 7 + - name: Check expected diagnostics + uses: actions/github-script@v7 + env: + SARIF_PATH: ${{ runner.temp }}/results/cpp.sarif + with: + script: | + const fs = require('fs'); + + const sarif = JSON.parse(fs.readFileSync(process.env['SARIF_PATH'], 'utf8')); + const run = sarif.runs[0]; + + const toolExecutionNotifications = run.invocations[0].toolExecutionNotifications; + const downloadTelemetryNotifications = toolExecutionNotifications.filter(n => + n.descriptor.id === 'codeql-action/bundle-download-telemetry' + ); + if (downloadTelemetryNotifications.length !== 1) { + core.setFailed( + 'Expected exactly one reporting descriptor in the ' + + `'runs[].invocations[].toolExecutionNotifications[]' SARIF property, but found ` + + `${downloadTelemetryNotifications.length}. All notification reporting descriptors: ` + + `${JSON.stringify(toolExecutionNotifications)}.` + ); + } + + const toolsUrl = downloadTelemetryNotifications[0].properties.attributes.toolsUrl; + console.log(`Found tools URL: ${toolsUrl}`); + + if (!toolsUrl.endsWith('.tar.gz')) { + core.setFailed( + `Expected the tools URL to be a .tar.gz file, but found '${toolsUrl}'.` + ); + } + + const zstdFailureReason = downloadTelemetryNotifications[0].properties.attributes.zstdFailureReason; + console.log(`Found zstd failure reason: ${zstdFailureReason}`); + + const expectedZstdFailureReason = 'Failing since CODEQL_ACTION_FORCE_ZSTD_FAILURE is true.'; + if (zstdFailureReason !== expectedZstdFailureReason) { + core.setFailed( + `Expected the zstd failure reason to be '${expectedZstdFailureReason}', but found '${zstdFailureReason}'.` + ); + } + env: + CODEQL_ACTION_ZSTD_BUNDLE: true + CODEQL_ACTION_FORCE_ZSTD_FAILURE: true + CODEQL_ACTION_TEST_MODE: true diff --git a/lib/setup-codeql.js b/lib/setup-codeql.js index 9ad1aa021..5cd7b0a89 100644 --- a/lib/setup-codeql.js +++ b/lib/setup-codeql.js @@ -479,17 +479,27 @@ function getCanonicalToolcacheVersion(cliVersion, bundleVersion, logger) { */ async function setupCodeQLBundle(toolsInput, apiDetails, tempDir, variant, defaultCliVersion, features, logger) { const zstdAvailability = await tar.isZstdAvailable(logger); + let zstdFailureReason; // If we think the installed version of tar supports zstd, try to use zstd, // but be prepared to fall back to gzip in case we were wrong. if (zstdAvailability.available) { try { + // To facilitate testing the fallback, fail here if a testing environment variable is set. + if (process.env.CODEQL_ACTION_FORCE_ZSTD_FAILURE === "true") { + throw new Error("Failing since CODEQL_ACTION_FORCE_ZSTD_FAILURE is true."); + } return await setupCodeQLBundleWithCompressionMethod(toolsInput, apiDetails, tempDir, variant, defaultCliVersion, features, logger, zstdAvailability, true); } catch (e) { + zstdFailureReason = util.getErrorMessage(e) || "unknown error"; logger.warning(`Failed to set up CodeQL tools with zstd. Falling back to gzipped version. Error: ${util.getErrorMessage(e)}`); } } - return await setupCodeQLBundleWithCompressionMethod(toolsInput, apiDetails, tempDir, variant, defaultCliVersion, features, logger, zstdAvailability, false); + const result = await setupCodeQLBundleWithCompressionMethod(toolsInput, apiDetails, tempDir, variant, defaultCliVersion, features, logger, zstdAvailability, false); + if (result.toolsDownloadStatusReport && zstdFailureReason) { + result.toolsDownloadStatusReport.zstdFailureReason = zstdFailureReason; + } + return result; } async function setupCodeQLBundleWithCompressionMethod(toolsInput, apiDetails, tempDir, variant, defaultCliVersion, features, logger, zstdAvailability, useTarIfAvailable) { const source = await getCodeQLSource(toolsInput, defaultCliVersion, apiDetails, variant, useTarIfAvailable, features, logger); diff --git a/lib/setup-codeql.js.map b/lib/setup-codeql.js.map index 0ec1047be..7cd0aaa88 100644 --- a/lib/setup-codeql.js.map +++ b/lib/setup-codeql.js.map @@ -1 +1 @@ -{"version":3,"file":"setup-codeql.js","sourceRoot":"","sources":["../src/setup-codeql.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"setup-codeql.js","sourceRoot":"","sources":["../src/setup-codeql.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/pr-checks/checks/zstd-bundle-fallback.yml b/pr-checks/checks/zstd-bundle-fallback.yml new file mode 100644 index 000000000..c3a88793f --- /dev/null +++ b/pr-checks/checks/zstd-bundle-fallback.yml @@ -0,0 +1,74 @@ +name: "Zstandard bundle fallback" +description: "Tests the fallback for when downloading a Zstandard-compressed CodeQL Bundle fails" +versions: + - linked +operatingSystems: + - ubuntu +env: + CODEQL_ACTION_ZSTD_BUNDLE: true + CODEQL_ACTION_FORCE_ZSTD_FAILURE: true +steps: + - name: Remove CodeQL from toolcache + run: | + rm -rf $RUNNER_TOOL_CACHE/CodeQL + - id: init + uses: ./../action/init + with: + # Swift is not supported on Ubuntu so we manually exclude it from the list here + languages: cpp,csharp,go,java,javascript,python,ruby + tools: ${{ steps.prepare-test.outputs.tools-url }} + - name: Build code + shell: bash + run: ./build.sh + - uses: ./../action/analyze + with: + output: ${{ runner.temp }}/results + upload-database: false + - name: Upload SARIF + uses: actions/upload-artifact@v3 + with: + name: zstd-bundle.sarif + path: ${{ runner.temp }}/results/cpp.sarif + retention-days: 7 + - name: Check expected diagnostics + uses: actions/github-script@v7 + env: + SARIF_PATH: ${{ runner.temp }}/results/cpp.sarif + with: + script: | + const fs = require('fs'); + + const sarif = JSON.parse(fs.readFileSync(process.env['SARIF_PATH'], 'utf8')); + const run = sarif.runs[0]; + + const toolExecutionNotifications = run.invocations[0].toolExecutionNotifications; + const downloadTelemetryNotifications = toolExecutionNotifications.filter(n => + n.descriptor.id === 'codeql-action/bundle-download-telemetry' + ); + if (downloadTelemetryNotifications.length !== 1) { + core.setFailed( + 'Expected exactly one reporting descriptor in the ' + + `'runs[].invocations[].toolExecutionNotifications[]' SARIF property, but found ` + + `${downloadTelemetryNotifications.length}. All notification reporting descriptors: ` + + `${JSON.stringify(toolExecutionNotifications)}.` + ); + } + + const toolsUrl = downloadTelemetryNotifications[0].properties.attributes.toolsUrl; + console.log(`Found tools URL: ${toolsUrl}`); + + if (!toolsUrl.endsWith('.tar.gz')) { + core.setFailed( + `Expected the tools URL to be a .tar.gz file, but found '${toolsUrl}'.` + ); + } + + const zstdFailureReason = downloadTelemetryNotifications[0].properties.attributes.zstdFailureReason; + console.log(`Found zstd failure reason: ${zstdFailureReason}`); + + const expectedZstdFailureReason = 'Failing since CODEQL_ACTION_FORCE_ZSTD_FAILURE is true.'; + if (zstdFailureReason !== expectedZstdFailureReason) { + core.setFailed( + `Expected the zstd failure reason to be '${expectedZstdFailureReason}', but found '${zstdFailureReason}'.` + ); + } diff --git a/src/setup-codeql.ts b/src/setup-codeql.ts index 22f5b2a5a..eeb002207 100644 --- a/src/setup-codeql.ts +++ b/src/setup-codeql.ts @@ -486,6 +486,7 @@ export interface ToolsDownloadStatusReport { downloadDurationMs: number; extractionDurationMs: number; toolsUrl: string; + zstdFailureReason?: string; } // Exported using `export const` for testing purposes. Specifically, we want to @@ -655,6 +656,7 @@ export interface SetupCodeQLResult { toolsSource: ToolsSource; toolsVersion: string; zstdAvailability: tar.ZstdAvailability; + zstdFailureReason?: string; } /** @@ -672,11 +674,18 @@ export async function setupCodeQLBundle( logger: Logger, ): Promise { const zstdAvailability = await tar.isZstdAvailable(logger); + let zstdFailureReason: string | undefined; // If we think the installed version of tar supports zstd, try to use zstd, // but be prepared to fall back to gzip in case we were wrong. if (zstdAvailability.available) { try { + // To facilitate testing the fallback, fail here if a testing environment variable is set. + if (process.env.CODEQL_ACTION_FORCE_ZSTD_FAILURE === "true") { + throw new Error( + "Failing since CODEQL_ACTION_FORCE_ZSTD_FAILURE is true.", + ); + } return await setupCodeQLBundleWithCompressionMethod( toolsInput, apiDetails, @@ -689,6 +698,7 @@ export async function setupCodeQLBundle( true, ); } catch (e) { + zstdFailureReason = util.getErrorMessage(e) || "unknown error"; logger.warning( `Failed to set up CodeQL tools with zstd. Falling back to gzipped version. Error: ${util.getErrorMessage( e, @@ -697,7 +707,7 @@ export async function setupCodeQLBundle( } } - return await setupCodeQLBundleWithCompressionMethod( + const result = await setupCodeQLBundleWithCompressionMethod( toolsInput, apiDetails, tempDir, @@ -708,6 +718,10 @@ export async function setupCodeQLBundle( zstdAvailability, false, ); + if (result.toolsDownloadStatusReport && zstdFailureReason) { + result.toolsDownloadStatusReport.zstdFailureReason = zstdFailureReason; + } + return result; } async function setupCodeQLBundleWithCompressionMethod(