Hi all,
Although this is happening in a Rails app, this is mainly a Ruby issue.
I hit this issue on Solaris 10 with 1.8.2 but it went away with 1.8.4.
However, when I moved the app over to a Linux box (kernel 2.6.8), it
reared its ugly head again, even when using Ruby 1.8.4. I tried using a
Ruby built with and without --enable-pthread. Didn’t make a difference
either way.
./app/models/user.rb:64: [BUG] Segmentation fault
ruby 1.8.4 (2005-12-24) [i686-linux]
Aborted
user.rb (from /app/models)
require “ldap”
require “timeout”
class User < A
…
def self.login(cuid, password)
ldap_server = “ldapt.foo.com”
bool = true
if ENV["RAILS_ENV"].downcase == "production"
ldap_server = "ldap.foo.com"
end
dn = "uid=#{cuid},ou=People,dc=foo,dc=bar,dc=com"
begin
Timeout.timeout(10){
ldap = LDAP::Conn.new(ldap_server) # line 64
ldap.simple_bind(dn, password)
ldap.unbind
}
rescue Timeout::Error
flash[:notice] = "Timed out"
bool = false
rescue LDAP::ResultError => err
bool = false
end
return bool
end
end
The development log shows nothing special for the last entry:
Processing LoginController#login (for 1.2.3.4 at 2006-02-06 11:39:23)
[POST]
Parameters: {“commit”=>“Login”, “action”=>“login”,
“controller”=>“login”, “login”=>{“cuid”=>“djber
ge”, “password”=>“XXX”}}
Anyone else hit this? I can’t find the core file, otherwise I would
attach it. I could probably generate one on my desktop Solaris box with
Ruby 1.8.2 and post it if that would help. Let me know.
Regards,
Dan