wrong number of arguments exception in ruby 1.9
- 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