tokuhirom / p6-HTTP-Server-Tiny

Web application server for Perl6
Artistic License 2.0
18 stars 10 forks source link

Sporadic error I found while testing with siege(1) #25

Open drforr opened 8 years ago

drforr commented 8 years ago

Running on a Ubuntu 14.04 64-bit VM, host Windows 7 machine running on Intel Core i5

$ perl6 -v This is Rakudo version 2016.03-45-gd0c675c built on MoarVM version 2016.03-46-g50c7f6a implementing Perl 6.c.

$ perl6 -Ilib bin/crustup eg/hello.p6sgi # in a tmux session $ siege -f siege.txt -r 1 -c 15 # where siege.txt consists of one line, 'http://localhost:5000/'

Sporadically generates this traceback, which I can't reliably reproduce. It also locks up at 'siege -c 16', probably due to threading limitations though I haven't yet played with the settings.

[ERROR] [3288] [15] Cannot call new(Buf); none of these signatures match: in method throw at gen/moar/m-CORE.setting line 20979 in sub at gen/moar/m-CORE.setting line 23202 in any at gen/moar/m-Metamodel.nqp line 1727 in code at sources/8C3F1787E43A9A5F01C89A85BDAC9C4C2B64A6E0 (IO::Blob) line 27 in method new at sources/8C3F1787E43A9A5F01C89A85BDAC9C4C2B64A6E0 (IO::Blob) line 27 in block at sources/41D120CC8C5AC1ADBAA2CC7E606E4F8710D84044 (HTTP::Server::Tiny) line 212 in method parse-body at sources/41D120CC8C5AC1ADBAA2CC7E606E4F8710D84044 (HTTP::Server::Tiny) line 167 in method handle at sources/41D120CC8C5AC1ADBAA2CC7E606E4F8710D84044 (HTTP::Server::Tiny) line 88 in block at sources/41D120CC8C5AC1ADBAA2CC7E606E4F8710D84044 (HTTP::Server::Tiny) line 495 in block at gen/moar/m-CORE.setting line 32373 in block at gen/moar/m-CORE.setting line 32344 in method protect at gen/moar/m-CORE.setting line 31483 in block at gen/moar/m-CORE.setting line 32344 in block at gen/moar/m-CORE.setting line 33584 in method emit at gen/moar/m-CORE.setting line 33581 in method emit at gen/moar/m-CORE.setting line 33621 in block at gen/moar/m-CORE.setting line 34168 in method emit-events at gen/moar/m-CORE.setting line 3045 in block at gen/moar/m-CORE.setting line 3033 in block at gen/moar/m-CORE.setting line 3028 in method protect at gen/moar/m-CORE.setting line 31483 in method process at gen/moar/m-CORE.setting line 3025 in block at gen/moar/m-CORE.setting line 34171 in block at gen/moar/m-CORE.setting line 31627 in block at gen/moar/m-CORE.setting line 31624 in block at gen/moar/m-CORE.setting line 31623 in block at gen/moar/m-CORE.setting line 31620

adaptiveoptics commented 8 years ago

I can verify that the process dies when concurrency exceeds 15

jonathanstowe commented 8 years ago

Will try and reproduce myself when I get home from work

jonathanstowe commented 7 years ago

The recent changes in the Thread Pool Scheduler seem to have largely fixed this. It can quite happily take 32 concurrent clients now. With 64 I get one:

 [ERROR] [3550] [4] This type (Mu) does not support elems   in method handler at /home/jonathan/devel/perl6/p6-HTTP-Server-Tiny/lib/HTTP/Server/Tiny.pm6 (HTTP::Server::Tiny) line 527
  in block  at /home/jonathan/devel/perl6/p6-HTTP-Server-Tiny/lib/HTTP/Server/Tiny.pm6 (HTTP::Server::Tiny) line 513

This is with:

```Rakudo version 2017.09-173-g4d0ead240 built on MoarVM version 2017.09.1-49-gb3dd812aa````