amazon-archives/aws-sdk-core-ruby

Errors from Seahorse namespace getting back to caller

Closed this issue · 3 comments

Seahorse::Client::NetworkingError: execution expired
and
Seahorse::Client::NetworkingError: Received fatal alert: internal_error

I was under the impression I would get something back in the namespace of the plugin, such as Aws::EC2::Errors::... or Aws:RDS::Errors::... and never see anything Seahorse related.

If this is as designed, then close.

Example stack trace:

File "org/jruby/ext/socket/RubyTCPSocket.java", line 111 in initialize
File "org/jruby/RubyIO.java", line 1178 in open
File "/usr/local/rvm/rubies/jruby-1.7.12/lib/ruby/1.9/net/http.rb" line 762 in connect
File "org/jruby/ext/timeout/Timeout.java", line 126 in timeout
File "/usr/local/rvm/rubies/jruby-1.7.12/lib/ruby/1.9/net/http.rb" line 762 in connect
File "/usr/local/rvm/rubies/jruby-1.7.12/lib/ruby/1.9/net/http.rb" line 755 in do_start
File "/usr/local/rvm/rubies/jruby-1.7.12/lib/ruby/1.9/net/http.rb" line 750 in start
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/seahorse/client/net_http/connection_pool.rb" line 292 in start_session
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/seahorse/client/net_http/connection_pool.rb" line 104 in session_for
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/seahorse/client/net_http/handler.rb" line 75 in session
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/seahorse/client/net_http/handler.rb" line 51 in transmit
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/seahorse/client/net_http/handler.rb" line 25 in call
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/seahorse/client/plugins/content_length.rb" line 12 in call
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/aws-sdk-core/xml/error_handler.rb" line 8 in call
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/aws-sdk-core/plugins/request_signer.rb" line 73 in call
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/aws-sdk-core/plugins/retry_errors.rb" line 88 in call
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/aws-sdk-core/plugins/retry_errors.rb" line 119 in retry_request
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/aws-sdk-core/plugins/retry_errors.rb" line 102 in retry_if_possible
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/aws-sdk-core/plugins/retry_errors.rb" line 90 in call
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/aws-sdk-core/plugins/retry_errors.rb" line 119 in retry_request
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/aws-sdk-core/plugins/retry_errors.rb" line 102 in retry_if_possible
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/aws-sdk-core/plugins/retry_errors.rb" line 90 in call
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/aws-sdk-core/plugins/retry_errors.rb" line 119 in retry_request
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/aws-sdk-core/plugins/retry_errors.rb" line 102 in retry_if_possible
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/aws-sdk-core/plugins/retry_errors.rb" line 90 in call
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/aws-sdk-core/plugins/retry_errors.rb" line 119 in retry_request
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/aws-sdk-core/plugins/retry_errors.rb" line 102 in retry_if_possible
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/aws-sdk-core/plugins/retry_errors.rb" line 90 in call
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/aws-sdk-core/plugins/retry_errors.rb" line 119 in retry_request
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/aws-sdk-core/plugins/retry_errors.rb" line 102 in retry_if_possible
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/aws-sdk-core/plugins/retry_errors.rb" line 90 in call
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/aws-sdk-core/query/handler.rb" line 11 in call
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/aws-sdk-core/plugins/user_agent.rb" line 12 in call
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/seahorse/client/plugins/restful_bindings.rb" line 13 in call
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/seahorse/client/plugins/endpoint.rb" line 35 in call
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/seahorse/client/plugins/param_validation.rb" line 22 in call
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/seahorse/client/plugins/raise_response_errors.rb" line 14 in call
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/seahorse/client/plugins/param_conversion.rb" line 22 in call
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/aws-sdk-core/plugins/response_paging.rb" line 10 in call
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/seahorse/client/request.rb" line 70 in send_request
File "aws-sdk-core-ruby-c0892dc22efd/aws-sdk-core/lib/seahorse/client/base.rb" line 215 in describe_load_balancers

The Seahorse::Client::Networking error is raised when you are unable to connect to service or when the connection fails. I don't see an issue why this instead could not be represented as some Aws::EC2::ClientError (opposed to Aws::EC2::ServiceError). This is currently working as intended, but I don't see why this couldn't be improved.

Something like Aws::EC2::Error::NetworkingError is fine. Thanks!

att14 commented

It would be nice if the documentation called out that this error can occur. For example, http://docs.aws.amazon.com/sdkforruby/api/Aws/S3/Errors.html.

Obviously these errors only occur in a small set of requests, but it sucks to have to experience it in production to learn that these need to be handled properly.