CNode

后台报 “Socket hangs up”就挂了,这是什么原因?

Yyunfei发布于13 年前最后回复10 年前14 回复43129 浏览0 收藏
查看回复

回复 (14)

L
liuyanghejerry#1·13 年前

这个信息表示socket断了。

但不知道你说的挂了是什么意思,是你程序崩溃了还是怎样?

L
leizongmin#2·13 年前
引用 liuyanghejerry这个信息表示socket断了。 但不知道你说的挂了是什么意思,是你程序崩溃了还是怎样?

目测应该是某一socket连接异常,抛出了“Socket hangs up”,而又木有程序诸如 socket.on('error')try { } cacth (err) {}之类的措施来捕获并处理此错误,于是导致Node.js进程直接退出。

  • 1、“Socket hangs up”只是一个连接期间发生的错误,这种问题是随时可能会遇到的,监听“error”事件应该能捕获到,这样就不会抛出异常了

  • 2、你的程序应该能处理各种未知的错误,比如:

K
kimady#3·13 年前

我用nodejs 0.8.20的时候,按住F5刷几次就出现这个错,换0.8.19没事,现在是0.8.21也没事。。

N
neuront#4·13 年前

可能是页面发了请求之后, 接收请求之前跳转或者用户关闭浏览器了, 再搞任何操作都会出 hang up.

Y
yunfei#5·12 年前

谢谢。。已经解决了!!哈哈。。。

A
alsotang#6·12 年前
引用 yunfei谢谢。。已经解决了!!哈哈。。。

@panawang 我之前也遇到过类似的报错,话说 node 的报错真的很模糊。后来我 debug 到 socket 那一层,发现 socket 这个库有问题,然后再深究,是 stream 库的问题....然后我放弃了。

P
Pana#7·12 年前
引用 yunfei谢谢。。已经解决了!!哈哈。。。

@alsotang 这两天也遇到这个问题了, 在osx上没事在ubuntu上就报错, 还没解决, 目前暂时绕过去了, 不过不解决总是放不下哈

A
alsotang#8·12 年前
引用 yunfei谢谢。。已经解决了!!哈哈。。。

@panawang 你那个问题是怎么印发的? 我上次遇到这个问题,是我在纽约的 vps,向七牛 put 数据时候出现的。我至今也不懂是超时导致的,还是 DNS 解析之类的导致的。 而且也忘记自己怎么绕过去的了。

T
tulayang#9·12 年前

连接数超了,看看req.agent

J
jiangliqin#10·10 年前
引用 leizongmin目测应该是某一socket连接异常,抛出了“Socket hangs up”,而又木有程序诸如 socket.on('error') 或 try { } cacth (err) {}之类的措施...

@leizongmin 对于Socket hangs up的异常,request.error('error')和process.on('uncaughtException'),try{}catch(err){}都捕捉不到,直接导致系统重启,虽说有守护进程,但终究不是办法,你对于这种问题有何见解?

D
DevinXian#11·10 年前

关注一下,这类问题很难搞

L
leizongmin#12·10 年前
引用 jiangliqin@leizongmin 对于Socket hangs up的异常,request.error('error')和process.on('uncaughtException'),try{}cat...

@jiangliqin 我一直认为uncaughtException是始终能捕捉到这些异常的,所以你所说的前提不成立

H
HarryHong#13·10 年前

连mongodb的时候如果不设置keepalive就会socket hang up然后down 可以看看mongo client里面handle这个地方的源码

P
Pana#14·12 年前
参与回复
登录后即可参与回复。登录