bearded / ruby-ldap

Ruby/LDAP is an extension library for Ruby. It provides the interface to some LDAP libraries (e.g. OpenLDAP, Netscape SDK and Active Directory). The common API for application development is described in RFC1823 and is supported by Ruby/LDAP.
http://rubyforge.org/projects/ruby-ldap/
Other
66 stars 34 forks source link

ruby-ldap gem not work in rails3 app, but works in rails console #14

Open i3zhe opened 12 years ago

i3zhe commented 12 years ago

I want to build a rails3 website authed with LDAP, so I chose ruby-ldap gem (not net/ldap) which we used in our old rails2 apps and works very well.

But I keep on getting weird error in rails3 app, See the codes below:

require 'ldap'
class WelcomeController < ApplicationController

  def index  
    begin
      @test = LDAP::Conn.new('10.72.64.11', 389)
    rescue LDAP::Error
      p LDAP::Error
    end  
    render :text => "ok"
  end
end 

welcome#index is my root route. Most time, the app crashes when going to LDAP::Conn.new('10.72.64.11', 389), even I tried to use "pry" to debug and track, throwing

[1] 24797 trace trap rails s

and the WEBrick server will be terminated right that time.

Sometimes it throws another type error when I use "pry" to step, #<NameError: uninitialized constant WelcomeController::LDAP>

While try it in the console, everything goes well.

    1.9.3-p194 :001 > require 'ldap'
     => true 
    1.9.3-p194 :002 > @test = LDAP::Conn.new('10.72.64.11', 389)
     => #<LDAP::Conn:0x00000101289568> 
    1.9.3-p194 :003 > 
i3zhe commented 12 years ago

I am using rails 3.2.8

Folkman commented 11 years ago

I got the same error using Webrick. Using Unicorn worked though... maybe it has to do with threading?

xoryves commented 6 years ago

Yes, it seems to be a threding problem, because of linking against libldap. I get seg faults when used with puma. See issue https://github.com/bearded/ruby-ldap/issues/13 and pull https://github.com/bearded/ruby-ldap/pull/28