Ежедневно происходит сбой 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 и применить этот патч.