peridot
peridot copied to clipboard
CatalogSync of CatalogGroupInstallOptions fails (crashes) if srpm section is missing
Describe The Bug
If a CatalogGroupInstallOptions config is attempted to be synced which does not contain an srpm
block, a panic is seen.
Reproduction Steps
- Create a CatalogGroupInstallOptions config with only a
build
section - Sync the catalog to a project
- gopanic
Expected Behavior
The catalog import fails gracefully and returns an error to the user.
Version and Build Information
n/a
Additional context
2023/01/05 20:26:41 ERROR Activity panic. Namespace peridot-integration TaskQueue pb-61199ba0-6856-4f90-8094-c7ef5d5a1a25-sync WorkerID 7@pb-61199ba0-6856-4f90-8094-c7ef5d5a1a25-sync@ WorkflowID 61199ba0-6856-4f90-8094-c7ef5d5a1a25 RunID dd153bbd-7602-42d4-97c5-b314ba045a0e ActivityType SyncCatalogActivity Attempt 1 PanicError runtime error: invalid memory address or nil pointer dereference PanicStack activity for pb-61199ba0-6856-4f90-8094-c7ef5d5a1a25-sync [panic]:
peridot.resf.org/peridot/builder/v1/workflow.processGroupInstallScopedPackageOptions({0x2226700, 0x4000792b10}, 0x40007aaa40, 0x0?)
peridot/builder/v1/workflow/sync.go:490 +0x30
peridot.resf.org/peridot/builder/v1/workflow.kindCatalogGroupInstallOptions({0x2226700, 0x4000792b10}, 0x40007aaa40, {0x400079a2f0, 0x1, 0x580?})
peridot/builder/v1/workflow/sync.go:555 +0x80
peridot.resf.org/peridot/builder/v1/workflow.(*Controller).SyncCatalogActivity(0x400042b080, 0x40007aaa40)
peridot/builder/v1/workflow/sync.go:913 +0xb18
reflect.Value.call({0x195a8e0?, 0x4000c53870?, 0xffffa05735b8?}, {0x1d03e4c, 0x4}, {0x4000792af8, 0x1, 0x19072000000016?})
GOROOT/src/reflect/value.go:556 +0x5e4
reflect.Value.Call({0x195a8e0?, 0x4000c53870?, 0x1bb8258?}, {0x4000792af8, 0x1, 0x1})
GOROOT/src/reflect/value.go:339 +0x98
peridot.resf.org/vendor/go.temporal.io/sdk/internal.executeFunction({0x195a8e0, 0x4000c53870}, {0x40006b3160, 0x1, 0x40004e5801?})
vendor/go.temporal.io/sdk/internal/internal_worker.go:1543 +0x134
peridot.resf.org/vendor/go.temporal.io/sdk/internal.executeFunctionWithContext({0x220d668?, 0x40004e1b90}, {0x195a8e0, 0x4000c53870}, {0x40006b3160, 0x1, 0x1})
vendor/go.temporal.io/sdk/internal/internal_worker.go:1527 +0x168
peridot.resf.org/vendor/go.temporal.io/sdk/internal.(*activityEnvironmentInterceptor).ExecuteActivity(0x40007aa9c0, {0x220d630?, 0x4000d88a80?}, 0x4000792ae0)
vendor/go.temporal.io/sdk/internal/internal_activity.go:362 +0x70
peridot.resf.org/vendor/go.temporal.io/sdk/internal.(*activityExecutor).ExecuteWithActualArgs(0x40005476b0, {0x220d630, 0x4000d88a80}, {0x40006b3160, 0x1, 0x1})
vendor/go.temporal.io/sdk/internal/internal_worker.go:798 +0x138
peridot.resf.org/vendor/go.temporal.io/sdk/internal.(*activityExecutor).Execute(0x40005476b0, {0x220d630, 0x4000d88a80}, 0x0?)
vendor/go.temporal.io/sdk/internal/internal_worker.go:784 +0x10c
peridot.resf.org/vendor/go.temporal.io/sdk/internal.(*activityTaskHandlerImpl).Execute(0x4000528600, {0x40000520ba, 0x2c}, 0x4000a08370)
vendor/go.temporal.io/sdk/internal/internal_task_handlers.go:1823 +0x74c
peridot.resf.org/vendor/go.temporal.io/sdk/internal.(*activityTaskPoller).ProcessTask(0x40007c7600, {0x186a2a0?, 0x40005c81e0})
vendor/go.temporal.io/sdk/internal/internal_task_pollers.go:858 +0x20c
peridot.resf.org/vendor/go.temporal.io/sdk/internal.(*baseWorker).processTask(0x40006b8280, {0x186a620, 0x4000824670})
vendor/go.temporal.io/sdk/internal/internal_worker_base.go:398 +0x15c
created by peridot.resf.org/vendor/go.temporal.io/sdk/internal.(*baseWorker).runTaskDispatcher
vendor/go.temporal.io/sdk/internal/internal_worker_base.go:302 +0x98