Subscribed unsubscribe Subscribe Subscribe

Furlで躓いてる途中

http {
    include       mime.types;
    default_type  application/octet-stream;

    upstream hoge_app {
        server 127.0.0.1:5000;
    }
    server {
        listen       443;
        server_name  localhost;

        ssl                  on;
        ssl_certificate      server.crt;
        ssl_certificate_key  server.key;
        location / {
            proxy_pass        http://hoge_app;
        }
    }
}

みたいな適当なHTTPSサーバーを用意して、裏側である程度の長さのコンテンツを返す分には問題無いのだけど、

$ plackup -p 5000 -e 'sub { [200, [], ["a"x10116]] }'
$ perl -MFurl -E '$res = Furl->new->get("https://localhost/"); say($res->is_success or $res->status_line)'
1

この数字より1バイト多く返すとエラーになってしまう。

$ plackup -p 5000 -e 'sub { [200, [], ["a"x10117]] }'
$ perl -MFurl -E '$res = Furl->new->get("https://localhost/"); say($res->is_success or $res->status_line)'
500 Internal Response: Cannot read content body: timeout at -e line 1


bufsizeを大きくすればエラーが出なくなるのだけど、再現条件がよく分からない…