由于 "invalid memory address or nil pointer dereference",vsphere-csi-controller 无法启动
vsphere-csi-controller fails to start due to "invalid memory address or nil pointer dereference"
我正在按照 here
中的说明安装 k8s 和 vsphere CPI/CSI
我的设置:
2x centos 7.7 vSphere VM(50g hd/16g ram),k8s 集群中的 1 个主节点和 1 个节点。
当我准确地发现 this github issue 时,它进入了我创建 storageClass 的部分(接近尾声)。相关问题的 OP 刚刚从头开始,他们的问题消失了,所以报告被关闭了。对我来说情况并非如此,因为我已经多次从头开始重新部署我的 k8s 集群并且总是遇到这堵墙。如果您不想检查链接的 github 问题,则以下是错误。
任何人都知道我可以尝试克服这个问题吗?我已经检查了我的硬盘和内存,还有很多。
# kubectl -n kube-system logs pod/vsphere-csi-controller-0 vsphere-csi-controller
I0127 18:49:43.292667 1 config.go:261] GetCnsconfig called with cfgPath: /etc/cloud/csi-vsphere.conf
I0127 18:49:43.292859 1 config.go:206] Initializing vc server 132.250.31.180
I0127 18:49:43.292867 1 controller.go:67] Initializing CNS controller
I0127 18:49:43.292884 1 virtualcentermanager.go:63] Initializing defaultVirtualCenterManager...
I0127 18:49:43.292892 1 virtualcentermanager.go:65] Successfully initialized defaultVirtualCenterManager
I0127 18:49:43.292905 1 virtualcentermanager.go:107] Successfully registered VC "132.250.31.180"
I0127 18:49:43.292913 1 manager.go:60] Initializing volume.volumeManager...
I0127 18:49:43.292917 1 manager.go:64] volume.volumeManager initialized
time="2020-01-27T18:50:03Z" level=info msg="received signal; shutting down" signal=terminated
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x128 pc=0x867dc7]
goroutine 10 [running]:
google.golang.org/grpc.(*Server).GracefulStop(0x0)
/go/pkg/mod/google.golang.org/grpc@v1.23.0/server.go:1393 +0x37
github.com/rexray/gocsi.(*StoragePlugin).GracefulStop.func1()
/go/pkg/mod/github.com/rexray/gocsi@v1.0.0/gocsi.go:333 +0x35
sync.(*Once).Do(0xc0002cc8fc, 0xc000380ef8)
/usr/local/go/src/sync/once.go:44 +0xb3
github.com/rexray/gocsi.(*StoragePlugin).GracefulStop(0xc0002cc870, 0x21183a0, 0xc000056018)
/go/pkg/mod/github.com/rexray/gocsi@v1.0.0/gocsi.go:332 +0x56
github.com/rexray/gocsi.Run.func3()
/go/pkg/mod/github.com/rexray/gocsi@v1.0.0/gocsi.go:121 +0x4e
github.com/rexray/gocsi.trapSignals.func1(0xc00052a240, 0xc000426990, 0xc000426900)
/go/pkg/mod/github.com/rexray/gocsi@v1.0.0/gocsi.go:502 +0x143
created by github.com/rexray/gocsi.trapSignals
/go/pkg/mod/github.com/rexray/gocsi@v1.0.0/gocsi.go:487 +0x107
好的,事实证明这个 SIGSEGV 是一个错误或其他原因,它是由网络超时引起的,使这个错误有点像转移注意力。
详细信息:我的 vsphere-csi-controller-0 pod 曾经(现在仍然)无法访问 vsphere 服务器,这导致 pod 中的容器超时并触发此 SIGSEV 故障。 CSI 贡献者更新了一些库,现在故障消失了,但超时仍然存在。超时似乎是我的问题,与 CSI 无关,但这是一个新问题 :)
如果您想了解 CSI 中修复的内容的详细信息,请查看问题中的 github link。
我正在按照 here
中的说明安装 k8s 和 vsphere CPI/CSI我的设置: 2x centos 7.7 vSphere VM(50g hd/16g ram),k8s 集群中的 1 个主节点和 1 个节点。
当我准确地发现 this github issue 时,它进入了我创建 storageClass 的部分(接近尾声)。相关问题的 OP 刚刚从头开始,他们的问题消失了,所以报告被关闭了。对我来说情况并非如此,因为我已经多次从头开始重新部署我的 k8s 集群并且总是遇到这堵墙。如果您不想检查链接的 github 问题,则以下是错误。
任何人都知道我可以尝试克服这个问题吗?我已经检查了我的硬盘和内存,还有很多。
# kubectl -n kube-system logs pod/vsphere-csi-controller-0 vsphere-csi-controller
I0127 18:49:43.292667 1 config.go:261] GetCnsconfig called with cfgPath: /etc/cloud/csi-vsphere.conf
I0127 18:49:43.292859 1 config.go:206] Initializing vc server 132.250.31.180
I0127 18:49:43.292867 1 controller.go:67] Initializing CNS controller
I0127 18:49:43.292884 1 virtualcentermanager.go:63] Initializing defaultVirtualCenterManager...
I0127 18:49:43.292892 1 virtualcentermanager.go:65] Successfully initialized defaultVirtualCenterManager
I0127 18:49:43.292905 1 virtualcentermanager.go:107] Successfully registered VC "132.250.31.180"
I0127 18:49:43.292913 1 manager.go:60] Initializing volume.volumeManager...
I0127 18:49:43.292917 1 manager.go:64] volume.volumeManager initialized
time="2020-01-27T18:50:03Z" level=info msg="received signal; shutting down" signal=terminated
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x128 pc=0x867dc7]
goroutine 10 [running]:
google.golang.org/grpc.(*Server).GracefulStop(0x0)
/go/pkg/mod/google.golang.org/grpc@v1.23.0/server.go:1393 +0x37
github.com/rexray/gocsi.(*StoragePlugin).GracefulStop.func1()
/go/pkg/mod/github.com/rexray/gocsi@v1.0.0/gocsi.go:333 +0x35
sync.(*Once).Do(0xc0002cc8fc, 0xc000380ef8)
/usr/local/go/src/sync/once.go:44 +0xb3
github.com/rexray/gocsi.(*StoragePlugin).GracefulStop(0xc0002cc870, 0x21183a0, 0xc000056018)
/go/pkg/mod/github.com/rexray/gocsi@v1.0.0/gocsi.go:332 +0x56
github.com/rexray/gocsi.Run.func3()
/go/pkg/mod/github.com/rexray/gocsi@v1.0.0/gocsi.go:121 +0x4e
github.com/rexray/gocsi.trapSignals.func1(0xc00052a240, 0xc000426990, 0xc000426900)
/go/pkg/mod/github.com/rexray/gocsi@v1.0.0/gocsi.go:502 +0x143
created by github.com/rexray/gocsi.trapSignals
/go/pkg/mod/github.com/rexray/gocsi@v1.0.0/gocsi.go:487 +0x107
好的,事实证明这个 SIGSEGV 是一个错误或其他原因,它是由网络超时引起的,使这个错误有点像转移注意力。
详细信息:我的 vsphere-csi-controller-0 pod 曾经(现在仍然)无法访问 vsphere 服务器,这导致 pod 中的容器超时并触发此 SIGSEV 故障。 CSI 贡献者更新了一些库,现在故障消失了,但超时仍然存在。超时似乎是我的问题,与 CSI 无关,但这是一个新问题 :)
如果您想了解 CSI 中修复的内容的详细信息,请查看问题中的 github link。