Thanks for investigating that. It does indeed sound like a bug in Net::SSH. I'll get that patched as soon as I can.
- Jamis On May 31, 2008, at 7:29 PM, Rich Morin wrote: > > OK, figured it out. I was getting my trace from some code I > put in ".../capistrano/configuration/connections.rb": > > class NilClass > def split(*args) > caller.each {|c| puts c } > end > end > > > My code kept the program from crashing, because split() was now > defined for NilClass. So, a Heisenbug. > > > Here is a modified version: > > class NilClass > def split(*args) > puts "splitting Nil on '#{args[0]}', limit '#{args[1]}'" > caller.each {|c| puts c } > return [] > end > end > > > Its output looks like: > > $ cap -f ./t1.cap test_cmd > * executing `test_cmd' > * executing "pwd" > servers: ["localhost"] > splitting Nil on '(?-mix:,)', limit '' > .../gems/net-ssh-2.0.1/lib/net/ssh/known_hosts.rb:101:in `keys_for' > ... > /usr/local/bin/cap:18 > splitting Nil on '(?-mix:,)', limit '' > .../gems/net-ssh-2.0.1/lib/net/ssh/known_hosts.rb:101:in `keys_for' > ... > /usr/local/lib/ruby/gems/1.8/gems/capistrano-2.3.0/bin/cap:4 > /usr/local/bin/cap:18 > [localhost] executing command > stderr from localhost: tcsh: /dev/tty: Device not configured. > stdout from localhost: /Users/rdm > command finished > > > So, it appears that net-ssh is trying to split something that it > doesn't actually need. In the process, it crashes the program. A > bit more work revealed that the string in question came from my > '/Users/rdm/.ssh/known_hosts' file. So I cleared it out and the > problem disappeared. > > > I would say that this is a bug in net-ssh, because rather than > checking for bad data and printing out a useful error message, > it hands the problem to split(), which crashes mysteriously. It > turns out that the keys_for() routine can't handle a blank line > in the known_hosts file. So I filed this as: > > http://capistrano.lighthouseapp.com/projects/8716-capistrano/tickets/22-net-ssh-is-too-brittle > > -r > -- > http://www.cfcl.com/rdm Rich Morin > http://www.cfcl.com/rdm/resume [EMAIL PROTECTED] > http://www.cfcl.com/rdm/weblog +1 650-873-7841 > > Technical editing and writing, programming, and web development > > > --~--~---------~--~----~------------~-------~--~----~ To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/capistrano -~----------~----~----~----~------~----~------~--~---