Skip to content

fix: nil-pointer panic on RunHook#94

Open
RottenRat wants to merge 1 commit intomainfrom
fix-nil-pointer-panic
Open

fix: nil-pointer panic on RunHook#94
RottenRat wants to merge 1 commit intomainfrom
fix-nil-pointer-panic

Conversation

@RottenRat
Copy link
Contributor

@RottenRat RottenRat commented Feb 26, 2026

Application hook doesn't have config map collector, so we panic when try to collect output

{"level":"info","logger":"deckhouse-controller.queue-service.queue.default.test","msg":"start queue","time":"2026-02-26T12:19:12Z"}
{"level":"info","logger":"deckhouse-controller.package-runtime.settings-check.executor","msg":"hook result","hook_message":"","hook_valid":true,"hook_warnings":null,"output":"stderr","path":"/deckhouse/downloaded/apps/deployed/default.test","proxyJsonLog":true,"time":"2026-02-26T12:19:13Z"}
{"level":"info","logger":"deckhouse-controller.queue-service.queue.default.test/main/sync","msg":"start queue","time":"2026-02-26T12:19:13Z"}
{"level":"info","logger":"deckhouse-controller.queue-service.queue.default.test/triggers/sync","msg":"start queue","time":"2026-02-26T12:19:13Z"}
{"level":"info","logger":"deckhouse-controller.package-runtime.batch-hook.executor","msg":"discover triggers","hook_logger":"hook-controller.batch/triggers/hook","hook_module":"default.test","output":"stdout","path":"/deckhouse/downloaded/apps/deployed/default.test","proxyJsonLog":true,"time":"2026-02-26T12:19:13Z"}
{"level":"info","logger":"deckhouse-controller.package-runtime.batch-hook.executor","msg":"discovered triggers","hook_logger":"hook-controller.batch/triggers/hook","hook_module":"default.test","hook_pods":["trigger"],"output":"stdout","path":"/deckhouse/downloaded/apps/deployed/default.test","proxyJsonLog":true,"time":"2026-02-26T12:19:13Z"}
{
  "level": "error",
  "logger": "deckhouse-controller.package-runtime.batch-hook.executor",
  "msg": "panic recover",
  "hook_panic": {
    "error": "runtime error: invalid memory address or nil pointer dereference",
    "stacktrace": "goroutine 1 [running]:\nruntime/debug.Stack()\n\t/usr/local/go/src/runtime/debug/stack.go:26 +0x5e\ngithub.com/deckhouse/module-sdk/pkg/app.Run.func1()\n\t/go/pkg/mod/github.com/deckhouse/module-sdk@v0.7.1-0.20260202112244-5414d04d7831/pkg/app/run.go:20 +0x132\npanic({0x14f08a0?, 0x24ad370?})\n\t/usr/local/go/src/runtime/panic.go:792 +0x136\ngithub.com/deckhouse/module-sdk/internal/transport/file.(*Response).send(0x1519a80?, {0xc00004e01e?, 0xc00041f828?}, {0x0, 0x0})\n\t/go/pkg/mod/github.com/deckhouse/module-sdk@v0.7.1-0.20260202112244-5414d04d7831/internal/transport/file/transport.go:249 +0x16b\ngithub.com/deckhouse/module-sdk/internal/transport/file.(*Response).Send(0xc0001dc7e0, {0x1885c50, 0xc0003d5f50})\n\t/go/pkg/mod/github.com/deckhouse/module-sdk@v0.7.1-0.20260202112244-5414d04d7831/internal/transport/file/transport.go:222 +0x337\ngithub.com/deckhouse/module-sdk/internal/controller.(*HookController).RunHook(0xc0003d4b40, {0x18931f8, 0x2500680}, 0x1)\n\t/go/pkg/mod/github.com/deckhouse/module-sdk@v0.7.1-0.20260202112244-5414d04d7831/internal/controller/controller.go:113 +0x25e\ngithub.com/deckhouse/module-sdk/pkg/app.(*cmd).hooksCmd.func6(0xc0004a5508?, {0xc00029b410, 0x1?, 0x1?})\n\t/go/pkg/mod/github.com/deckhouse/module-sdk@v0.7.1-0.20260202112244-5414d04d7831/pkg/app/root.go:155 +0x1be\ngithub.com/spf13/cobra.(*Command).execute(0xc0004a5508, {0xc00029b3e0, 0x1, 0x1})\n\t/go/pkg/mod/github.com/spf13/cobra@v1.9.1/command.go:1015 +0x954\ngithub.com/spf13/cobra.(*Command).ExecuteC(0xc0004a4308)\n\t/go/pkg/mod/github.com/spf13/cobra@v1.9.1/command.go:1148 +0x3f1\ngithub.com/spf13/cobra.(*Command).Execute(0xc00029b2b0?)\n\t/go/pkg/mod/github.com/spf13/cobra@v1.9.1/command.go:1071 +0x13\ngithub.com/deckhouse/module-sdk/pkg/app.(*cmd).Execute(0xc00029b2b0)\n\t/go/pkg/mod/github.com/deckhouse/module-sdk@v0.7.1-0.20260202112244-5414d04d7831/pkg/app/root.go:33 +0x25\ngithub.com/deckhouse/module-sdk/pkg/app.Run({0xc00019bf60, 0x1, 0x242f700?})\n\t/go/pkg/mod/github.com/deckhouse/module-sdk@v0.7.1-0.20260202112244-5414d04d7831/pkg/app/run.go:41 +0x16a\nmain.main()\n\t/usr/src/app/hooks/batch/main.go:12 +0x31\n"
  },
  "hook_stacktrace": [
    {
      "CreatedBy": null,
      "FramesElided": false,
      "ID": 1,
      "LockedToThread": false,
      "Stack": [
        {
          "File": "/usr/local/go/src/runtime/debug/stack.go",
          "Func": "runtime/debug.Stack",
          "Line": 26
        },
        {
          "File": "/go/pkg/mod/github.com/deckhouse/deckhouse/pkg/log@v0.0.0-20250814094423-e9f108b41a1a/logger.go",
          "Func": "github.com/deckhouse/deckhouse/pkg/log.getStack",
          "Line": 286
        },
        {
          "File": "/go/pkg/mod/github.com/deckhouse/deckhouse/pkg/log@v0.0.0-20250814094423-e9f108b41a1a/logger.go",
          "Func": "github.com/deckhouse/deckhouse/pkg/log.(*Logger).Error",
          "Line": 253
        },
        {
          "File": "/go/pkg/mod/github.com/deckhouse/module-sdk@v0.7.1-0.20260202112244-5414d04d7831/pkg/app/run.go",
          "Func": "github.com/deckhouse/module-sdk/pkg/app.Run.func1",
          "Line": 21
        },
        {
          "File": "/usr/local/go/src/runtime/panic.go",
          "Func": "panic",
          "Line": 792
        },
        {
          "File": "/go/pkg/mod/github.com/deckhouse/module-sdk@v0.7.1-0.20260202112244-5414d04d7831/internal/transport/file/transport.go",
          "Func": "github.com/deckhouse/module-sdk/internal/transport/file.(*Response).send",
          "Line": 249
        },
        {
          "File": "/go/pkg/mod/github.com/deckhouse/module-sdk@v0.7.1-0.20260202112244-5414d04d7831/internal/transport/file/transport.go",
          "Func": "github.com/deckhouse/module-sdk/internal/transport/file.(*Response).Send",
          "Line": 222
        },
        {
          "File": "/go/pkg/mod/github.com/deckhouse/module-sdk@v0.7.1-0.20260202112244-5414d04d7831/internal/controller/controller.go",
          "Func": "github.com/deckhouse/module-sdk/internal/controller.(*HookController).RunHook",
          "Line": 113
        },
        {
          "File": "/go/pkg/mod/github.com/deckhouse/module-sdk@v0.7.1-0.20260202112244-5414d04d7831/pkg/app/root.go",
          "Func": "github.com/deckhouse/module-sdk/pkg/app.(*cmd).hooksCmd.func6",
          "Line": 155
        },
        {
          "File": "/go/pkg/mod/github.com/spf13/cobra@v1.9.1/command.go",
          "Func": "github.com/spf13/cobra.(*Command).execute",
          "Line": 1015
        },
        {
          "File": "/go/pkg/mod/github.com/spf13/cobra@v1.9.1/command.go",
          "Func": "github.com/spf13/cobra.(*Command).ExecuteC",
          "Line": 1148
        },
        {
          "File": "/go/pkg/mod/github.com/spf13/cobra@v1.9.1/command.go",
          "Func": "github.com/spf13/cobra.(*Command).Execute",
          "Line": 1071
        },
        {
          "File": "/go/pkg/mod/github.com/deckhouse/module-sdk@v0.7.1-0.20260202112244-5414d04d7831/pkg/app/root.go",
          "Func": "github.com/deckhouse/module-sdk/pkg/app.(*cmd).Execute",
          "Line": 33
        },
        {
          "File": "/go/pkg/mod/github.com/deckhouse/module-sdk@v0.7.1-0.20260202112244-5414d04d7831/pkg/app/run.go",
          "Func": "github.com/deckhouse/module-sdk/pkg/app.Run",
          "Line": 41
        },
        {
          "File": "/usr/src/app/hooks/batch/main.go",
          "Func": "main.main",
          "Line": 12
        }
      ],
      "State": "running",
      "Wait": 0
    }
  ],
  "output": "stdout",
  "path": "/deckhouse/downloaded/apps/deployed/default.test",
  "proxyJsonLog": true,
  "time": "2026-02-26T12:19:13Z"
}{"level":"info","logger":"deckhouse-controller.package-runtime.batch-hook.executor","msg":"discover api-servers","hook_logger":"hook-controller.batch/api/hook","hook_module":"default.test","output":"stdout","path":"/deckhouse/downloaded/apps/deployed/default.test","proxyJsonLog":true,"time":"2026-02-26T12:19:13Z"}
{"level":"info","logger":"deckhouse-controller.package-runtime.batch-hook.executor","msg":"discovered api server","hook_logger":"hook-controller.batch/api/hook","hook_module":"default.test","hook_pods":[],"output":"stdout","path":"/deckhouse/downloaded/apps/deployed/default.test","proxyJsonLog":true,"time":"2026-02-26T12:19:13Z"}
{"level":"info","logger":"deckhouse-controller.package-runtime.batch-hook.executor","msg":"hook set internal.test to 2026-02-26 12:19:13.1130186 +0000 UTC m=+0.043418105","hook_logger":"hook-controller.batch/api/hook","hook_module":"default.test","hook_pods":[],"output":"stdout","path":"/deckhouse/downloaded/apps/deployed/default.test","proxyJsonLog":true,"time":"2026-02-26T12:19:13Z"}
{"level":"info","logger":"deckhouse-controller.package-runtime.monitor.default.test","msg":"start loop","time":"2026-02-26T12:19:13Z"}
root@sinelnikov-master-0:~/packages# kubectl get app
NAME    PACKAGE    VERSION   INSTALLED   READY   MESSAGE   AGE
test    m-s-test   v0.0.23   True        True              2m12s

Signed-off-by: Sinelnikov Michail <mikhail.sinelnikov@flant.com>
@RottenRat RottenRat self-assigned this Feb 26, 2026
@RottenRat RottenRat requested a review from ipaqsa February 26, 2026 12:42
@RottenRat RottenRat marked this pull request as ready for review February 26, 2026 12:42
@ipaqsa ipaqsa changed the title Fix: Nil-pointer panic on RunHook fix: nil-pointer panic on RunHook Feb 26, 2026
Sign up for free to 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.

2 participants