snacktime
2006-Aug-02 22:41 UTC
[Rails] Errno::ENXIO (Device not configured) when using net/https from rails
Cross posting this to the rails list in case it might be rails specific. I really have no clue on this one. OS is Freebsd 6.1. I have the following code that creates a https connection from within a rails controller. Works fine except that if it doesn''t get called for a few hours it starts throwing an exception until I restart rails (apache1.3 + scgi). I wonder if something here isn''t thread safe? Just a guess. @postdata = nil headers = { ''Referer'' => '''', ''Content-Type'' => ''application/x-www-form-urlencoded'' } @postdata = "directauth=1&user=#{user}&pass=#{@password}" site = Net::HTTP.new( ''mysite.com'', 443 ) site.use_ssl = true response = site.post(''/login'', @postdata, headers) <<--- Line 69 in method authorize And this is the backtrace: Errno::ENXIO (Device not configured): /usr/local/lib/ruby/1.8/net/http.rb:566:in `write'' /usr/local/lib/ruby/1.8/net/http.rb:566:in `connect'' /usr/local/lib/ruby/1.8/net/http.rb:555:in `do_start'' /usr/local/lib/ruby/1.8/net/http.rb:544:in `start'' /usr/local/lib/ruby/1.8/net/http.rb:1031:in `request'' /usr/local/lib/ruby/1.8/net/http.rb:840:in `post'' /app/controllers/application.rb:69:in `authorize'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.3/lib/action_controller/filters.rb:399:in `call_filters'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.3/lib/action_controller/filters.rb:394:in `call_filters'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.3/lib/action_controller/filters.rb:383:in `before_action'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.3/lib/action_controller/filters.rb:365:in `perform_action_without_benchmark'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.3/lib/action_controller/benchmarking.rb:69:in `perform_action_without_rescue'' /usr/local/lib/ruby/1.8/benchmark.rb:293:in `measure'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.3/lib/action_controller/benchmarking.rb:69:in `perform_action_without_rescue'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.3/lib/action_controller/rescue.rb:82:in `perform_action'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.3/lib/action_controller/base.rb:381:in `process_without_filters'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.3/lib/action_controller/filters.rb:377:in `process_without_session_management_support'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.3/lib/action_controller/session_management.rb:117:in `process'' /usr/local/lib/ruby/gems/1.8/gems/rails-1.1.4/lib/dispatcher.rb:38:in `dispatch'' /usr/local/lib/ruby/gems/1.8/gems/scgi_rails-0.4.3/bin/scgi_service:23:in `process_request'' /usr/local/lib/ruby/1.8/thread.rb:135:in `synchronize'' /usr/local/lib/ruby/gems/1.8/gems/scgi_rails-0.4.3/bin/scgi_service:21:in `process_request'' /usr/local/lib/ruby/gems/1.8/gems/scgi_rails-0.4.3/lib/scgi.rb:291:in `read_header'' /usr/local/lib/ruby/gems/1.8/gems/scgi_rails-0.4.3/lib/scgi.rb:253:in `handle_client'' /usr/local/lib/ruby/gems/1.8/gems/scgi_rails-0.4.3/lib/scgi.rb:234:in `handle_client'' /usr/local/lib/ruby/gems/1.8/gems/scgi_rails-0.4.3/lib/scgi.rb:188:in `listen'' /usr/local/lib/ruby/gems/1.8/gems/scgi_rails-0.4.3/lib/scgi.rb:186:in `listen'' /usr/local/lib/ruby/gems/1.8/gems/scgi_rails-0.4.3/lib/scgi.rb:412:in `run'' /usr/local/lib/ruby/gems/1.8/gems/scgi_rails-0.4.3/bin/scgi_service:61