Rikulo-Stream每天崩溃 - “SocketException:OS Error:Broken pipe,errno = 32”

时间:2014-04-10 02:13:47

标签: rikulo

我有一个简单的网络应用程序(http://www.webdungeon2.org)(6页)在最新(2014年4月)版本的Rikulo Stream(Ubuntu 13.04),Dart 1.2上运行,我在浏览时遇到以下错误(我认为):

Uncaught Error: SocketException: OS Error: Broken pipe, errno = 32, address = 0.0.0.0, port = 80
Unhandled exception:
SocketException: OS Error: Broken pipe, errno = 32, address = 0.0.0.0, port = 80
#0      _rootHandleUncaughtError.<anonymous closure>.<anonymous closure> (dart:async/zone.dart:700)
#1      _asyncRunCallbackLoop (dart:async/schedule_microtask.dart:23)
#2      _asyncRunCallback (dart:async/schedule_microtask.dart:32)
#3      _asyncRunCallback (dart:async/schedule_microtask.dart:36)
#4      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:119)

服务器崩溃,然后重新启动它。这在3天内发生了3次。

我也得到了这些(不会使网站崩溃):

2014-04-09 15:07:33.394:stream:5
SHOUT: [/MY_WEB_PAGE] HttpException: Trying to set 'Transfer-Encoding: Chunked' on HTTP 1.0 headers
#0      _HttpHeaders.chunkedTransferEncoding= (http_headers.dart:142)
#1      Rsp.init (package:stream/src/rsp_util.dart:25:15)
#2      demo (file:///mytool/webdungeon/web/webapp/demo.rsp.dart:10:16)
#3      _StreamServer._handle (package:stream/src/server_impl.dart:92:39)
#4      _StreamServer._startChannel.<anonymous closure>.<anonymous closure> (package:stream/src/server_impl.dart:310:16)
#5      _rootRunUnary (dart:async/zone.dart:717)
#6      _ZoneDelegate.runUnary (dart:async/zone.dart:449)
#7      _CustomizedZone.runUnary (dart:async/zone.dart:654)
#8      _BaseZone.runUnaryGuarded (dart:async/zone.dart:569)
......
......

有什么建议吗?

更新 - 4月12日

Dart 1.3上仍会出现问题,但错误代码不同

Uncaught Error: SocketException: OS Error: Connection reset by peer, errno = 104, address = 0.0.0.0, port = 80
Unhandled exception:
SocketException: OS Error: Connection reset by peer, errno = 104, address = 0.0.0.0, port = 80
#0      _rootHandleUncaughtError.<anonymous closure>.<anonymous closure> (dart:async/zone.dart:713)
#1      _asyncRunCallbackLoop (dart:async/schedule_microtask.dart:23)
#2      _asyncRunCallback (dart:async/schedule_microtask.dart:32)
#3      _asyncRunCallback (dart:async/schedule_microtask.dart:36)
#4      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:119)

塞尔

更新 - 4月28日

问题似乎已在Dart SDK 1.3.3版中得到解决。我的服务器已经运行了2天没有任何障碍。

塞尔

2 个答案:

答案 0 :(得分:1)

你升级到Dart 1.3了吗?该问题应由Issue 17468引起,并在Dart 1.3中修复。

  

关于HttpException...Chunked的问题,我没有经验。你必须检查Dart API,或者做一个简单的案例来重现这个问题。

答案 1 :(得分:0)

issue 17468的修复程序包含错误。 Streams属于他们被收听的区域,而不是被创建的区域。我用r35071修正了这个错误。

虽然这不会修复1.3二进制文件,但应该可以查看1.3源代码并应用此补丁。