Ежедневно происходит сбой Rikulo-Stream с: "SocketException: ошибка ОС: сломанный канал, errno = 32"

У меня есть простое веб-приложение ( http://www.webdungeon2.org/) (6 страниц), работающее на последней (апрель 2014 г.) версии 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)
......
......

Какие-либо предложения?

ОБНОВЛЕНИЕ - 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)

саржа

ОБНОВЛЕНИЕ - 28 апреля

Проблема, похоже, была решена в Dart SDK версии 1.3.3. Мой сервер работает без перебоев 2 дня.

саржа

2 ответа

Решение

Вы обновились до Dart 1.3? Проблема должна быть вызвана проблемой 17468, и она была исправлена ​​в Dart 1.3.

Для выпуска HttpException...ChunkedУ меня нет опыта этого. Вы должны проверить Dart API или составить простой пример, чтобы воспроизвести проблему.

Исправление для проблемы 17468 содержало ошибку. Потоки принадлежат зоне, где они прослушиваются, а не создаются. Я исправил эту ошибку с r35071.

Хотя это не исправит двоичный файл 1.3, должна быть возможность проверить источник 1.3 и применить этот патч.

Другие вопросы по тегам