Uploaded image for project: 'DeltaCloud'
  1. DeltaCloud
  2. DTACLOUD-225

[NO HANDLED] Errno::ETIMEDOUT: Connection timed out - when trying to access unavailable vsphere provider

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • Server
    • None

    Description

      If the vsphere provider deltacloud is trying to access is unavailable or invalid, deltacloud returns a "500" uncaught timedout exception. See trace copied below. According to Michal, we should return:

      "<mfojtik> yes, we should have caught that and advertise it as 503 (Gateway unavailable)"

      ---------------------

      [root@qe-blade-02 sysconfig]# API_PROVIDER=10.16.120.137 deltacloudd -i vsphere -r localhost -p 3006
      Starting Deltacloud API :: vsphere :: 10.16.120.137 :: http://localhost:3006/api

      >> Thin web server (v1.3.1 codename Triple Espresso)
      >> Debugging ON
      >> Maximum connections set to 1024
      >> Listening on localhost:3006, CTRL+C to stop
      [NO HANDLED] Errno::ETIMEDOUT: Connection timed out - connect(2)
      ..... rest of trace

      >> curl -X GET --user '<un>:<pw>' "http://localhost:3006/api/images?format=xml"

      <error status='500' url='/api/images?format=xml'>
      <kind>backend_error</kind>
      <backend driver='vsphere' provider='10.16.120.137'>
      <code>500</code>
      </backend>
      <message><![CDATA[Unhandled exception or status code (Connection timed out - connect(2))]]></message>
      <backtrace><![CDATA[/usr/lib/ruby/1.8/net/http.rb:560:in `initialize'
      /usr/lib/ruby/1.8/net/http.rb:560:in `open'
      /usr/lib/ruby/1.8/net/http.rb:560:in `connect'
      /usr/lib/ruby/1.8/timeout.rb:67:in `timeout'
      /usr/lib/ruby/1.8/timeout.rb:101:in `timeout'
      /usr/lib/ruby/1.8/net/http.rb:560:in `connect'
      /usr/lib/ruby/1.8/net/http.rb:553:in `do_start'
      /usr/lib/ruby/1.8/net/http.rb:548:in `start'
      /usr/lib/ruby/gems/1.8/gems/rbvmomi-1.5.1/lib/rbvmomi/trivial_soap.rb:56:in `restart_http'
      /usr/lib/ruby/gems/1.8/gems/rbvmomi-1.5.1/lib/rbvmomi/trivial_soap.rb:20:in `initialize'
      /usr/lib/ruby/gems/1.8/gems/rbvmomi-1.5.1/lib/rbvmomi/connection.rb:31:in `initialize'
      /usr/lib/ruby/gems/1.8/gems/rbvmomi-1.5.1/lib/rbvmomi/vim.rb:34:in `new'
      /usr/lib/ruby/gems/1.8/gems/rbvmomi-1.5.1/lib/rbvmomi/vim.rb:34:in `connect'
      /usr/share/deltacloud-core/lib/deltacloud/drivers/vsphere/vsphere_driver.rb:394:in `new_client'
      /usr/share/deltacloud-core/lib/deltacloud/base_driver/exceptions.rb:151:in `call'
      /usr/share/deltacloud-core/lib/deltacloud/base_driver/exceptions.rb:151:in `safely'
      /usr/share/deltacloud-core/lib/deltacloud/drivers/vsphere/vsphere_driver.rb:393:in `new_client'
      /usr/share/deltacloud-core/lib/deltacloud/drivers/vsphere/vsphere_driver.rb:76:in `images'
      /usr/share/deltacloud-core/lib/deltacloud/helpers/application_helper.rb:80:in `send'
      /usr/share/deltacloud-core/lib/deltacloud/helpers/application_helper.rb:80:in `filter_all'
      /usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
      /usr/share/deltacloud-core/lib/deltacloud/helpers/application_helper.rb:79:in `filter_all'
      /usr/share/deltacloud-core/lib/deltacloud/server.rb:238
      /usr/share/deltacloud-core/lib/sinatra/rabbit.rb:125:in `instance_eval'
      /usr/share/deltacloud-core/lib/sinatra/rabbit.rb:125:in `GET /api/images'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:1211:in `call'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:1211:in `compile!'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:785:in `[]'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:785:in `route!'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:801:in `route_eval'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:785:in `route!'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:822:in `process_route'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:820:in `catch'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:820:in `process_route'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:784:in `route!'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:783:in `each'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:783:in `route!'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:886:in `dispatch!'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:719:in `call!'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:871:in `invoke'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:871:in `catch'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:871:in `invoke'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:719:in `call!'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:705:in `call'
      /usr/share/deltacloud-core/lib/sinatra/rack_date.rb:31:in `call'
      /usr/share/deltacloud-core/lib/sinatra/rack_accept.rb:149:in `call'
      /usr/lib/ruby/gems/1.8/gems/rack-protection-1.2.0/lib/rack/protection/xss_header.rb:22:in `call'
      /usr/lib/ruby/gems/1.8/gems/rack-protection-1.2.0/lib/rack/protection/path_traversal.rb:16:in `call'
      /usr/lib/ruby/gems/1.8/gems/rack-protection-1.2.0/lib/rack/protection/json_csrf.rb:17:in `call'
      /usr/lib/ruby/gems/1.8/gems/rack-protection-1.2.0/lib/rack/protection/base.rb:47:in `call'
      /usr/lib/ruby/gems/1.8/gems/rack-protection-1.2.0/lib/rack/protection/xss_header.rb:22:in `call'
      /usr/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/nulllogger.rb:9:in `call'
      /usr/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/head.rb:9:in `call'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/showexceptions.rb:21:in `call'
      /usr/share/deltacloud-core/lib/sinatra/rack_driver_select.rb:45:in `call'
      /usr/share/deltacloud-core/lib/sinatra/rack_matrix_params.rb:106:in `call'
      /usr/share/deltacloud-core/lib/sinatra/rack_runtime.rb:36:in `call'
      /usr/share/deltacloud-core/lib/sinatra/rack_etag.rb:41:in `call'
      /usr/lib/ruby/gems/1.8/gems/rack-accept-0.4.4/lib/rack/accept/context.rb:22:in `call'
      /usr/lib/ruby/gems/1.8/gems/rack-protection-1.2.0/lib/rack/protection/xss_header.rb:22:in `call'
      /usr/lib/ruby/gems/1.8/gems/rack-protection-1.2.0/lib/rack/protection/path_traversal.rb:16:in `call'
      /usr/lib/ruby/gems/1.8/gems/rack-protection-1.2.0/lib/rack/protection/json_csrf.rb:17:in `call'
      /usr/lib/ruby/gems/1.8/gems/rack-protection-1.2.0/lib/rack/protection/base.rb:47:in `call'
      /usr/lib/ruby/gems/1.8/gems/rack-protection-1.2.0/lib/rack/protection/xss_header.rb:22:in `call'
      /usr/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/logger.rb:15:in `call'
      /usr/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/head.rb:9:in `call'
      /usr/lib/ruby/gems/1.8/gems/rack-1.4.1/lib/rack/methodoverride.rb:21:in `call'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:1334:in `call'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:1416:in `synchronize'
      /usr/lib/ruby/gems/1.8/gems/sinatra-1.3.2/lib/sinatra/base.rb:1334:in `call'
      /usr/lib/ruby/gems/1.8/gems/thin-1.3.1/lib/thin/connection.rb:80:in `pre_process'
      /usr/lib/ruby/gems/1.8/gems/thin-1.3.1/lib/thin/connection.rb:78:in `catch'
      /usr/lib/ruby/gems/1.8/gems/thin-1.3.1/lib/thin/connection.rb:78:in `pre_process'
      /usr/lib/ruby/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:1060:in `call'
      /usr/lib/ruby/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:1060:in `spawn_threadpool'
      /usr/lib/ruby/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:1057:in `initialize'
      /usr/lib/ruby/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:1057:in `new'
      /usr/lib/ruby/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:1057:in `spawn_threadpool'
      /usr/lib/ruby/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:1049:in `defer'
      /usr/lib/ruby/gems/1.8/gems/thin-1.3.1/lib/thin/connection.rb:50:in `process'
      /usr/lib/ruby/gems/1.8/gems/thin-1.3.1/lib/thin/connection.rb:38:in `receive_data'
      /usr/lib/ruby/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run_machine'
      /usr/lib/ruby/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run'
      /usr/lib/ruby/gems/1.8/gems/thin-1.3.1/lib/thin/backends/base.rb:61:in `start'
      /usr/lib/ruby/gems/1.8/gems/thin-1.3.1/lib/thin/server.rb:159:in `start'
      /usr/lib/ruby/gems/1.8/gems/thin-1.3.1/lib/thin/controllers/controller.rb:86:in `start'
      /usr/lib/ruby/gems/1.8/gems/thin-1.3.1/lib/thin/runner.rb:185:in `send'
      /usr/lib/ruby/gems/1.8/gems/thin-1.3.1/lib/thin/runner.rb:185:in `run_command'
      /usr/lib/ruby/gems/1.8/gems/thin-1.3.1/lib/thin/runner.rb:151:in `run!'
      /usr/share/deltacloud-core/bin/deltacloudd:235
      /usr/bin/deltacloudd:5:in `load'
      /usr/bin/deltacloudd:5]]></backtrace>
      <request>
      <param name='format'>xml</param>
      <param name='splat'></param>
      <param name='captures'>Deltacloud::ExceptionHandler::BackendError</param>
      </request>
      </error>

      Attachments

        Activity

          People

            mfojtik Michal Fojtik
            rlandy Ronelle Landy
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: