ActionMailer and Ruby SMTP causing a segmentation fault!

59 views
Skip to first unread message

Don

unread,
Jan 27, 2012, 6:14:03 PM1/27/12
to rubyonra...@googlegroups.com
I just activated Devise' :confirmable option in my User model.  As Devise tries to send out the confirmation-link email I get a segmentation-fault error in Ruby's SMTP library: 

... lib/ruby/1.9.1/net/smtp.rb:583: [BUG] Segmentation fault

My config/environments/development.rb file has the following:

  config.action_mailer.delivery_method = :smtp
  config
.action_mailer.raise_delivery_errors = true
  config
.action_mailer.default_url_options = { :host => 'localhost:3000' }

My /config/initializers/setup_mail.rb file:
ActionMailer::Base.smtp_settings = {
 
:address              => "smtp.gmail.com",
 
:port                 => 587,
 
:domain               => "mydomain.com",
 
:user_name            => "[redacted]",
 
:password             => "[redacted]",
 
:authentication       => "plain",
 
:enable_starttls_auto => true
}
ActionMailer::Base.default_url_options[:host] = "localhost:3000"
The relevant code in smtp.rb   are these two methods:
def ssl_socket(socket, context)
 
OpenSSL::SSL::SSLSocket.new socket, context
end

def tlsconnect(s)
  verified
= false
  s
= ssl_socket(s, @ssl_context)
  logging
"TLS connection started"
  s
.sync_close = true
  s
.connect  # THIS IS LINE 583
 
if @ssl_context.verify_mode != OpenSSL::SSL::VERIFY_NONE
    s
.post_connection_check(@address)
 
end
  verified
= true
  s
ensure
  s
.close unless verified
end
I've tried setting :enable_starttls_auto to false.  I don't get a segmentation fault, but no mail goes out either.  I can get a session going with the gmail smtp host via the command line.  I'm running on the latest version of Mac OS.  
Never had to debug a segmentation fault before.  Pretty intimidating.  Any thoughts, ideas, approaches?


Colin Law

unread,
Jan 28, 2012, 3:40:06 AM1/28/12
to rubyonra...@googlegroups.com
On 27 January 2012 23:14, Don <don.l...@gmail.com> wrote:
> I just activated Devise' :confirmable option in my User model.  As Devise
> tries to send out the confirmation-link email I get a segmentation-fault
> error in Ruby's SMTP library:
>
> ... lib/ruby/1.9.1/net/smtp.rb:583: [BUG] Segmentation fault

If you are using ruby 1.9.1 then upgrade to 1.9.2 (or 1.9.3 though
maybe it is still a bit new) or go back to 1.8.7
1.9.1 did not play well with Rails

Colin

Don

unread,
Jan 28, 2012, 1:14:55 PM1/28/12
to rubyonra...@googlegroups.com
>> tries to send out the confirmation-link email I get a segmentation-fault
>> error in Ruby's SMTP library:
>>
>> ... lib/ruby/1.9.1/net/smtp.rb:583: [BUG] Segmentation fault

> If you are using ruby 1.9.1 then upgrade to 1.9.2 (or 1.9.3 though
> maybe it is still a bit new) or go back to 1.8.7
>1.9.1 did not play well with Rails

OK I'm confused.  The segmentation fault indicates it is happening in the ruby 1.9.1 version of the SMTP library (see quoted text.)  However, when I go to my project and enter the Rails console, I get this:

      irb(main):001:0> RUBY_VERSION

      => "1.9.3"

And when I go the project directory I get this:

      story_project #   ruby --version

      ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.2.0]

The full path on the segmentation fault is:

      /Users/don/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/smtp.rb:583: [BUG] Segmentation fault

What is the deal here?  Why is Ruby 1.9.3 running code from 1.9.1?  Is this common?  Did RVM mess this up some how?

Perplexing!??

Paul

unread,
Jan 29, 2012, 12:40:55 PM1/29/12
to rubyonra...@googlegroups.com
First, the 1.9.1 is "normal". That's always the folder it uses.

Second, are you having this problem?
http://www.christopherirish.com/2011/09/02/ruby-1-9-2-segmentation-fault-and-openssl/

Reply all
Reply to author
Forward
0 new messages