Skip to content

[Bug] panic: reflect: call of reflect.Value.NumField on int Value #686

@seamounts

Description

@seamounts

Problem Description

看的应该是对非结构体类型(比如 int) 调用 reflect.Value.NumField() 方法,导致 panic

panic: reflect: call of reflect.Value.NumField on int Value
Nov 03 14:03:18 bk8s6-5 containerd-nydus-grpc[3480425]: goroutine 5488290 [running]:
Nov 03 14:03:18 bk8s6-5 containerd-nydus-grpc[3480425]: reflect.flag.mustBe(...)
Nov 03 14:03:18 bk8s6-5 containerd-nydus-grpc[3480425]:         /opt/hostedtoolcache/go/1.24.0/x64/src/reflect/value.go:218
Nov 03 14:03:18 bk8s6-5 containerd-nydus-grpc[3480425]: reflect.Value.NumField({0x1a8a9e0?, 0xc000c182a0?, 0x1a40a60?})
Nov 03 14:03:18 bk8s6-5 containerd-nydus-grpc[3480425]:         /opt/hostedtoolcache/go/1.24.0/x64/src/reflect/value.go:1852 +0x85
Nov 03 14:03:18 bk8s6-5 containerd-nydus-grpc[3480425]: github.com/containerd/nydus-snapshotter/config/daemonconfig.serializeWithSecretFilter({0x1a8a9e0, 0xc000c182a0})
Nov 03 14:03:18 bk8s6-5 containerd-nydus-grpc[3480425]:         /home/runner/work/nydus-snapshotter/nydus-snapshotter/config/daemonconfig/daemonconfig.go:201 +0x1bb
Nov 03 14:03:18 bk8s6-5 containerd-nydus-grpc[3480425]: github.com/containerd/nydus-snapshotter/config/daemonconfig.serializeWithSecretFilter({0x1c52120, 0xc0003cd630})
Nov 03 14:03:18 bk8s6-5 containerd-nydus-grpc[3480425]:         /home/runner/work/nydus-snapshotter/nydus-snapshotter/config/daemonconfig/daemonconfig.go:232 +0x5f4
Nov 03 14:03:18 bk8s6-5 containerd-nydus-grpc[3480425]: github.com/containerd/nydus-snapshotter/config/daemonconfig.DumpConfigFile({0x1c52120?, 0xc0003cd630?}, {0xc0005cec00, 0x5e})
Nov 03 14:03:18 bk8s6-5 containerd-nydus-grpc[3480425]:         /home/runner/work/nydus-snapshotter/nydus-snapshotter/config/daemonconfig/daemonconfig.go:134 +0x45
Nov 03 14:03:18 bk8s6-5 containerd-nydus-grpc[3480425]: github.com/containerd/nydus-snapshotter/config/daemonconfig.(*FuseDaemonConfig).DumpFile(0xc0003cd630, {0xc0005cec00, 0x5e})
Nov 03 14:03:18 bk8s6-5 containerd-nydus-grpc[3480425]:         /home/runner/work/nydus-snapshotter/nydus-snapshotter/config/daemonconfig/fuse.go:106 +0x58
......
// Used when nydusd works as a FUSE daemon or vhost-user-fs backend
type FuseDaemonConfig struct {
        ......
	AmplifyIo       *int          `json:"amplify_io,omitempty"`
	......
}

How to reproduce

snapshotter 使用 0.15.7,配置如下:开启 enable_backend_source

[experimental]
# Whether to enable authentication support
# The option enables nydus snapshot to provide backend information to nydusd.
enable_backend_source = true

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions