You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by "Michal Fojtik (JIRA)" <ji...@apache.org> on 2012/06/04 18:41:23 UTC

[jira] [Resolved] (DTACLOUD-225) [NO HANDLED] Errno::ETIMEDOUT: Connection timed out - when trying to access unavailable vsphere provider

     [ https://issues.apache.org/jira/browse/DTACLOUD-225?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michal Fojtik resolved DTACLOUD-225.
------------------------------------

    Resolution: Fixed

commit 8e5669ad88ccc77f18bde0aaf7a6f6beb859f1f9
Author: Michal Fojtik <mf...@redhat.com>
Date:   Mon Jun 4 18:39:23 2012 +0200

    Vsphere: Wrap connection timeout to vpshere with proper HTTP status code (DTACLOUD-225)
                
> [NO HANDLED] Errno::ETIMEDOUT: Connection timed out - when trying to access unavailable vsphere provider
> --------------------------------------------------------------------------------------------------------
>
>                 Key: DTACLOUD-225
>                 URL: https://issues.apache.org/jira/browse/DTACLOUD-225
>             Project: DeltaCloud
>          Issue Type: Bug
>          Components: Server
>         Environment: rpm -qa |grep deltacloud
> deltacloud-core-rhevm-0.5.0-9.el6_3.noarch
> deltacloud-core-vsphere-0.5.0-9.el6_3.noarch
> deltacloud-core-ec2-0.5.0-9.el6_3.noarch
> deltacloud-core-0.5.0-9.el6_3.noarch
> rubygem-deltacloud-client-0.5.0-2.el6.noarch
> vsphere 5.x
> rhel 6.2
>            Reporter: Ronelle Landy
>            Assignee: Michal Fojtik
>
> 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> 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira