astro / astro/em-dns

wrong number of arguments exception in ruby 1.9

Open
#1 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Ruby
Stars
35
Forks
8
PR merge metrics
No merged PRs in 30d

Description

When em-dns is used with ruby 1.9 the following exception occurs:

/opt/local/lib/ruby1.9/gems/1.9.1/gems/eventmachine-0.12.11/lib/em/deferrable.rb:148:in `call': wrong number of arguments (1 for 0) (ArgumentError)
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/eventmachine-0.12.11/lib/em/deferrable.rb:148:in`set_deferred_status'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/eventmachine-0.12.11/lib/em/deferrable.rb:187:in `succeed'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/em-dns-0.1.1/lib/em/dns_cache.rb:163:in`block in resolve_do'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/eventmachine-0.12.11/lib/em/deferrable.rb:148:in `call'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/eventmachine-0.12.11/lib/em/deferrable.rb:148:in`set_deferred_status'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/eventmachine-0.12.11/lib/em/deferrable.rb:187:in `succeed'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/em-dns-0.1.1/lib/em/dns_cache.rb:324:in`block in initialize'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/eventmachine-0.12.11/lib/em/deferrable.rb:148:in `call'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/eventmachine-0.12.11/lib/em/deferrable.rb:148:in`set_deferred_status'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/eventmachine-0.12.11/lib/em/deferrable.rb:187:in `succeed'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/em-dns-0.1.1/lib/em/dns_cache.rb:312:in`post'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/em-dns-0.1.1/lib/em/dns_cache.rb:337:in `receive_data'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/eventmachine-0.12.11/lib/eventmachine.rb:194:in`run_machine'
from /opt/local/lib/ruby1.9/gems/1.9.1/gems/eventmachine-0.12.11/lib/eventmachine.rb:194:in `run'

In ruby 1.8 the same code works fine. Maybe this is a problem because of more strict checking of Proc calling semantics?

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the failure with Ruby 1.9 and the em-dns code path shown in lib/em/dns_cache.rb, especially resolve_do, post, initialize, and receive_data. Compare the behavior with Ruby 1.8 and inspect the EventMachine deferrable call sites in the reported stack trace. Done means the same DNS resolution no longer raises the wrong-number-of-arguments exception under Ruby 1.9.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
networking
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.