Skip to content

use of closed network connection #13

Description

@qyk1995

当我成功连接到k8s集群之后,发送一个请求会出现下面错误:
{
"type": "stdout",
"data": "exit\r\n",
"cols": 0,
"rows": 0
}

E0727 11:09:46.370144 29472 v2.go:104] write tcp xx.xx.xx:61184->xx.xx.xx.xx:443: use of closed network connection

自己的代码:
conn, err :=websocket.Upgrade(c.Writer,` c.Request, nil, 1024, 1024)
if err != nil {
fmt.Println("Upgrade", err)
c.AbortWithStatusJSON(http.StatusOK, gin.H{"code": http.StatusInternalServerError, "msg": err.Error()})
return
}

// 通过 集群名称获取config
config, err := common.Getk8sclusterConfig(params.ClusterName)
config.ContentConfig.GroupVersion = &v1.Unversioned
config.ContentConfig.NegotiatedSerializer = scheme.Codecs

if err != nil {
	elog.Errorw("ContainerExec", "config", err)
	// c.JSONE(core.CodeErr, "cluster not found", nil)
	return
}
wsTransport := transport.NewWSTransport(conn)

tml, err := terminal.NewWebTerminal(config, params.Namespace, params.PodName, params.ContainerName, wsTransport)
if err != nil {
	elog.Errorw("ContainerExec", "terminal", err)
	_, _ = wsTransport.Write([]byte("连接终端失败,该Pod可能已经下线\n" + err.Error()))
	return
}
err = tml.Run()
if err != nil {
	elog.Errorw("ContainerExec", "run", err)
	_, _ = wsTransport.Write([]byte("连接终端失败:" + err.Error()))
	return
}

`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions