kubernetes: apiserver crashes with --secure-port=0

Is this a BUG REPORT or FEATURE REQUEST?:

/kind bug

What happened:

Started apiserver with flag --secure-port=0. The process crashes with the following logs:

I0914 15:44:19.040116       5 server.go:112] Version: v1.7.5
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x48 pc=0x16281b6]

goroutine 1 [running]:
k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle.(*lifecycle).SetExternalKubeInformerFactory(0xc4208a5340, 0x0, 0x0)
	/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/admission.go:203 +0x26
k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission/initializer.pluginInitializer.Initialize(0x77ea900, 0xc4208d0840, 0x0, 0x0, 0x77b4d20, 0xc4208b47c0, 0x77bb460, 0xc4208a5340)
	/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission/initializer/initializer.go:49 +0x112
k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission/initializer.(*pluginInitializer).Initialize(0xc4208a15f0, 0x77bb460, 0xc4208a5340)
	<autogenerated>:1 +0x70
k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission.PluginInitializers.Initialize(0xc420918240, 0x2, 0x2, 0x77bb460, 0xc4208a5340)
	/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission/plugins.go:180 +0x5d
k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission.(*PluginInitializers).Initialize(0xc420918260, 0x77bb460, 0xc4208a5340)
	<autogenerated>:18 +0x73
k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission.(*Plugins).InitPlugin(0xc4202a0090, 0xc420207080, 0x12, 0x0, 0x0, 0x77b4be0, 0xc420918260, 0x410e67, 0xc4205f94a0, 0x20, ...)
	/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission/plugins.go:155 +0x20c
k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission.(*Plugins).NewFromPlugins(0xc4202a0090, 0xc4200fc9a0, 0x7, 0x7, 0x77b4c20, 0xc4208a47c0, 0x77b4be0, 0xc420918260, 0x0, 0xc42089e480, ...)
	/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission/plugins.go:129 +0x126
k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/options.(*AdmissionOptions).ApplyTo(0xc4208021e0, 0xc420806a80, 0xc420918220, 0x2, 0x2, 0x77e6160, 0xc42087a150)
	/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/options/admission.go:84 +0x453
k8s.io/kubernetes/cmd/kube-apiserver/app.BuildGenericConfig(0xc420800000, 0x0, 0x0, 0x0, 0x2, 0x1, 0x0, 0x1, 0xc420012c80, 0xc4208024e0, ...)
	/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kube-apiserver/app/server.go:448 +0x1150
k8s.io/kubernetes/cmd/kube-apiserver/app.CreateKubeAPIServerConfig(0xc420800000, 0x0, 0x0, 0x77b05a0, 0xc420270000, 0x0, 0x5d58d20, 0x28, 0x5d39304, 0x5, ...)
	/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kube-apiserver/app/server.go:254 +0xa9
k8s.io/kubernetes/cmd/kube-apiserver/app.Run(0xc420800000, 0xc4200680c0, 0x79767e0, 0x3c88c1b)
	/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kube-apiserver/app/server.go:119 +0x143
main.main()
	/go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kube-apiserver/apiserver.go:51 +0xe4

What you expected to happen:

apiserver is running but doesn’t generate TLS certificates automatically and is not listening on a secure port.

How to reproduce it (as minimally and precisely as possible):

Just set the flag identified above.

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 17 (17 by maintainers)

Most upvoted comments

did you want to give zero a special meaning for testing? I really don’t like “random port” behavior.

The special meaning of zero was only inside the Config struct, and should not leak into the flags. The behaviour to switch of secure serving is correct.

I bet this crash is related to what we fixed in https://github.com/kubernetes/kubernetes/pull/51900 for 1.8.