peridot icon indicating copy to clipboard operation
peridot copied to clipboard

CatalogSync of CatalogGroupInstallOptions fails (crashes) if srpm section is missing

Open NeilHanlon opened this issue 2 years ago • 0 comments

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

  1. Create a CatalogGroupInstallOptions config with only a build section
  2. Sync the catalog to a project
  3. 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

NeilHanlon avatar Jan 05 '23 23:01 NeilHanlon