Skip to content

Fix crash in "bundle summary" - #3141

Merged
denik merged 1 commit into
mainfrom
denik/fix-summary-crash
Jun 30, 2025
Merged

Fix crash in "bundle summary"#3141
denik merged 1 commit into
mainfrom
denik/fix-summary-crash

Conversation

@denik

@denikdenik commented Jun 30, 2025

Copy link
Copy Markdown
Contributor

Changes

Fix crash in "bundle summary" when there was an error. Crash introduced in #3123 (not released yet).

Tests

New acceptance test added in #3138

@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Jun 30, 2025

Copy link
Copy Markdown
Collaborator

Run: 15969899462

Env✅‌pass❌‌FAIL🙈‌skip
❌‌aws linux27519366
❌‌aws windows27619365
❌‌aws-ucws linux38018266
❌‌aws-ucws windows38118265
❌‌azure linux28412365
❌‌azure windows28512364
❌‌azure-ucws linux38020263
❌‌azure-ucws windows38120262
❌‌gcp linux24455363
❌‌gcp windows26234366
Test Nameaws linuxaws windowsaws-ucws linuxaws-ucws windowsazure linuxazure windowsazure-ucws linuxazure-ucws windowsgcp linuxgcp windows
TestAccept❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL
TestAccept/bundle/deploy/dashboard/detect-change❌‌FAIL❌‌FAIL✅‌pass✅‌pass❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL
TestAccept/bundle/deploy/dashboard/nested-folders✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/deploy/dashboard/simple✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/deploy/dashboard/simple_outside_bundle_root✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/deploy/dashboard/simple_syncroot✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/deploy/files/no-snapshot-sync✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL✅‌pass
TestAccept/bundle/deploy/files/no-snapshot-sync/DATABRICKS_CLI_DEPLOYMENT=direct-exp✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL✅‌pass
TestAccept/bundle/deploy/files/no-snapshot-sync/DATABRICKS_CLI_DEPLOYMENT=terraform✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL✅‌pass
TestAccept/bundle/deploy/jobs/check-metadata✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL
TestAccept/bundle/deploy/jobs/double-underscore-keys✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/deploy/jobs/fail-on-active-runs✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/deploy/jobs/fail-on-active-runs/DATABRICKS_CLI_DEPLOYMENT=direct-exp✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/deploy/jobs/fail-on-active-runs/DATABRICKS_CLI_DEPLOYMENT=terraform✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/deploy/mlops-stacks✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/deploy/pipeline/auto-approve✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/deploy/secret-scope✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/deployment/bind/cluster✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/deployment/bind/dashboard✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/deployment/bind/dashboard/recreation✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/deployment/bind/experiment✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/deployment/bind/job/job-abort-bind✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/deployment/bind/job/job-spark-python-task✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/deployment/bind/model-serving-endpoint✅‌pass❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/destroy/jobs-and-pipeline✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/resources/clusters/deploy/simple✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestAccept/bundle/resources/pipelines❌‌FAIL❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL✅‌pass
TestAccept/bundle/resources/pipelines/DATABRICKS_CLI_DEPLOYMENT=direct-exp❌‌FAIL❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestAccept/bundle/resources/pipelines/DATABRICKS_CLI_DEPLOYMENT=terraform❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL✅‌pass
TestAccept/bundle/templates/default-python/combinations❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL
TestAccept/bundle/templates/default-python/combinations/D=no/DATABRICKS_CLI_DEPLOYMENT=direct-exp/N=no/P=no/S=no✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL✅‌pass
TestAccept/bundle/templates/default-python/combinations/D=no/DATABRICKS_CLI_DEPLOYMENT=direct-exp/N=no/P=no/S=yes🙈‌skip🙈‌skip✅‌pass✅‌pass🙈‌skip🙈‌skip✅‌pass✅‌pass❌‌FAIL🙈‌skip
TestAccept/bundle/templates/default-python/combinations/D=no/DATABRICKS_CLI_DEPLOYMENT=direct-exp/N=no/P=yes/S=no❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL
TestAccept/bundle/templates/default-python/combinations/D=no/DATABRICKS_CLI_DEPLOYMENT=direct-exp/N=no/P=yes/S=yes🙈‌skip🙈‌skip❌‌FAIL❌‌FAIL🙈‌skip🙈‌skip❌‌FAIL❌‌FAIL❌‌FAIL🙈‌skip
TestAccept/bundle/templates/default-python/combinations/D=no/DATABRICKS_CLI_DEPLOYMENT=direct-exp/N=yes/P=no/S=no✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL✅‌pass
TestAccept/bundle/templates/default-python/combinations/D=no/DATABRICKS_CLI_DEPLOYMENT=direct-exp/N=yes/P=no/S=yes🙈‌skip🙈‌skip✅‌pass✅‌pass🙈‌skip🙈‌skip✅‌pass✅‌pass❌‌FAIL🙈‌skip
TestAccept/bundle/templates/default-python/combinations/D=no/DATABRICKS_CLI_DEPLOYMENT=direct-exp/N=yes/P=yes/S=no❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL
TestAccept/bundle/templates/default-python/combinations/D=no/DATABRICKS_CLI_DEPLOYMENT=direct-exp/N=yes/P=yes/S=yes🙈‌skip🙈‌skip❌‌FAIL❌‌FAIL🙈‌skip🙈‌skip❌‌FAIL❌‌FAIL🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/combinations/D=no/DATABRICKS_CLI_DEPLOYMENT=terraform/N=no/P=yes/S=no❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL
TestAccept/bundle/templates/default-python/combinations/D=no/DATABRICKS_CLI_DEPLOYMENT=terraform/N=no/P=yes/S=yes🙈‌skip🙈‌skip❌‌FAIL❌‌FAIL🙈‌skip🙈‌skip❌‌FAIL❌‌FAIL🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/combinations/D=no/DATABRICKS_CLI_DEPLOYMENT=terraform/N=yes/P=yes/S=no❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL
TestAccept/bundle/templates/default-python/combinations/D=no/DATABRICKS_CLI_DEPLOYMENT=terraform/N=yes/P=yes/S=yes🙈‌skip🙈‌skip❌‌FAIL❌‌FAIL🙈‌skip🙈‌skip❌‌FAIL❌‌FAIL🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/combinations/D=yes/DATABRICKS_CLI_DEPLOYMENT=direct-exp/N=no/P=yes/S=no❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL
TestAccept/bundle/templates/default-python/combinations/D=yes/DATABRICKS_CLI_DEPLOYMENT=direct-exp/N=no/P=yes/S=yes🙈‌skip🙈‌skip❌‌FAIL❌‌FAIL🙈‌skip🙈‌skip❌‌FAIL❌‌FAIL🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/combinations/D=yes/DATABRICKS_CLI_DEPLOYMENT=direct-exp/N=yes/P=yes/S=no❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL
TestAccept/bundle/templates/default-python/combinations/D=yes/DATABRICKS_CLI_DEPLOYMENT=direct-exp/N=yes/P=yes/S=yes🙈‌skip🙈‌skip❌‌FAIL❌‌FAIL🙈‌skip🙈‌skip❌‌FAIL❌‌FAIL🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/combinations/D=yes/DATABRICKS_CLI_DEPLOYMENT=terraform/N=no/P=yes/S=no❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL
TestAccept/bundle/templates/default-python/combinations/D=yes/DATABRICKS_CLI_DEPLOYMENT=terraform/N=no/P=yes/S=yes🙈‌skip🙈‌skip❌‌FAIL❌‌FAIL🙈‌skip🙈‌skip❌‌FAIL❌‌FAIL🙈‌skip🙈‌skip
TestAccept/bundle/templates/default-python/combinations/D=yes/DATABRICKS_CLI_DEPLOYMENT=terraform/N=yes/P=yes/S=no❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL❌‌FAIL
TestAccept/bundle/templates/default-python/combinations/D=yes/DATABRICKS_CLI_DEPLOYMENT=terraform/N=yes/P=yes/S=yes🙈‌skip🙈‌skip❌‌FAIL❌‌FAIL🙈‌skip🙈‌skip❌‌FAIL❌‌FAIL❌‌FAIL🙈‌skip
TestAccept/bundle/templates/default-python/integration_classic✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL✅‌pass
TestAccept/bundle/templates/default-python/integration_classic/DATABRICKS_CLI_DEPLOYMENT=terraform/UV_PYTHON=3.10✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL✅‌pass
TestAccept/bundle/templates/default-python/integration_classic/DATABRICKS_CLI_DEPLOYMENT=terraform/UV_PYTHON=3.11✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL✅‌pass
TestAccept/bundle/templates/default-python/integration_classic/DATABRICKS_CLI_DEPLOYMENT=terraform/UV_PYTHON=3.12✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL✅‌pass
TestAccept/bundle/templates/default-python/integration_classic/DATABRICKS_CLI_DEPLOYMENT=terraform/UV_PYTHON=3.13✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL✅‌pass
TestAccept/bundle/templates/default-python/integration_classic/DATABRICKS_CLI_DEPLOYMENT=terraform/UV_PYTHON=3.9✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL✅‌pass
TestFetchRepositoryInfoAPI_FromRepo❌‌FAIL❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestGenerateAndBind✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestGenerateFromExistingJobAndDeploy✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL❌‌FAIL
TestGenerateFromExistingPipelineAndDeploy✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL✅‌pass
TestLock✅‌pass❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestReposCreateWithProvider❌‌FAIL❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestReposCreateWithoutProvider❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestReposDeleteByPath❌‌FAIL❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestReposUpdate❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass
TestSparkJarTaskDeployAndRunOnWorkspace✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL✅‌pass
TestSparkJarTaskDeployAndRunOnWorkspace/Databricks_Runtime_14.3_LTS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL✅‌pass
TestSparkJarTaskDeployAndRunOnWorkspace/Databricks_Runtime_15.4_LTS✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass❌‌FAIL✅‌pass
TestSyncEnsureRemotePathIsUsableIfRepoExists✅‌pass❌‌FAIL✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass✅‌pass

@denik
deniktemporarily deployed to test-trigger-is June 30, 2025 09:34 — with GitHub Actions Inactive
)

func renderJsonOutput(cmd *cobra.Command, b *bundle.Bundle) error {
if b == nil {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why would it be nil in the first place? From what I thought it's only nil when error is return from bundle configure function, maybe we're missing handling the error somewhere?

@denikdenikJun 30, 2025

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, this could be improved.

We have RenderDiagnostics() function which accepts bundle and diagnostics (and seems to handle b being nil, at least I see the checks there)

funcRenderDiagnostics(out io.Writer, b*bundle.Bundle, diags diag.Diagnostics, optsRenderOptions) error {

Probably the best time to refactor this is once we get rid of []Diagnostic and just log them as they come. Then this whole thing will become simpler.

Base automatically changed from denik/summary_test_crash to mainJune 30, 2025 09:58
@denik
denikforce-pushed the denik/fix-summary-crash branch from 677d93a to 4811788CompareJune 30, 2025 10:01
@denik
deniktemporarily deployed to test-trigger-is June 30, 2025 10:01 — with GitHub Actions Inactive
@denik
denik requested a review from andrewnesterJune 30, 2025 10:14
@denik
denik merged commit 6d67410 into mainJun 30, 2025
@denik
denik deleted the denik/fix-summary-crash branch June 30, 2025 11:12
denik added a commit that referenced this pull request May 20, 2026
## Changes
Fix crash in "bundle summary" when there was an error. Crash introduced
in #3123 (not released yet).
## Tests
New acceptance test added in #3138
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@denik@eng-dev-ecosystem-bot@andrewnester@shreyas-goenka