-
-
Save myitcv/22d3de3161e925eb72be to your computer and use it in GitHub Desktop.
Demonstration of a bug/strange behaviour using celluloid with Rubinius
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
source "https://rubygems.org" | |
gem 'celluloid', github: 'celluloid/celluloid' | |
gem 'celluloid-io', github: 'celluloid/celluloid-io' | |
gem 'http', github: 'tarcieri/http' | |
gem 'rubysl' | |
group :development do | |
gem 'pry' | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
GIT | |
remote: git://github.com/celluloid/celluloid-io.git | |
revision: 7ce68a55cfcc5bf8d95295cc287d112e082ad509 | |
specs: | |
celluloid-io (0.16.0.pre) | |
celluloid (>= 0.16.0.pre) | |
nio4r (>= 1.0.0) | |
GIT | |
remote: git://github.com/celluloid/celluloid.git | |
revision: 163132ea3dd42b69c58224f3e244335532677f1c | |
specs: | |
celluloid (0.16.0.pre) | |
timers (~> 2.0.0) | |
GIT | |
remote: git://github.com/tarcieri/http.git | |
revision: d806459155c8abd98070b9d6c2e1f7f896d97672 | |
specs: | |
http (0.6.0.pre) | |
http_parser.rb (~> 0.6.0) | |
GEM | |
remote: https://rubygems.org/ | |
specs: | |
coderay (1.1.0) | |
ffi2-generators (0.1.1) | |
hitimes (1.2.1) | |
http_parser.rb (0.6.0) | |
method_source (0.8.2) | |
nio4r (1.0.0) | |
pry (0.9.12.4) | |
coderay (~> 1.0) | |
method_source (~> 0.8) | |
slop (~> 3.4) | |
rubysl (2.0.15) | |
rubysl-abbrev (~> 2.0) | |
rubysl-base64 (~> 2.0) | |
rubysl-benchmark (~> 2.0) | |
rubysl-bigdecimal (~> 2.0) | |
rubysl-cgi (~> 2.0) | |
rubysl-cgi-session (~> 2.0) | |
rubysl-cmath (~> 2.0) | |
rubysl-complex (~> 2.0) | |
rubysl-continuation (~> 2.0) | |
rubysl-coverage (~> 2.0) | |
rubysl-csv (~> 2.0) | |
rubysl-curses (~> 2.0) | |
rubysl-date (~> 2.0) | |
rubysl-delegate (~> 2.0) | |
rubysl-digest (~> 2.0) | |
rubysl-drb (~> 2.0) | |
rubysl-e2mmap (~> 2.0) | |
rubysl-english (~> 2.0) | |
rubysl-enumerator (~> 2.0) | |
rubysl-erb (~> 2.0) | |
rubysl-etc (~> 2.0) | |
rubysl-expect (~> 2.0) | |
rubysl-fcntl (~> 2.0) | |
rubysl-fiber (~> 2.0) | |
rubysl-fileutils (~> 2.0) | |
rubysl-find (~> 2.0) | |
rubysl-forwardable (~> 2.0) | |
rubysl-getoptlong (~> 2.0) | |
rubysl-gserver (~> 2.0) | |
rubysl-io-console (~> 2.0) | |
rubysl-io-nonblock (~> 2.0) | |
rubysl-io-wait (~> 2.0) | |
rubysl-ipaddr (~> 2.0) | |
rubysl-irb (~> 2.0) | |
rubysl-logger (~> 2.0) | |
rubysl-mathn (~> 2.0) | |
rubysl-matrix (~> 2.0) | |
rubysl-mkmf (~> 2.0) | |
rubysl-monitor (~> 2.0) | |
rubysl-mutex_m (~> 2.0) | |
rubysl-net-ftp (~> 2.0) | |
rubysl-net-http (~> 2.0) | |
rubysl-net-imap (~> 2.0) | |
rubysl-net-pop (~> 2.0) | |
rubysl-net-protocol (~> 2.0) | |
rubysl-net-smtp (~> 2.0) | |
rubysl-net-telnet (~> 2.0) | |
rubysl-nkf (~> 2.0) | |
rubysl-observer (~> 2.0) | |
rubysl-open-uri (~> 2.0) | |
rubysl-open3 (~> 2.0) | |
rubysl-openssl (~> 2.0) | |
rubysl-optparse (~> 2.0) | |
rubysl-ostruct (~> 2.0) | |
rubysl-pathname (~> 2.0) | |
rubysl-prettyprint (~> 2.0) | |
rubysl-prime (~> 2.0) | |
rubysl-profile (~> 2.0) | |
rubysl-profiler (~> 2.0) | |
rubysl-pstore (~> 2.0) | |
rubysl-pty (~> 2.0) | |
rubysl-rational (~> 2.0) | |
rubysl-readline (~> 2.0) | |
rubysl-resolv (~> 2.0) | |
rubysl-rexml (~> 2.0) | |
rubysl-rinda (~> 2.0) | |
rubysl-rss (~> 2.0) | |
rubysl-scanf (~> 2.0) | |
rubysl-securerandom (~> 2.0) | |
rubysl-set (~> 2.0) | |
rubysl-shellwords (~> 2.0) | |
rubysl-singleton (~> 2.0) | |
rubysl-socket (~> 2.0) | |
rubysl-stringio (~> 2.0) | |
rubysl-strscan (~> 2.0) | |
rubysl-sync (~> 2.0) | |
rubysl-syslog (~> 2.0) | |
rubysl-tempfile (~> 2.0) | |
rubysl-thread (~> 2.0) | |
rubysl-thwait (~> 2.0) | |
rubysl-time (~> 2.0) | |
rubysl-timeout (~> 2.0) | |
rubysl-tmpdir (~> 2.0) | |
rubysl-tsort (~> 2.0) | |
rubysl-un (~> 2.0) | |
rubysl-uri (~> 2.0) | |
rubysl-weakref (~> 2.0) | |
rubysl-webrick (~> 2.0) | |
rubysl-xmlrpc (~> 2.0) | |
rubysl-yaml (~> 2.0) | |
rubysl-zlib (~> 2.0) | |
rubysl-abbrev (2.0.4) | |
rubysl-base64 (2.0.0) | |
rubysl-benchmark (2.0.1) | |
rubysl-bigdecimal (2.0.2) | |
rubysl-cgi (2.0.1) | |
rubysl-cgi-session (2.0.1) | |
rubysl-cmath (2.0.0) | |
rubysl-complex (2.0.0) | |
rubysl-continuation (2.0.0) | |
rubysl-coverage (2.0.3) | |
rubysl-csv (2.0.2) | |
rubysl-english (~> 2.0) | |
rubysl-curses (2.0.1) | |
rubysl-date (2.0.6) | |
rubysl-delegate (2.0.1) | |
rubysl-digest (2.0.3) | |
rubysl-drb (2.0.1) | |
rubysl-e2mmap (2.0.0) | |
rubysl-english (2.0.0) | |
rubysl-enumerator (2.0.0) | |
rubysl-erb (2.0.1) | |
rubysl-etc (2.0.3) | |
ffi2-generators (~> 0.1) | |
rubysl-expect (2.0.0) | |
rubysl-fcntl (2.0.4) | |
ffi2-generators (~> 0.1) | |
rubysl-fiber (2.0.0) | |
rubysl-fileutils (2.0.3) | |
rubysl-find (2.0.1) | |
rubysl-forwardable (2.0.1) | |
rubysl-getoptlong (2.0.0) | |
rubysl-gserver (2.0.0) | |
rubysl-socket (~> 2.0) | |
rubysl-thread (~> 2.0) | |
rubysl-io-console (2.0.0) | |
rubysl-io-nonblock (2.0.0) | |
rubysl-io-wait (2.0.0) | |
rubysl-ipaddr (2.0.0) | |
rubysl-irb (2.0.4) | |
rubysl-e2mmap (~> 2.0) | |
rubysl-mathn (~> 2.0) | |
rubysl-readline (~> 2.0) | |
rubysl-thread (~> 2.0) | |
rubysl-logger (2.0.0) | |
rubysl-mathn (2.0.0) | |
rubysl-matrix (2.1.0) | |
rubysl-e2mmap (~> 2.0) | |
rubysl-mkmf (2.0.1) | |
rubysl-fileutils (~> 2.0) | |
rubysl-shellwords (~> 2.0) | |
rubysl-monitor (2.0.0) | |
rubysl-mutex_m (2.0.0) | |
rubysl-net-ftp (2.0.1) | |
rubysl-net-http (2.0.4) | |
rubysl-cgi (~> 2.0) | |
rubysl-erb (~> 2.0) | |
rubysl-singleton (~> 2.0) | |
rubysl-net-imap (2.0.1) | |
rubysl-net-pop (2.0.1) | |
rubysl-net-protocol (2.0.1) | |
rubysl-net-smtp (2.0.1) | |
rubysl-net-telnet (2.0.0) | |
rubysl-nkf (2.0.1) | |
rubysl-observer (2.0.0) | |
rubysl-open-uri (2.0.0) | |
rubysl-open3 (2.0.0) | |
rubysl-openssl (2.0.6) | |
rubysl-optparse (2.0.1) | |
rubysl-shellwords (~> 2.0) | |
rubysl-ostruct (2.0.4) | |
rubysl-pathname (2.0.0) | |
rubysl-prettyprint (2.0.2) | |
rubysl-prime (2.0.1) | |
rubysl-profile (2.0.0) | |
rubysl-profiler (2.0.1) | |
rubysl-pstore (2.0.0) | |
rubysl-pty (2.0.2) | |
rubysl-rational (2.0.1) | |
rubysl-readline (2.0.2) | |
rubysl-resolv (2.0.0) | |
rubysl-rexml (2.0.2) | |
rubysl-rinda (2.0.0) | |
rubysl-rss (2.0.0) | |
rubysl-scanf (2.0.0) | |
rubysl-securerandom (2.0.0) | |
rubysl-set (2.0.1) | |
rubysl-shellwords (2.0.0) | |
rubysl-singleton (2.0.0) | |
rubysl-socket (2.0.1) | |
rubysl-stringio (2.0.0) | |
rubysl-strscan (2.0.0) | |
rubysl-sync (2.0.0) | |
rubysl-syslog (2.0.1) | |
ffi2-generators (~> 0.1) | |
rubysl-tempfile (2.0.1) | |
rubysl-thread (2.0.2) | |
rubysl-thwait (2.0.0) | |
rubysl-time (2.0.3) | |
rubysl-timeout (2.0.0) | |
rubysl-tmpdir (2.0.0) | |
rubysl-tsort (2.0.1) | |
rubysl-un (2.0.0) | |
rubysl-fileutils (~> 2.0) | |
rubysl-optparse (~> 2.0) | |
rubysl-uri (2.0.0) | |
rubysl-weakref (2.0.0) | |
rubysl-webrick (2.0.0) | |
rubysl-xmlrpc (2.0.0) | |
rubysl-yaml (2.0.4) | |
rubysl-zlib (2.0.1) | |
slop (3.4.7) | |
timers (2.0.0) | |
hitimes | |
PLATFORMS | |
ruby | |
DEPENDENCIES | |
celluloid! | |
celluloid-io! | |
http! | |
pry | |
rubysl |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I, [2014-01-16T14:17:15.651789 #15427] INFO -- : request 1 | |
I, [2014-01-16T14:17:15.656404 #15427] INFO -- : request 2 | |
I, [2014-01-16T14:17:15.659770 #15427] INFO -- : request 3 | |
I, [2014-01-16T14:17:15.660926 #15427] INFO -- : request 4 | |
I, [2014-01-16T14:17:15.661814 #15427] INFO -- : request 5 | |
I, [2014-01-16T14:17:15.662773 #15427] INFO -- : request 6 | |
I, [2014-01-16T14:17:15.663665 #15427] INFO -- : request 7 | |
I, [2014-01-16T14:17:15.664605 #15427] INFO -- : request 8 | |
I, [2014-01-16T14:17:15.665552 #15427] INFO -- : request 9 | |
I, [2014-01-16T14:17:15.666472 #15427] INFO -- : request 10 | |
I, [2014-01-16T14:17:15.721508 #15427] INFO -- : response 8 | |
I, [2014-01-16T14:17:15.777556 #15427] INFO -- : response 5 | |
I, [2014-01-16T14:17:15.856233 #15427] INFO -- : response 2 | |
I, [2014-01-16T14:17:15.869416 #15427] INFO -- : response 9 | |
I, [2014-01-16T14:17:15.938036 #15427] INFO -- : response 7 | |
I, [2014-01-16T14:17:15.965384 #15427] INFO -- : response 3 | |
I, [2014-01-16T14:17:16.051087 #15427] INFO -- : response 4 | |
An exception occurred running karl.rb: | |
Data object has already been freed (ArgumentError) | |
Backtrace: | |
E, [2014-01-16T14:17:16.205540 #15427] ERROR -- : Actor crashed! | |
ArgumentError: Data object has already been freed | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/response_parser.rb:12:in `<< (add)' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/client.rb:80:in `perform' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/client.rb:56:in `request' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/chainable.rb:50:in `request' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/chainable.rb:10:in `get' | |
karl.rb:11:in `fetch' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/calls.rb:26:in `dispatch' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/calls.rb:63:in `dispatch' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/cell.rb:60:in `invoke' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/cell.rb:71:in `task' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/actor.rb:388:in `task' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/tasks.rb:55:in `initialize' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/tasks/task_fiber.rb:15:in `create' | |
kernel/bootstrap/proc.rb:20:in `call' | |
(celluloid):0:in `remote procedure call' | |
W, [2014-01-16T14:17:16.208900 #15427] WARN -- : Terminating task: type=:call, meta={:method_name=>:fetch}, status=:iowait | |
W, [2014-01-16T14:17:16.209173 #15427] WARN -- : Terminating task: type=:call, meta={:method_name=>:fetch}, status=:iowait | |
[0;31m HTTP::Response::Parser#<< (add) at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http | |
/response_parser.rb:12[0m | |
HTTP::Client#perform at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/client.rb:80[0m | |
HTTP::Client#request at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/client.rb:56[0m | |
HTTP::Chainable(Module)#request at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/chainable.rb:50[0m | |
HTTP::Chainable(Module)#get at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/chainable.rb:10[0m | |
HttpFetcher#fetch at karl.rb:11[0m | |
Celluloid::Call(Celluloid::SyncCall)#dispatch at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid | |
/calls.rb:26[0m | |
Celluloid::SyncCall#dispatch at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid | |
/calls.rb:63[0m | |
{ } in Celluloid::Cell#invoke at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid | |
/cell.rb:60[0m | |
{ } in Celluloid::Cell#task at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid | |
/cell.rb:71[0m | |
{ } in Celluloid::Actor#task at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid | |
/actor.rb:388[0m | |
{ } in Celluloid::Task(Celluloid::TaskFiber)#initialize at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid | |
/tasks.rb:55[0m | |
{ } in Celluloid::TaskFiber#create at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/tasks | |
/task_fiber.rb:15[0m | |
[0;34m Proc#call at kernel/bootstrap/proc.rb:20[0m |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I, [2014-01-16T14:06:44.711115 #14177] INFO -- : request 1 | |
I, [2014-01-16T14:06:44.711376 #14177] INFO -- : request 2 | |
I, [2014-01-16T14:06:44.711496 #14177] INFO -- : request 3 | |
I, [2014-01-16T14:06:44.712097 #14177] INFO -- : request 4 | |
I, [2014-01-16T14:06:45.079031 #14177] INFO -- : response 4 | |
I, [2014-01-16T14:06:45.081359 #14177] INFO -- : request 5 | |
I, [2014-01-16T14:06:45.257534 #14177] INFO -- : response 3 | |
I, [2014-01-16T14:06:45.263070 #14177] INFO -- : request 6 | |
E, [2014-01-16T14:06:45.376685 #14177] ERROR -- : Actor crashed! | |
ArgumentError: Data object has already been freed | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/response_parser.rb:12:in `<< (add)' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/client.rb:80:in `perform' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/client.rb:56:in `request' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/chainable.rb:50:in `request' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/chainable.rb:10:in `get' | |
karl.rb:11:in `fetch' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/calls.rb:26:in `dispatch' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/calls.rb:63:in `dispatch' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/cell.rb:60:in `invoke' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/cell.rb:71:in `task' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/actor.rb:388:in `task' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/tasks.rb:55:in `initialize' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/tasks/task_fiber.rb:15:in `create' | |
kernel/bootstrap/proc.rb:20:in `call' | |
(celluloid):0:in `remote procedure call' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/calls.rb:92:in `value' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/proxies/cell_proxy.rb:17:in `_send_' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/pool_manager.rb:41:in `_send_' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/pool_manager.rb:123:in `fetch' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/calls.rb:26:in `dispatch' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/calls.rb:63:in `dispatch' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/cell.rb:60:in `invoke' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/cell.rb:0:in `task' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/actor.rb:0:in `task' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/tasks.rb:55:in `initialize' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/tasks/task_fiber.rb:15:in `create' | |
I, [2014-01-16T14:06:45.379458 #14177] INFO -- : request 8 | |
I, [2014-01-16T14:06:45.429879 #14177] INFO -- : response 8 | |
I, [2014-01-16T14:06:45.431047 #14177] INFO -- : request 7 | |
I, [2014-01-16T14:06:45.505217 #14177] INFO -- : response 7 | |
I, [2014-01-16T14:06:45.506790 #14177] INFO -- : request 9 | |
E, [2014-01-16T14:06:45.527265 #14177] ERROR -- : Actor crashed! | |
ArgumentError: Data object has already been freed | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/response_parser.rb:12:in `<< (add)' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/client.rb:80:in `perform' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/client.rb:56:in `request' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/chainable.rb:50:in `request' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/chainable.rb:10:in `get' | |
karl.rb:11:in `fetch' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/calls.rb:26:in `dispatch' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/calls.rb:63:in `dispatch' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/cell.rb:60:in `invoke' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/cell.rb:71:in `task' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/actor.rb:388:in `task' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/tasks.rb:55:in `initialize' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/tasks/task_fiber.rb:15:in `create' | |
kernel/bootstrap/proc.rb:20:in `call' | |
I, [2014-01-16T14:06:45.528479 #14177] INFO -- : response 6 | |
I, [2014-01-16T14:06:45.529946 #14177] INFO -- : request 10 | |
E, [2014-01-16T14:06:45.652792 #14177] ERROR -- : Actor crashed! | |
ArgumentError: Data object has already been freed | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/response_parser.rb:12:in `<< (add)' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/client.rb:80:in `perform' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/client.rb:56:in `request' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/chainable.rb:50:in `request' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/chainable.rb:10:in `get' | |
karl.rb:11:in `fetch' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/calls.rb:26:in `dispatch' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/calls.rb:63:in `dispatch' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/cell.rb:60:in `invoke' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/cell.rb:71:in `task' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/actor.rb:388:in `task' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/tasks.rb:55:in `initialize' | |
/home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/tasks/task_fiber.rb:15:in `create' | |
kernel/bootstrap/proc.rb:20:in `call' | |
An exception occurred running karl.rb: | |
Data object has already been freed (ArgumentError) | |
Backtrace: | |
I, [2014-01-16T14:06:45.657232 #14177] INFO -- : response 10 | |
[0;31m HTTP::Response::Parser#<< (add) at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http | |
/response_parser.rb:12[0m | |
HTTP::Client#perform at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/client.rb:80[0m | |
HTTP::Client#request at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/client.rb:56[0m | |
HTTP::Chainable(Module)#request at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/chainable.rb:50[0m | |
HTTP::Chainable(Module)#get at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/http-d806459155c8/lib/http/chainable.rb:10[0m | |
HttpFetcher#fetch at karl.rb:11[0m | |
Celluloid::Call(Celluloid::SyncCall)#dispatch at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid | |
/calls.rb:26[0m | |
Celluloid::SyncCall#dispatch at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid | |
/calls.rb:63[0m | |
{ } in Celluloid::Cell#invoke at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid | |
/cell.rb:60[0m | |
{ } in Celluloid::Cell#task at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid | |
/cell.rb:71[0m | |
{ } in Celluloid::Actor#task at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid | |
/actor.rb:388[0m | |
{ } in Celluloid::Task(Celluloid::TaskFiber)#initialize at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid | |
/tasks.rb:55[0m | |
{ } in Celluloid::TaskFiber#create at /home/myitcv/.rbenv/versions/rbx-2.2.3/gems/bundler/gems/celluloid-163132ea3dd4/lib/celluloid/tasks | |
/task_fiber.rb:15[0m | |
[0;34m Proc#call at kernel/bootstrap/proc.rb:20[0m | |
D, [2014-01-16T14:06:45.657649 #14177] DEBUG -- : Terminating 5 actors... | |
W, [2014-01-16T14:06:45.658174 #14177] WARN -- : Terminating task: type=:call, meta={:method_name=>:fetch}, status=:iowait | |
W, [2014-01-16T14:06:45.661539 #14177] WARN -- : Terminating task: type=:call, meta={:method_name=>:fetch}, status=:callwait | |
W, [2014-01-16T14:06:45.661773 #14177] WARN -- : Terminating task: type=:call, meta={:method_name=>:fetch}, status=:callwait | |
W, [2014-01-16T14:06:45.661933 #14177] WARN -- : Terminating task: type=:exit_handler, meta={:method_name=>:__crash_handler__}, status=:callwait | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Puma 2.7.1 starting... | |
* Min threads: 0, max threads: 16 | |
* Environment: development | |
* Listening on tcp://localhost:4567 | |
== Sinatra/1.4.4 has taken the stage on 4567 for development with backup from Puma | |
#<Thread:0x007f79af89fbb8> - request #10#<Thread:0x007f79af0d1df0> - request #7 | |
#<Thread:0x007f79af0d5338> - request #1 | |
#<Thread:0x007f79af0dbcb0> - request #8 | |
#<Thread:0x007f79af0dadd8> - request #6 | |
#<Thread:0x007f79af0d03d8> - request #5 | |
#<Thread:0x007f79af0d8b00> - request #4 | |
#<Thread:0x007f79af0df720> - request #3 | |
#<Thread:0x007f79af8ab648> - request #2 | |
#<Thread:0x007f79af0de870> - request #9 | |
#<Thread:0x007f79af0d03d8> - response #5 - after sleep of 0.016759354992248676 | |
127.0.0.1 - - [16/Jan/2014 15:04:13] "GET /hi?number=5 HTTP/1.1" 200 20 0.0190 | |
#<Thread:0x007f79af0dbcb0> - response #8 - after sleep of 0.07040803670126605 | |
127.0.0.1 - - [16/Jan/2014 15:04:13] "GET /hi?number=8 HTTP/1.1" 200 19 0.0719 | |
#<Thread:0x007f79af0d8b00> - response #4 - after sleep of 0.2285920949098963 | |
127.0.0.1 - - [16/Jan/2014 15:04:13] "GET /hi?number=4 HTTP/1.1" 200 18 0.2305 | |
#<Thread:0x007f79af0d1df0> - response #7 - after sleep of 0.43867852519321127 | |
127.0.0.1 - - [16/Jan/2014 15:04:13] "GET /hi?number=7 HTTP/1.1" 200 19 0.4399 | |
#<Thread:0x007f79af0de870> - response #9 - after sleep of 0.46860156237080286 | |
127.0.0.1 - - [16/Jan/2014 15:04:13] "GET /hi?number=9 HTTP/1.1" 200 19 0.4700 | |
#<Thread:0x007f79af0df720> - response #3 - after sleep of 0.6374789792761095 | |
127.0.0.1 - - [16/Jan/2014 15:04:13] "GET /hi?number=3 HTTP/1.1" 200 18 0.6394 | |
#<Thread:0x007f79af0dadd8> - response #6 - after sleep of 1.0664807821013393 | |
127.0.0.1 - - [16/Jan/2014 15:04:14] "GET /hi?number=6 HTTP/1.1" 200 18 1.0682 | |
#<Thread:0x007f79af89fbb8> - response #10 - after sleep of 1.2285105766907554 | |
127.0.0.1 - - [16/Jan/2014 15:04:14] "GET /hi?number=10 HTTP/1.1" 200 18 1.2320 | |
#<Thread:0x007f79af0d5338> - response #1 - after sleep of 1.6922573727265418 | |
127.0.0.1 - - [16/Jan/2014 15:04:14] "GET /hi?number=1 HTTP/1.1" 200 18 1.6934 | |
#<Thread:0x007f79af8ab648> - response #2 - after sleep of 1.8731917767578579 | |
127.0.0.1 - - [16/Jan/2014 15:04:15] "GET /hi?number=2 HTTP/1.1" 200 18 1.8749 | |
== Sinatra has ended his set (crowd applauds) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'bundler/setup' | |
require 'http' | |
require 'celluloid/io' | |
class HttpFetcher | |
include Celluloid::IO | |
include Celluloid::Logger | |
def fetch(number) | |
info "request #{number}" | |
resp = HTTP.get("http://localhost:4567/hi?number=#{number}", socket_class: Celluloid::IO::TCPSocket, ssl_socket_class: Celluloid::IO::SSLSocket).response | |
info "response #{number}" | |
resp.body | |
end | |
end | |
fetcher = HttpFetcher.new | |
futures = (1..10).map { |i| fetcher.future.fetch(i) } | |
# join in a very naive way to all the requests | |
futures.each do |future| | |
future.value | |
end | |
exit! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'sinatra' | |
configure { set :server, :puma } | |
get '/hi' do | |
puts "#{Thread.current} - request ##{params[:number]}" | |
sleep_int = rand * 2 | |
sleep sleep_int | |
puts "#{Thread.current} - response ##{params[:number]} - after sleep of #{sleep_int}" | |
"#{sleep_int}" | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment