Внезапный выход без какого-либо сообщения об ошибке, возможно, SIGPIPE
.Традиционно SIGPIPE
используется для остановки таких вещей, как команда cat
в следующем конвейере:
cat file | head -10
Обычно это не приводит к тому, что что-либо печатается с помощью libc
или perl
для указаниячто случилось.
Поскольку в программе на основе IO::Async
вы не хотите беззвучно выходить на SIGPIPE
, я бы предложил поместить где-нибудь в основной файл программы строку, похожую на
$SIG{PIPE} = sub { die "Aborting on SIGPIPE\n" };
, который хотя бы предупредит вас об этом факте.Если вместо этого вы используете Carp::croak
без \n
, возможно, вам даже повезет получить номер файла / строки syswrite
и т. Д., Который вызвал SIGPIPE
.