Skip to content

plugin-server运行unexpected fault address 0x0 #65

@jinyuchen724

Description

@jinyuchen724

lighthouse配置:
@#cat /etc/lighthouse/config.yaml
apiVersion: componentconfig.lighthouse.io/v1alpha1
kind: HookConfiguration
timeout: 10
listenAddress: unix:///var/run/lighthouse.sock
webhooks:

  • name: docker3
    endpoint: unix://@plugin-server
    failurePolicy: Fail
    stages:
    • urlPattern: /{id:v[.0-9]+}/containers/create
      method: post
      type: PreHook
  • name: non-versioned
    endpoint: unix://@plugin-server
    failurePolicy: Fail
    stages:
    • urlPattern: /containers/create
      method: post
      type: PreHook
  • name: docker
    endpoint: unix://@plugin-server
    failurePolicy: Fail
    stages:
    • urlPattern: /prehook/{id:v[.0-9]+}/containers/create
      method: post
      type: PreHook
  • name: docker1
    endpoint: unix://@plugin-server
    failurePolicy: Fail
    stages:
    • urlPattern: /prehook/containers/create
      method: post
      type: PreHook
  • name: docker2
    endpoint: unix://@plugin-server
    failurePolicy: Fail
    stages:
    • urlPattern: /prehook/containers/{name:.*}/update
      method: post
      type: PreHook

Image

plugin-server报错:
@#./plugin-server --feature-gates=AllAlpha=true --listen-address=unix://@plugin-server --hostname-override=10.16.22.193 --v=9 --kubeconfig /etc/kubernetes/ssl/kubelet-bootstrap.kubeconfig
I0507 16:56:35.195083 2238899 server.go:57] FLAG: --add-dir-header="false"
I0507 16:56:35.195127 2238899 server.go:57] FLAG: --alsologtostderr="false"
I0507 16:56:35.195132 2238899 server.go:57] FLAG: --docker-endpoint="unix:///var/run/docker.sock"
I0507 16:56:35.195137 2238899 server.go:57] FLAG: --docker-version="1.38"
I0507 16:56:35.195141 2238899 server.go:57] FLAG: --feature-gates="AllAlpha=true"
I0507 16:56:35.195149 2238899 server.go:57] FLAG: --help="false"
I0507 16:56:35.195153 2238899 server.go:57] FLAG: --hostname-override="10.16.22.193"
I0507 16:56:35.195157 2238899 server.go:57] FLAG: --ignored-namespaces="[]"
I0507 16:56:35.195167 2238899 server.go:57] FLAG: --kubeconfig="/etc/kubernetes/ssl/kubelet-bootstrap.kubeconfig"
I0507 16:56:35.195171 2238899 server.go:57] FLAG: --listen-address="unix://@plugin-server"
I0507 16:56:35.195175 2238899 server.go:57] FLAG: --log-backtrace-at=":0"
I0507 16:56:35.195180 2238899 server.go:57] FLAG: --log-dir=""
I0507 16:56:35.195184 2238899 server.go:57] FLAG: --log-file=""
I0507 16:56:35.195189 2238899 server.go:57] FLAG: --log-file-max-size="1800"
I0507 16:56:35.195193 2238899 server.go:57] FLAG: --log-flush-frequency="5s"
I0507 16:56:35.195200 2238899 server.go:57] FLAG: --logtostderr="true"
I0507 16:56:35.195204 2238899 server.go:57] FLAG: --master=""
I0507 16:56:35.195208 2238899 server.go:57] FLAG: --skip-headers="false"
I0507 16:56:35.195212 2238899 server.go:57] FLAG: --skip-log-headers="false"
I0507 16:56:35.195219 2238899 server.go:57] FLAG: --stderrthreshold="2"
I0507 16:56:35.195223 2238899 server.go:57] FLAG: --v="9"
I0507 16:56:35.195227 2238899 server.go:57] FLAG: --version="false"
I0507 16:56:35.195234 2238899 server.go:57] FLAG: --vmodule=""
I0507 16:56:35.195242 2238899 feature_gate.go:243] feature gates: &{map[AllAlpha:true DockerOfflineMutate:true DockerPidsLimit:true DockerStorageOption:true DockerUTSMode:true]}
I0507 16:56:35.195854 2238899 loader.go:375] Config loaded from file: /etc/kubernetes/ssl/kubelet-bootstrap.kubeconfig
I0507 16:56:35.196219 2238899 server.go:76] Register plugin VersionedDockerPreCreate, method POST, path /prehook/{id:v[.0-9]+}/containers/create
I0507 16:56:35.196288 2238899 server.go:76] Register plugin DockerPreCreate, method POST, path /prehook/containers/create
I0507 16:56:35.196303 2238899 server.go:76] Register plugin DockerPreUpdate, method POST, path /prehook/containers/{name:.*}/update
I0507 16:56:35.196441 2238899 server.go:105] Hook manager is running
W0507 16:56:35.196446 2238899 server.go:113] Unable to send systemd daemon Type=notify in systemd service file?
I0507 16:56:47.171643 2238899 server.go:129] Handle request POST /prehook/v1.41/containers/create
I0507 16:56:47.171663 2238899 prehook_create_plugin.go:127] Plugin handle request /prehook/v1.41/containers/create
I0507 16:56:47.172882 2238899 prehook_create_plugin.go:153] Get pod from container labels
I0507 16:56:47.173194 2238899 offline.go:79] Starting cleanup thread
unexpected fault address 0x0
fatal error: fault
[signal SIGSEGV: segmentation violation code=0x80 addr=0x0 pc=0x4629df]

goroutine 24 [running]:
runtime.throw({0x131d50b?, 0x80?})
/usr/lib/go-1.18/src/runtime/panic.go:992 +0x71 fp=0xc000397108 sp=0xc0003970d8 pc=0x435c51
runtime.sigpanic()
/usr/lib/go-1.18/src/runtime/signal_unix.go:829 +0x305 fp=0xc000397158 sp=0xc000397108 pc=0x44b4c5
aeshashbody()
/usr/lib/go-1.18/src/runtime/asm_amd64.s:1343 +0x39f fp=0xc000397160 sp=0xc000397158 pc=0x4629df
runtime.mapiternext(0xc00056efc0)
/usr/lib/go-1.18/src/runtime/map.go:934 +0x2cb fp=0xc0003971d0 sp=0xc000397160 pc=0x41188b
runtime.mapiterinit(0xc000397218?, 0x40f407?, 0x203000?)
/usr/lib/go-1.18/src/runtime/map.go:861 +0x228 fp=0xc0003971f0 sp=0xc0003971d0 pc=0x411568
reflect.mapiterinit(0x465727?, 0x9d6ded?, 0x1201100?)
/usr/lib/go-1.18/src/runtime/map.go:1373 +0x19 fp=0xc000397218 sp=0xc0003971f0 pc=0x45f879
github.com/modern-go/reflect2.(*UnsafeMapType).UnsafeIterate(...)
/root/go/pkg/mod/github.com/modern-go/reflect2@v1.0.1/unsafe_map.go:112
github.com/json-iterator/go.(*sortKeysMapEncoder).Encode(0xc0004e9ad0, 0xc0003fe878, 0xc000280a20)
/root/go/pkg/mod/github.com/json-iterator/go@v1.1.8/reflect_map.go:291 +0x225 fp=0xc000397378 sp=0xc000397218 pc=0x9ca425
github.com/json-iterator/go.(*structFieldEncoder).Encode(0xc000512060, 0x11c8fc0?, 0xc000280a20)
/root/go/pkg/mod/github.com/json-iterator/go@v1.1.8/reflect_struct_encoder.go:110 +0x56 fp=0xc0003973f0 sp=0xc000397378 pc=0x9d7556
github.com/json-iterator/go.(*dereferenceEncoder).Encode(0xc0003974a8?, 0x9d9367?, 0xc000280a38?)
/root/go/pkg/mod/github.com/json-iterator/go@v1.1.8/reflect_optional.go:90 +0xa4 fp=0xc000397440 sp=0xc0003973f0 pc=0x9cf684
github.com/json-iterator/go.(*structFieldEncoder).Encode(0xc000512510, 0x10bf932?, 0xc000280a20)
/root/go/pkg/mod/github.com/json-iterator/go@v1.1.8/reflect_struct_encoder.go:110 +0x56 fp=0xc0003974b8 sp=0xc000397440 pc=0x9d7556
github.com/json-iterator/go.(*structEncoder).Encode(0xc000570cf0, 0xc0003975d0?, 0xc000280a20)
/root/go/pkg/mod/github.com/json-iterator/go@v1.1.8/reflect_struct_encoder.go:158 +0x652 fp=0xc000397590 sp=0xc0003974b8 pc=0x9d7e52
github.com/json-iterator/go.(*OptionalEncoder).Encode(0x115ed00?, 0xc000011758?, 0xc000397620?)
/root/go/pkg/mod/github.com/json-iterator/go@v1.1.8/reflect_optional.go:74 +0xa4 fp=0xc0003975e0 sp=0xc000397590 pc=0x9cf584
github.com/json-iterator/go.(*onePtrEncoder).Encode(0xc00054be40, 0xc0000299b0, 0xc000029ad0?)
/root/go/pkg/mod/github.com/json-iterator/go@v1.1.8/reflect.go:219 +0x82 fp=0xc000397618 sp=0xc0003975e0 pc=0x9c2b02
github.com/json-iterator/go.(*Stream).WriteVal(0xc000280a20, {0x1194220, 0xc0000299b0})
/root/go/pkg/mod/github.com/json-iterator/go@v1.1.8/reflect.go:98 +0x158 fp=0xc000397688 sp=0xc000397618 pc=0x9c1e18
github.com/json-iterator/go.(*frozenConfig).Marshal(0xc0003dcdc0, {0x1194220, 0xc0000299b0})
/root/go/pkg/mod/github.com/json-iterator/go@v1.1.8/config.go:299 +0xc9 fp=0xc000397720 sp=0xc000397688 pc=0x9b90c9
github.com/tencent/lighthouse-plugin/pkg/plugin/docker.groupPatchData({0x1194220?, 0xc0000299b0?}, {0xc000340000, 0x94c, 0xc00})
/home/www/caelus/contrib/lighthouse-plugin/pkg/plugin/docker/common.go:53 +0x54 fp=0xc000397770 sp=0xc000397720 pc=0x10b3b94
github.com/tencent/lighthouse-plugin/pkg/plugin/docker.(*preHookDockerCreatePluginBundle).Handler.func2({0x14f9cc8, 0xc00030e7e0}, 0xc000218d00)
/home/www/caelus/contrib/lighthouse-plugin/pkg/plugin/docker/prehook_create_plugin.go:171 +0x75b fp=0xc0003978b0 sp=0xc000397770 pc=0x10b47bb
net/http.HandlerFunc.ServeHTTP(0xc000218c00?, {0x14f9cc8?, 0xc00030e7e0?}, 0x12e4760?)
/usr/lib/go-1.18/src/net/http/server.go:2084 +0x2f fp=0xc0003978d8 sp=0xc0003978b0 pc=0x6ef70f
github.com/gorilla/mux.(*Router).ServeHTTP(0xc000382480, {0x14f9cc8, 0xc00030e7e0}, 0xc000218b00)
/root/go/pkg/mod/github.com/gorilla/mux@v1.7.0/mux.go:212 +0x202 fp=0xc000397a08 sp=0xc0003978d8 pc=0x10abf62
github.com/tencent/lighthouse-plugin/pkg/server.(*pluginServer).ServeHTTP(0xc0002802a0, {0x14f9cc8, 0xc00030e7e0}, 0xc000218b00)
/home/www/caelus/contrib/lighthouse-plugin/pkg/server/server.go:130 +0x145 fp=0xc000397a98 sp=0xc000397a08 pc=0x10ba345
net/http.serverHandler.ServeHTTP({0x14edde8?}, {0x14f9cc8, 0xc00030e7e0}, 0xc000218b00)
/usr/lib/go-1.18/src/net/http/server.go:2916 +0x43b fp=0xc000397b58 sp=0xc000397a98 pc=0x6f2cfb
net/http.(*conn).serve(0xc0003dd180, {0x14fa4c0, 0xc000029680})
/usr/lib/go-1.18/src/net/http/server.go:1966 +0x5d7 fp=0xc000397fb8 sp=0xc000397b58 pc=0x6ee1b7
net/http.(*Server).Serve.func3()
/usr/lib/go-1.18/src/net/http/server.go:3071 +0x2e fp=0xc000397fe0 sp=0xc000397fb8 pc=0x6f364e
runtime.goexit()
/usr/lib/go-1.18/src/runtime/asm_amd64.s:1571 +0x1 fp=0xc000397fe8 sp=0xc000397fe0 pc=0x4655e1
created by net/http.(*Server).Serve
/usr/lib/go-1.18/src/net/http/server.go:3071 +0x4db

goroutine 1 [select]:
github.com/tencent/lighthouse-plugin/pkg/server.(*pluginServer).Run(0xc0002802a0, 0x0)
/home/www/caelus/contrib/lighthouse-plugin/pkg/server/server.go:116 +0x28f
github.com/tencent/lighthouse-plugin/cmd/plugin-server/app.(*Options).Run(0xc00025e780)
/home/www/caelus/contrib/lighthouse-plugin/cmd/plugin-server/app/server.go:119 +0xb8
github.com/tencent/lighthouse-plugin/cmd/plugin-server/app.NewPluginServerCommand.func1(0xc000214a00?, {0x131cfad?, 0x6?, 0x6?})
/home/www/caelus/contrib/lighthouse-plugin/cmd/plugin-server/app/server.go:64 +0xc5
github.com/spf13/cobra.(*Command).execute(0xc000214a00, {0xc00003c080, 0x6, 0x6})
/root/go/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:830 +0x663
github.com/spf13/cobra.(*Command).ExecuteC(0xc000214a00)
/root/go/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:914 +0x2ee
github.com/spf13/cobra.(*Command).Execute(...)
/root/go/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:864
main.main()
/home/www/caelus/contrib/lighthouse-plugin/cmd/plugin-server/plugin-server.go:45 +0xe6

goroutine 4 [chan receive]:
k8s.io/klog.(*loggingT).flushDaemon(0x0?)
/root/go/pkg/mod/k8s.io/klog@v1.0.0/klog.go:1010 +0x6a
created by k8s.io/klog.init.0
/root/go/pkg/mod/k8s.io/klog@v1.0.0/klog.go:411 +0xef

goroutine 20 [select]:
k8s.io/apimachinery/pkg/util/wait.JitterUntil(0x0?, 0x12a05f200, 0x0, 0x1, 0xc0001700c0)
/root/go/pkg/mod/k8s.io/apimachinery@v0.17.4/pkg/util/wait/wait.go:164 +0x189
k8s.io/apimachinery/pkg/util/wait.Until(...)
/root/go/pkg/mod/k8s.io/apimachinery@v0.17.4/pkg/util/wait/wait.go:88
k8s.io/apimachinery/pkg/util/wait.Forever(0x0?, 0x0?)
/root/go/pkg/mod/k8s.io/apimachinery@v0.17.4/pkg/util/wait/wait.go:79 +0x28
created by k8s.io/component-base/logs.InitLogs
/root/go/pkg/mod/k8s.io/component-base@v0.17.4/logs/logs.go:58 +0x70

goroutine 21 [chan receive]:
k8s.io/apimachinery/pkg/watch.(*Broadcaster).loop(0xc00056f480)
/root/go/pkg/mod/k8s.io/apimachinery@v0.17.4/pkg/watch/mux.go:207 +0x49
created by k8s.io/apimachinery/pkg/watch.NewBroadcaster
/root/go/pkg/mod/k8s.io/apimachinery@v0.17.4/pkg/watch/mux.go:75 +0xea

goroutine 22 [chan receive]:
k8s.io/client-go/tools/record.(*eventBroadcasterImpl).StartEventWatcher.func1()
/root/go/pkg/mod/k8s.io/client-go@v0.17.4/tools/record/event.go:291 +0x73
created by k8s.io/client-go/tools/record.(*eventBroadcasterImpl).StartEventWatcher
/root/go/pkg/mod/k8s.io/client-go@v0.17.4/tools/record/event.go:289 +0x8c

goroutine 23 [IO wait]:
internal/poll.runtime_pollWait(0x7f10edeacfd8, 0x72)
/usr/lib/go-1.18/src/runtime/netpoll.go:302 +0x89
internal/poll.(*pollDesc).wait(0xc0001fd380?, 0x203000?, 0x0)
/usr/lib/go-1.18/src/internal/poll/fd_poll_runtime.go:83 +0x32
internal/poll.(*pollDesc).waitRead(...)
/usr/lib/go-1.18/src/internal/poll/fd_poll_runtime.go:88
internal/poll.(*FD).Accept(0xc0001fd380)
/usr/lib/go-1.18/src/internal/poll/fd_unix.go:614 +0x22c
net.(*netFD).accept(0xc0001fd380)
/usr/lib/go-1.18/src/net/fd_unix.go:172 +0x35
net.(*UnixListener).accept(0x46340e?)
/usr/lib/go-1.18/src/net/unixsock_posix.go:166 +0x1c
net.(*UnixListener).Accept(0xc000029560)
/usr/lib/go-1.18/src/net/unixsock.go:260 +0x3d
net/http.(*Server).Serve(0xc00030e700, {0x14f9ae8, 0xc000029560})
/usr/lib/go-1.18/src/net/http/server.go:3039 +0x385
net/http.Serve(...)
/usr/lib/go-1.18/src/net/http/server.go:2543
github.com/tencent/lighthouse-plugin/pkg/server.(*pluginServer).Run.func1()
/home/www/caelus/contrib/lighthouse-plugin/pkg/server/server.go:101 +0x8d
created by github.com/tencent/lighthouse-plugin/pkg/server.(*pluginServer).Run
/home/www/caelus/contrib/lighthouse-plugin/pkg/server/server.go:99 +0x15b

goroutine 25 [IO wait]:
internal/poll.runtime_pollWait(0x7f10edeacee8, 0x72)
/usr/lib/go-1.18/src/runtime/netpoll.go:302 +0x89
internal/poll.(*pollDesc).wait(0xc0001fd580?, 0xc000029721?, 0x0)
/usr/lib/go-1.18/src/internal/poll/fd_poll_runtime.go:83 +0x32
internal/poll.(*pollDesc).waitRead(...)
/usr/lib/go-1.18/src/internal/poll/fd_poll_runtime.go:88
internal/poll.(*FD).Read(0xc0001fd580, {0xc000029721, 0x1, 0x1})
/usr/lib/go-1.18/src/internal/poll/fd_unix.go:167 +0x25a
net.(*netFD).Read(0xc0001fd580, {0xc000029721?, 0xc0000295c0?, 0x0?})
/usr/lib/go-1.18/src/net/fd_posix.go:55 +0x29
net.(*conn).Read(0xc0000109c8, {0xc000029721?, 0xc00030e700?, 0x14f9ae8?})
/usr/lib/go-1.18/src/net/net.go:183 +0x45
net/http.(*connReader).backgroundRead(0xc000029710)
/usr/lib/go-1.18/src/net/http/server.go:672 +0x3f
created by net/http.(*connReader).startBackgroundRead
/usr/lib/go-1.18/src/net/http/server.go:668 +0xca

goroutine 26 [runnable]:
net/http.(*persistConn).roundTrip(0xc000350900, 0xc000638000)
/usr/lib/go-1.18/src/net/http/transport.go:2634 +0x974
net/http.(*Transport).roundTrip(0xc0003fe140, 0xc000634100)
/usr/lib/go-1.18/src/net/http/transport.go:594 +0x7c9
net/http.(*Transport).RoundTrip(0x4193ab?, 0x14e86c0?)
/usr/lib/go-1.18/src/net/http/roundtrip.go:17 +0x19
net/http.send(0xc000634100, {0x14e86c0, 0xc0003fe140}, {0x12d4440?, 0xc00029f401?, 0x0?})
/usr/lib/go-1.18/src/net/http/client.go:252 +0x5d8
net/http.(*Client).send(0xc000028f90, 0xc000634100, {0x100000008?, 0x7f10ec5eaa60?, 0x0?})
/usr/lib/go-1.18/src/net/http/client.go:176 +0x9b
net/http.(*Client).do(0xc000028f90, 0xc000634100)
/usr/lib/go-1.18/src/net/http/client.go:725 +0x8f5
net/http.(*Client).Do(...)
/usr/lib/go-1.18/src/net/http/client.go:593
github.com/docker/docker/client.(*Client).doRequest(0xc0001fd100, {0x14fa450, 0xc0000400d8}, 0xc000634000)
/root/go/pkg/mod/github.com/docker/docker@v20.10.1+incompatible/client/request.go:125 +0x288
github.com/docker/docker/client.(*Client).sendRequest(0x131d5ab?, {0x14fa450, 0xc0000400d8}, {0x131ca95, 0x3}, {0x13268a7?, 0x0?}, 0x0?, {0x0, 0x0}, ...)
/root/go/pkg/mod/github.com/docker/docker@v20.10.1+incompatible/client/request.go:113 +0xd3
github.com/docker/docker/client.(*Client).get(...)
/root/go/pkg/mod/github.com/docker/docker@v20.10.1+incompatible/client/request.go:37
github.com/docker/docker/client.(*Client).ContainerList(0xc0001fd100, {0x14fa450, 0xc0000400d8}, {0x0, 0x0, 0x1, 0x0, {0x0, 0x0}, {0x0, ...}, ...})
/root/go/pkg/mod/github.com/docker/docker@v20.10.1+incompatible/client/container_list.go:48 +0x558
github.com/tencent/lighthouse-plugin/pkg/plugin/docker/offline.(*offlineMutator).cleanupEmptyCgroup(0x1d7ffc0)
/home/www/caelus/contrib/lighthouse-plugin/pkg/plugin/docker/offline/offline.go:165 +0x69
k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1(0x0?)
/root/go/pkg/mod/k8s.io/apimachinery@v0.17.4/pkg/util/wait/wait.go:152 +0x3e
k8s.io/apimachinery/pkg/util/wait.JitterUntil(0x0?, 0xdf8475800, 0x0, 0x1, 0x0)
/root/go/pkg/mod/k8s.io/apimachinery@v0.17.4/pkg/util/wait/wait.go:153 +0x11d
k8s.io/apimachinery/pkg/util/wait.Until(0x0?, 0x0?, 0x0?)
/root/go/pkg/mod/k8s.io/apimachinery@v0.17.4/pkg/util/wait/wait.go:88 +0x25
created by github.com/tencent/lighthouse-plugin/pkg/plugin/docker/offline.(*offlineMutator).mutate.func1
/home/www/caelus/contrib/lighthouse-plugin/pkg/plugin/docker/offline/offline.go:80 +0x14d

goroutine 74 [select]:
net/http.(*persistConn).readLoop(0xc000350900)
/usr/lib/go-1.18/src/net/http/transport.go:2213 +0xda5
created by net/http.(*Transport).dialConn
/usr/lib/go-1.18/src/net/http/transport.go:1750 +0x173e

goroutine 75 [select]:
net/http.(*persistConn).writeLoop(0xc000350900)
/usr/lib/go-1.18/src/net/http/transport.go:2406 +0xf5
created by net/http.(*Transport).dialConn
/usr/lib/go-1.18/src/net/http/transport.go:1751 +0x1791

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions