OpenShift Go-Client API 调用导致程序崩溃 - 出现运行时错误:"无效的内存地址或 nil 指针取消引用"
本篇文章向大家介绍《OpenShift Go-Client API 调用导致程序崩溃 - 出现运行时错误:"无效的内存地址或 nil 指针取消引用"》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。
问题内容我正在使用基本的 go 代码来验证使用 openshift api 模块在命名空间中创建的路由 - https://github.com/openshift/api 但它很恐慌
$猫route.go
package main
import (
"context"
"fmt"
routev1 "github.com/openshift/api/route/v1"
"k8s.io/apimachinery/pkg/types"
"sigs.k8s.io/controller-runtime/pkg/client"
)
func main() {
const (
namespace = "test"
routename = "nodejs-basic"
)
var k8sclient client.client
route := &routev1.route{}
err := k8sclient.get(context.todo(), types.namespacedname{name: routename, namespace: namespace}, route)
if err != nil {
fmt.println("some issue")
}
fmt.println("api call completed")
}
执行时出现恐慌
$ go 运行route.go
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x10683e7]
goroutine 1 [running]:
main.main()
/home/amit/go/class="lazy" data-src/github.com/amitkrout/usingopenshiftapi/route.go:22 +0x27
exit status 2
有什么指针吗?可能是什么原因以及如何解决?
我创建了一个 git 存储库 - https://github.com/amitkrout/usingopenshiftapi。您也可以通过 pr 在存储库中提出修复建议
正确答案
您尚未初始化 k8sClient
,因此它是 nil
,并且调用 k8sClient.Get()
最终会导致 nil 指针取消引用。
获得客户的一种方法是使用 clientcmd;那里的文档展示了如何去做。
理论要掌握,实操不能落!以上关于《OpenShift Go-Client API 调用导致程序崩溃 - 出现运行时错误:"无效的内存地址或 nil 指针取消引用"》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注编程网公众号吧!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341