Coder Social home page Coder Social logo

celluloid-dns's Introduction

Celluloid

Gem Version MIT licensed Build Status Maintained: no Gitter Chat

Celluloid is a framework for building asynchronous and multithreaded Ruby programs using object-oriented concepts.

Revival Process Underway

Celluloid is in the process of being refactored and released back into the wild during Google Summer of Code. The next era will not have one individual active maintainer, but a team of collaborators. Going forward, previously dormant maintainer Donovan Keme is returning to support future primary maintainer Emese Padányi during GSoC 2020. Her plan extends past the Summer program, and aims to revive the community and codebase of Celluloid together. Backing this process are Harsh Deep and GSoC alumni Dilum Navanjana. We welcome your collaboration and contributions in this massive work.

The codebase is being refactored to pursue a stable release with no deprecation warnings, and with this cleaned up:

Diagram

Diagram meticulously developed by Emese Padányi

Proudly supported by the best cloud infrastructure provider in the world: DigitalOcean

Discussion

Documentation

Please see the Celluloid Wiki for more detailed documentation and usage notes.

The following API documentation is also available:

Related Projects

See also: Projects Using Celluloid

  • Reel: An "evented" web server based on Celluloid::IO
  • DCell: The Celluloid actor protocol distributed over 0MQ
  • ECell: Mesh strategies for Celluloid actors distributed over 0MQ
  • Celluloid::IO: "Evented" IO support for Celluloid actors
  • Celluloid::ZMQ: "Evented" 0MQ support for Celluloid actors
  • Celluloid::DNS: An "evented" DNS server based on Celluloid::IO
  • Celluloid::SMTP: An "evented" SMTP server based on Celluloid::IO
  • nio4r: "New IO for Ruby": high performance IO selectors
  • Timers: A generic Ruby timer library for event-based systems

Contributing to Celluloid

  • Fork this repository on github
  • Make your changes and send us a pull request
  • Pull requests will be reviewed for inclusion in the project

License

Copyright (c) 2011-2018 Tony Arcieri, Donovan Keme.

Distributed under the MIT License. See LICENSE.txt for further details.

celluloid-dns's People

Contributors

asmod4n avatar ioquatix avatar tarcieri avatar xdissent avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

celluloid-dns's Issues

Server doesn't crash if actor crashes

Given this code:

RubyDNS::run_server(:listen => INTERFACES) do
  otherwise do |transaction|
    transaction.respond!("1.2.3.4")
  end
end

and this query:

nslookup -type=cname www.example.com

This error happens:

I, [2016-08-12T17:08:17.284440 #2669]  INFO -- : Starting RubyDNS server (v1.0.3)...
I, [2016-08-12T17:08:17.284762 #2669]  INFO -- : <> Listening on udp:0.0.0.0:5300
I, [2016-08-12T17:08:17.285454 #2669]  INFO -- : <> Listening on tcp:0.0.0.0:5300
D, [2016-08-12T17:08:25.188498 #2669] DEBUG -- : <> Receiving incoming query (33 bytes) to RubyDNS::UDPHandler...
D, [2016-08-12T17:08:25.188775 #2669] DEBUG -- : <7773> Processing question www.example.com Resolv::DNS::Resource::IN::CNAME...
D, [2016-08-12T17:08:25.188804 #2669] DEBUG -- : <7773> Searching for www.example.com Resolv::DNS::Resource::IN::CNAME
I, [2016-08-12T17:08:25.188821 #2669]  INFO -- : Resource class: Resolv::DNS::Resource::IN::CNAME
I, [2016-08-12T17:08:25.188844 #2669]  INFO -- : Resource: #<Resolv::DNS::Resource::IN::CNAME:0x00000002149888 @name="1.2.3.4">
D, [2016-08-12T17:08:25.188869 #2669] DEBUG -- : add_answer: #<Resolv::DNS::Resource::IN::CNAME:0x00000002149888 @name="1.2.3.4"> 5 1
D, [2016-08-12T17:08:25.188913 #2669] DEBUG -- : <7773> Time to process request: 0.000283347s
E, [2016-08-12T17:08:25.189063 #2669] ERROR -- : Actor crashed!
NoMethodError: undefined method `to_a' for "1.2.3.4":String
  /usr/lib/ruby/2.3.0/resolv.rb:1469:in `put_name'
  /usr/lib/ruby/2.3.0/resolv.rb:1769:in `encode_rdata'
  /usr/lib/ruby/2.3.0/resolv.rb:1423:in `block (4 levels) in encode'
  /usr/lib/ruby/2.3.0/resolv.rb:1452:in `put_length16'
  /usr/lib/ruby/2.3.0/resolv.rb:1423:in `block (3 levels) in encode'
  /usr/lib/ruby/2.3.0/resolv.rb:1419:in `each'
  /usr/lib/ruby/2.3.0/resolv.rb:1419:in `block (2 levels) in encode'
  /usr/lib/ruby/2.3.0/resolv.rb:1418:in `each'
  /usr/lib/ruby/2.3.0/resolv.rb:1418:in `block in encode'
  /usr/lib/ruby/2.3.0/resolv.rb:1433:in `initialize'
  /usr/lib/ruby/2.3.0/resolv.rb:1399:in `new'
  /usr/lib/ruby/2.3.0/resolv.rb:1399:in `encode'
  /var/lib/gems/2.3.0/gems/rubydns-1.0.3/lib/rubydns/handler.rb:89:in `respond'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in `public_send'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in `dispatch'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:122:in `dispatch'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/cell.rb:60:in `block in invoke'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/cell.rb:71:in `block in task'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/actor.rb:357:in `block in task'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/tasks.rb:57:in `block in initialize'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/tasks/task_fiber.rb:15:in `block in create'
W, [2016-08-12T17:08:25.189276 #2669]  WARN -- : Terminating task: type=:call, meta={:method_name=>:run}, status=:iowait
  Celluloid::TaskFiber backtrace unavailable. Please try `Celluloid.task_class = Celluloid::TaskThread` if you need backtraces here.
E, [2016-08-12T17:08:25.189326 #2669] ERROR -- : Actor crashed!
NoMethodError: undefined method `to_a' for "1.2.3.4":String
  /usr/lib/ruby/2.3.0/resolv.rb:1469:in `put_name'
  /usr/lib/ruby/2.3.0/resolv.rb:1769:in `encode_rdata'
  /usr/lib/ruby/2.3.0/resolv.rb:1423:in `block (4 levels) in encode'
  /usr/lib/ruby/2.3.0/resolv.rb:1452:in `put_length16'
  /usr/lib/ruby/2.3.0/resolv.rb:1423:in `block (3 levels) in encode'
  /usr/lib/ruby/2.3.0/resolv.rb:1419:in `each'
  /usr/lib/ruby/2.3.0/resolv.rb:1419:in `block (2 levels) in encode'
  /usr/lib/ruby/2.3.0/resolv.rb:1418:in `each'
  /usr/lib/ruby/2.3.0/resolv.rb:1418:in `block in encode'
  /usr/lib/ruby/2.3.0/resolv.rb:1433:in `initialize'
  /usr/lib/ruby/2.3.0/resolv.rb:1399:in `new'
  /usr/lib/ruby/2.3.0/resolv.rb:1399:in `encode'
  /var/lib/gems/2.3.0/gems/rubydns-1.0.3/lib/rubydns/handler.rb:89:in `respond'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in `public_send'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in `dispatch'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:122:in `dispatch'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/cell.rb:60:in `block in invoke'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/cell.rb:71:in `block in task'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/actor.rb:357:in `block in task'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/tasks.rb:57:in `block in initialize'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/tasks/task_fiber.rb:15:in `block in create'
E, [2016-08-12T17:08:25.192706 #2669] ERROR -- : Actor crashed!
NoMethodError: undefined method `to_a' for "1.2.3.4":String
  /usr/lib/ruby/2.3.0/resolv.rb:1469:in `put_name'
  /usr/lib/ruby/2.3.0/resolv.rb:1769:in `encode_rdata'
  /usr/lib/ruby/2.3.0/resolv.rb:1423:in `block (4 levels) in encode'
  /usr/lib/ruby/2.3.0/resolv.rb:1452:in `put_length16'
  /usr/lib/ruby/2.3.0/resolv.rb:1423:in `block (3 levels) in encode'
  /usr/lib/ruby/2.3.0/resolv.rb:1419:in `each'
  /usr/lib/ruby/2.3.0/resolv.rb:1419:in `block (2 levels) in encode'
  /usr/lib/ruby/2.3.0/resolv.rb:1418:in `each'
  /usr/lib/ruby/2.3.0/resolv.rb:1418:in `block in encode'
  /usr/lib/ruby/2.3.0/resolv.rb:1433:in `initialize'
  /usr/lib/ruby/2.3.0/resolv.rb:1399:in `new'
  /usr/lib/ruby/2.3.0/resolv.rb:1399:in `encode'
  /var/lib/gems/2.3.0/gems/rubydns-1.0.3/lib/rubydns/handler.rb:89:in `respond'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in `public_send'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in `dispatch'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:122:in `dispatch'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/cell.rb:60:in `block in invoke'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/cell.rb:71:in `block in task'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/actor.rb:357:in `block in task'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/tasks.rb:57:in `block in initialize'
  /var/lib/gems/2.3.0/gems/celluloid-0.16.0/lib/celluloid/tasks/task_fiber.rb:15:in `block in create'
W, [2016-08-12T17:08:25.195680 #2669]  WARN -- : Terminating task: type=:call, meta={:method_name=>:run}, status=:iowait
  Celluloid::TaskFiber backtrace unavailable. Please try `Celluloid.task_class = Celluloid::TaskThread` if you need backtraces here.

The actors are permanently crashed, but the error isn't raised up to the main ruby process, so that process continues on, but is unable to process additional requests.

Is there a way to have crashed actors result in an exception raised to the outer process?

I'm using rubydns, but I figure this is a celluloid-dns problem. Let me know if that's not the case.

README example does not work

on my machine (OS X 10.8) the server just hangs when a request is received, I think it just get stuck on "@block.call" which never calls the block but never returns either (just tested with a quick puts debugging ;) ).

is it supposed to work ?

I tested it with latest celluloid release (0.14.1) and I tested both latest celluloid-dns release and master with the same result :(

handle_connection does not handle Errno::ECONNRESET

handle_connection does not handle Errno::ECONNRESET

https://github.com/celluloid/celluloid-dns/blob/master/lib/celluloid/dns/handler.rb#L173

Example of exeption:

Actor crashed! Errno::ECONNRESET: Connection reset by peer
/var/lib/gems/2.1.0/gems/celluloid-io-0.17.2/lib/celluloid/io/stream.rb:41:in `block in sysread'
/var/lib/gems/2.1.0/gems/celluloid-io-0.17.2/lib/celluloid/io/stream.rb:389:in `synchronize'
/var/lib/gems/2.1.0/gems/celluloid-io-0.17.2/lib/celluloid/io/stream.rb:39:in `sysread'
/var/lib/gems/2.1.0/gems/celluloid-io-0.17.2/lib/celluloid/io/stream.rb:128:in `readpartial'
/var/lib/gems/2.1.0/bundler/gems/celluloid-dns-05ef7ebd72f2/lib/celluloid/dns/transport.rb:58:in `read_chunk'
/var/lib/gems/2.1.0/bundler/gems/celluloid-dns-05ef7ebd72f2/lib/celluloid/dns/handler.rb:173:in `handle_connection'
/var/lib/gems/2.1.0/gems/celluloid-0.17.2/lib/celluloid/calls.rb:28:in `public_send'
/var/lib/gems/2.1.0/gems/celluloid-0.17.2/lib/celluloid/calls.rb:28:in `dispatch'
/var/lib/gems/2.1.0/gems/celluloid-0.17.2/lib/celluloid/call/async.rb:7:in `dispatch'
/var/lib/gems/2.1.0/gems/celluloid-0.17.2/lib/celluloid/cell.rb:50:in `block in dispatch'
/var/lib/gems/2.1.0/gems/celluloid-0.17.2/lib/celluloid/cell.rb:76:in `block in task'
/var/lib/gems/2.1.0/gems/celluloid-0.17.2/lib/celluloid/actor.rb:339:in `block in task'
/var/lib/gems/2.1.0/gems/celluloid-0.17.2/lib/celluloid/task.rb:44:in `block in initialize'
/var/lib/gems/2.1.0/gems/celluloid-0.17.2/lib/celluloid/task/fibered.rb:14:in `block in create'

IDNA not supported

When this is called:

nslookup "à±<8a>#001a.t-mobile.com"

I get:

E, [2016-09-09T13:37:21.121431 #20408] ERROR -- : Actor crashed!
Encoding::CompatibilityError: inspected result must be ASCII only or use the default external encoding

My workaround was to put this code:

unless name.encoding.to_s == 'UTF-8'
  puts "Bad encoding for #{name} , which was #{name.encoding}"
  transaction.fail!( :NXDomain )
  return
end

before this line:

transaction.passthrough!( @resolver )

Full backtrace of exception:

/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/resolver.rb:148:in `inspect'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/resolver.rb:148:in `inspect'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/resolver.rb:148:in `block in dispatch_request'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/resolver.rb:278:in `block in each'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/resolver.rb:275:in `each'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/resolver.rb:275:in `each'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/resolver.rb:147:in `dispatch_request'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/resolver.rb:93:in `query'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/calls.rb:28:in `public_send'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/calls.rb:28:in `dispatch'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/call/sync.rb:16:in `dispatch'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/cell.rb:50:in `block in dispatch'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/cell.rb:76:in `block in task'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/actor.rb:339:in `block in task'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/task.rb:44:in `block in initialize'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/task/fibered.rb:14:in `block in create'
(celluloid):0:in `remote procedure call'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/call/sync.rb:45:in `value'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/proxy/sync.rb:22:in `method_missing'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/transaction.rb:109:in `passthrough'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/transaction.rb:83:in `passthrough!'
server.rb:58:in `process'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/transaction.rb:190:in `process'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/server.rb:94:in `block in process_query'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/server.rb:86:in `each'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/server.rb:86:in `process_query'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/handler.rb:72:in `process_query'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-dns-0.17.3/lib/celluloid/dns/handler.rb:103:in `respond'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/calls.rb:28:in `public_send'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/calls.rb:28:in `dispatch'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/call/async.rb:7:in `dispatch'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/cell.rb:50:in `block in dispatch'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/cell.rb:76:in `block in task'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/actor.rb:339:in `block in task'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/task.rb:44:in `block in initialize'
/root/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/celluloid-0.17.3/lib/celluloid/task/fibered.rb:14:in `block in create'

DNS should use search domains by default?

Following from celluloid/celluloid-io#146 (comment)

  • If an instance of Celluloid::DNS::Resolver is created, do we consult resolve.conf for every request?
  • If a user specifies a search prefix, do we consult resolve.conf at all?
  • How does resolv.conf work on Mac OS X and is it compatible with Linux? What about Windows?
  • Does it make sense to use a native implementation of DNS for system-level DNS resolution, i.e. should we simply have Celluloid::DNS::Resolver defer to the OS supplied implementation?

Copy RubyDNS into Celluloid::DNS.

@tarcieri I am happy to put some time aside to do this. What do you think?

There are a couple of options:

Rename RubyDNS to Celluloid::DNS and add compatibility layer for existing code depending on Celluloid::DNS.

Copy specific parts (e.g. just resolver and/or just basic server, etc).

Something else?

/cc @digitalextremist @e2

Please update gem at rubygems.org

The latest version available at rubygems.org is 0.0.1. Because rubygems.org is the default gem source gem install celluloid-dns installs a non working gem for almost everybody:

$ gem install celluloid-dns
Successfully installed celluloid-dns-0.0.1
Parsing documentation for celluloid-dns-0.0.1
Installing ri documentation for celluloid-dns-0.0.1
Done installing documentation for celluloid-dns after 0 seconds
1 gem installed

Running specs on Mac OS X..

While the specs previously did pass on Mac OS X, after updating to celluloid 0.17.1 and celluloid-io 0.17.0 I've noticed some issues. It appears to still be fine on Linux. This is a meta-issue to figure out what exactly is the problem and how to resolve it.

Trouble running specs ?

Hi,

I'm really keen to use this gem it looks amazing and the possibilities for our team are great! I'm having trouble getting the example in the README to work and also when running the specs fail after around 15 seconds of idle ?

I get the same error with the following Ruby versions:

2.0.0-p0
2.0.0-p195
1.9.3-p194
1.9.3-p385

[Coveralls] Set up the SimpleCov formatter.
[Coveralls] Using SimpleCov's default settings.

Celluloid::DNS::Server
W, [2013-05-23T19:31:21.924004 #55644]  WARN -- : Terminating task: type=:call, status=:invokeblock
  answers DNS requests (FAILED - 1)

Failures:

  1) Celluloid::DNS::Server answers DNS requests
     Failure/Error: resolv.getaddress(example_name).to_s.should eq example_ip
     Resolv::ResolvError:
       DNS result has no information for example.com
     # /Users/ash/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/resolv.rb:383:in `getaddress'
     # ./spec/celluloid/dns/server_spec.rb:20:in `block (3 levels) in <top (required)>'
     # /Users/ash/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/resolv.rb:302:in `open'
     # ./spec/celluloid/dns/server_spec.rb:19:in `block (2 levels) in <top (required)>'
     # /Users/ash/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rspec-core-2.13.1/lib/rspec/core/example.rb:114:in `instance_eval'
     # /Users/ash/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rspec-core-2.13.1/lib/rspec/core/example.rb:114:in `block in run'
     # /Users/ash/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rspec-core-2.13.1/lib/rspec/core/example.rb:254:in `with_around_each_hooks'
     # /Users/ash/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rspec-core-2.13.1/lib/rspec/core/example.rb:111:in `run'
     # /Users/ash/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rspec-core-2.13.1/lib/rspec/core/example_group.rb:390:in `block in run_examples'
     # /Users/ash/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rspec-core-2.13.1/lib/rspec/core/example_group.rb:386:in `map'
     # /Users/ash/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rspec-core-2.13.1/lib/rspec/core/example_group.rb:386:in `run_examples'
     # /Users/ash/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rspec-core-2.13.1/lib/rspec/core/example_group.rb:371:in `run'
     # /Users/ash/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rspec-core-2.13.1/lib/rspec/core/command_line.rb:28:in `block (2 levels) in run'
     # /Users/ash/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rspec-core-2.13.1/lib/rspec/core/command_line.rb:28:in `map'
     # /Users/ash/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rspec-core-2.13.1/lib/rspec/core/command_line.rb:28:in `block in run'
     # /Users/ash/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rspec-core-2.13.1/lib/rspec/core/reporter.rb:34:in `report'
     # /Users/ash/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rspec-core-2.13.1/lib/rspec/core/command_line.rb:25:in `run'
     # /Users/ash/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rspec-core-2.13.1/lib/rspec/core/runner.rb:80:in `run'
     # /Users/ash/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/rspec-core-2.13.1/lib/rspec/core/runner.rb:17:in `block in autorun'

Finished in 1 minute 15.03 seconds
1 example, 1 failure

Failed examples:

rspec ./spec/celluloid/dns/server_spec.rb:10 # Celluloid::DNS::Server answers DNS requests
[Coveralls] Outside the Travis environment, not sending data.
D, [2013-05-23T19:31:22.069651 #55644] DEBUG -- : Shutdown completed cleanly
rake aborted!
/Users/ash/.rbenv/versions/2.0.0-p0/bin/ruby -S rspec ./spec/celluloid/dns/server_spec.rb failed

Tasks: TOP => default => spec
(See full trace by running task with --trace)

Ash.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.