I'm new to Ruby, therefore, not much familiar with the syntaxes -
I want a Ruby code for the following curl request -
curl -X POST http://<auth_server_endpoint>/oauth/token -d "grant_type
=client_credentials" -H"Authorization: Basic encode64Of(clientid:secret)"
After following the link -
How to invoke HTTP POST method over SSL in ruby?
I've written a function to get the response -
def getToken(client_id, secret)
encodedId = Base64.encode64(client_id+":"+secret)
uri = URI.parse("auth_server_endpoint")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new("/oauth/token")
request.add_field('Content-Type', 'application/json')
request.add_field('Authorization', "Basic #{encodedId}")
//FAILS BELOW
response = http.request(request, {'grant_type' => 'client_credentials'})
parsed_json = JSON.parse(response)
self.access_token = parsed_json.fetch("access_token")
self.expires_in = parsed_json.fetch("expires_in")
end
I'm not able to figure out the error. Kindly suggest the changes I need to make.
ERROR LOG -
OpenSSL::SSL::SSLError - SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: unknown protocol:
/netdir/http.rb:920:in `connect'
/netdir/http.rb:920:in `block in connect'
/rubydir/2.1.0/timeout.rb:76:in `timeout'
/netdir/http.rb:920:in `connect'
/netdir/http.rb:863:in `do_start'
/netdir/http.rb:852:in `start'
/netdir/http.rb:1369:in `request'
/rubydir/gems/2.1.0/gems/rest-client-1.6.7/lib/restclient/net_http_ext.rb:51:in `request'
/appdir/lib/sc_customer/auth_token.rb:30:in `getToken'
/appdir/controllers/payment_controller.rb:276:in `block (2 levels) in <module:API>'
/rubydir/gems/2.1.0/gems/rack-metrics-0.0.27/lib/probes/sinatra_probe.rb:24:in `call'
/rubydir/gems/2.1.0/gems/rack-metrics-0.0.27/lib/probes/sinatra_probe.rb:24:in `block in bind'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:569:in `call'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:569:in `block in route'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:51:in `[]'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:51:in `block (3 levels) in process_destination_path'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:851:in `route_eval'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:51:in `block (2 levels) in process_destination_path'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:51:in `catch'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:51:in `block in process_destination_path'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:25:in `instance_eval'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:25:in `process_destination_path'
(eval):16:in `block (2 levels) in inject_root_methods'
(eval):6:in `catch'
(eval):6:in `block in inject_root_methods'
/rubydir/gems/2.1.0/gems/http_router-0.10.2/lib/http_router/node/root.rb:554:in `[]'
/rubydir/gems/2.1.0/gems/http_router-0.10.2/lib/http_router/node/root.rb:13:in `[]'
/rubydir/gems/2.1.0/gems/http_router-0.10.2/lib/http_router.rb:119:in `block in call'
/rubydir/gems/2.1.0/gems/http_router-0.10.2/lib/http_router.rb:119:in `catch'
/rubydir/gems/2.1.0/gems/http_router-0.10.2/lib/http_router.rb:119:in `call'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:910:in `route!'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:900:in `dispatch!'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:769:in `block in call!'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:921:in `block in invoke'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:921:in `catch'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:921:in `invoke'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:769:in `call!'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:755:in `call'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/logger.rb:15:in `call'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/session/abstract/id.rb:195:in `context'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/session/abstract/id.rb:190:in `call'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/head.rb:9:in `call'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/methodoverride.rb:24:in `call'
/rubydir/gems/2.1.0/gems/sc-core-1.1.36/lib/sc_core/logger.rb:58:in `call'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:1389:in `block in call'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:1471:in `synchronize'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:1389:in `call'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/router.rb:83:in `block in call'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/router.rb:76:in `each'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/router.rb:76:in `call'
/rubydir/gems/2.1.0/gems/sc-mq-0.0.86/lib/sc_mq/rack/filter.rb:24:in `call'
/appdir/lib/rack/bu_aware_request_handler.rb:32:in `block in call'
/rubydir/gems/2.1.0/gems/activerecord_use_slave-0.0.5/lib/activerecord_use_slave.rb:44:in `using_connection'
/appdir/lib/rack/bu_aware_request_handler.rb:31:in `call'
/rubydir/gems/2.1.0/gems/sc-core-1.1.36/lib/rack/connection_release.rb:11:in `call'
/rubydir/gems/2.1.0/gems/rack-metrics-0.0.27/lib/rack-metrics/rack.rb:11:in `call'
/rubydir/gems/2.1.0/gems/sc-core-1.1.36/lib/rack/serial_initializer.rb:49:in `call'
/rubydir/gems/2.1.0/gems/sc-core-1.1.36/lib/rack/log_exceptions.rb:11:in `call'
/rubydir/gems/2.1.0/gems/sc-core-1.1.36/lib/rack/transaction_tracer.rb:23:in `call'
/rubydir/gems/2.1.0/gems/sc-core-1.1.36/lib/sc_core/rack/filter.rb:14:in `call'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/lint.rb:48:in `_call'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/lint.rb:36:in `call'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/showexceptions.rb:24:in `call'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/commonlogger.rb:20:in `call'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:136:in `call'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/chunked.rb:41:in `call'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/content_length.rb:14:in `call'
/rubydir/gems/2.1.0/gems/unicorn-4.6.3/lib/unicorn/http_server.rb:552:in `process_client'
/rubydir/gems/2.1.0/gems/unicorn-4.6.3/lib/unicorn/http_server.rb:632:in `worker_loop'
/rubydir/gems/2.1.0/gems/unicorn-4.6.3/lib/unicorn/http_server.rb:500:in `spawn_missing_workers'
/rubydir/gems/2.1.0/gems/unicorn-4.6.3/lib/unicorn/http_server.rb:142:in `start'
/rubydir/gems/2.1.0/gems/unicorn-4.6.3/bin/unicorn:126:in `<top (required)>'
/b2cdir/bin/unicorn:16:in `load'
/b2cdir/bin/unicorn:16:in `<main>'
ERROR -17/May/2016 10:56:42 [payment-b2c TXN-af2c9519-6e89-4fa2-8913-ee164f53523d REQ-28485d83-47a3-47cc-814d-993dc544697a] - OpenSSL::SSL::SSLError - SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: unknown protocol:
/netdir/http.rb:920:in `connect'
/netdir/http.rb:920:in `block in connect'
/rubydir/2.1.0/timeout.rb:76:in `timeout'
/netdir/http.rb:920:in `connect'
/netdir/http.rb:863:in `do_start'
/netdir/http.rb:852:in `start'
/netdir/http.rb:1369:in `request'
/rubydir/gems/2.1.0/gems/rest-client-1.6.7/lib/restclient/net_http_ext.rb:51:in `request'
/appdir/lib/sc_customer/auth_token.rb:30:in `getToken'
/appdir/controllers/payment_controller.rb:276:in `block (2 levels) in <module:API>'
/rubydir/gems/2.1.0/gems/rack-metrics-0.0.27/lib/probes/sinatra_probe.rb:24:in `call'
/rubydir/gems/2.1.0/gems/rack-metrics-0.0.27/lib/probes/sinatra_probe.rb:24:in `block in bind'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:569:in `call'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:569:in `block in route'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:51:in `[]'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:51:in `block (3 levels) in process_destination_path'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:851:in `route_eval'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:51:in `block (2 levels) in process_destination_path'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:51:in `catch'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:51:in `block in process_destination_path'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:25:in `instance_eval'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:25:in `process_destination_path'
(eval):16:in `block (2 levels) in inject_root_methods'
(eval):6:in `catch'
(eval):6:in `block in inject_root_methods'
/rubydir/gems/2.1.0/gems/http_router-0.10.2/lib/http_router/node/root.rb:554:in `[]'
/rubydir/gems/2.1.0/gems/http_router-0.10.2/lib/http_router/node/root.rb:13:in `[]'
/rubydir/gems/2.1.0/gems/http_router-0.10.2/lib/http_router.rb:119:in `block in call'
/rubydir/gems/2.1.0/gems/http_router-0.10.2/lib/http_router.rb:119:in `catch'
/rubydir/gems/2.1.0/gems/http_router-0.10.2/lib/http_router.rb:119:in `call'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:910:in `route!'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/application/routing.rb:900:in `dispatch!'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:769:in `block in call!'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:921:in `block in invoke'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:921:in `catch'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:921:in `invoke'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:769:in `call!'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:755:in `call'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/logger.rb:15:in `call'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/session/abstract/id.rb:195:in `context'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/session/abstract/id.rb:190:in `call'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/head.rb:9:in `call'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/methodoverride.rb:24:in `call'
/rubydir/gems/2.1.0/gems/sc-core-1.1.36/lib/sc_core/logger.rb:58:in `call'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:1389:in `block in call'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:1471:in `synchronize'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:1389:in `call'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/router.rb:83:in `block in call'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/router.rb:76:in `each'
/rubydir/gems/2.1.0/gems/padrino-core-0.10.5.patched/lib/padrino-core/router.rb:76:in `call'
/rubydir/gems/2.1.0/gems/sc-mq-0.0.86/lib/sc_mq/rack/filter.rb:24:in `call'
/appdir/lib/rack/bu_aware_request_handler.rb:32:in `block in call'
/rubydir/gems/2.1.0/gems/activerecord_use_slave-0.0.5/lib/activerecord_use_slave.rb:44:in `using_connection'
/appdir/lib/rack/bu_aware_request_handler.rb:31:in `call'
/rubydir/gems/2.1.0/gems/sc-core-1.1.36/lib/rack/connection_release.rb:11:in `call'
/rubydir/gems/2.1.0/gems/rack-metrics-0.0.27/lib/rack-metrics/rack.rb:11:in `call'
/rubydir/gems/2.1.0/gems/sc-core-1.1.36/lib/rack/serial_initializer.rb:49:in `call'
/rubydir/gems/2.1.0/gems/sc-core-1.1.36/lib/rack/log_exceptions.rb:11:in `call'
/rubydir/gems/2.1.0/gems/sc-core-1.1.36/lib/rack/transaction_tracer.rb:23:in `call'
/rubydir/gems/2.1.0/gems/sc-core-1.1.36/lib/sc_core/rack/filter.rb:14:in `call'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/lint.rb:48:in `_call'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/lint.rb:36:in `call'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/showexceptions.rb:24:in `call'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/commonlogger.rb:20:in `call'
/rubydir/gems/2.1.0/gems/sinatra-1.3.3/lib/sinatra/base.rb:136:in `call'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/chunked.rb:41:in `call'
/rubydir/gems/2.1.0/gems/rack-1.3.6/lib/rack/content_length.rb:14:in `call'
/rubydir/gems/2.1.0/gems/unicorn-4.6.3/lib/unicorn/http_server.rb:552:in `process_client'
/rubydir/gems/2.1.0/gems/unicorn-4.6.3/lib/unicorn/http_server.rb:632:in `worker_loop'
/rubydir/gems/2.1.0/gems/unicorn-4.6.3/lib/unicorn/http_server.rb:500:in `spawn_missing_workers'
/rubydir/gems/2.1.0/gems/unicorn-4.6.3/lib/unicorn/http_server.rb:142:in `start'
/rubydir/gems/2.1.0/gems/unicorn-4.6.3/bin/unicorn:126:in `<top (required)>'
/b2cdir/bin/unicorn:16:in `load'
/b2cdir/bin/unicorn:16:in `<main>'
DEBUG -17/May/2016 10:56:42 [payment-b2c TXN-af2c9519-6e89-4fa2-8913-ee164f53523d REQ-28485d83-47a3-47cc-814d-993dc544697a] - POST [1.085s DB: 0.009s ( 0.8%) 7 queries] /payments - 500 Internal Server Error
Related
I have a Sinatra Application which has connections to a Cassandra Cluster and to a Postgres. For the Cassandra Connection I'm using the datastax cassandra-driver. As App Server I'm using unicorn.
This is how I open my connection:
configure do
enable :logging
set :show_exceptions, ((ENV['SHOW_EXCEPTIONS'] || 'true') == 'true')
cluster = Cassandra.cluster(
username: ENV['CASSANDRA_USERNAME'],
password: ENV['CASSANDRA_PASSWORD'],
hosts: ENV['CASSANDRA_HOSTS'].split(',')
)
keyspace = 'YYXXXX'
set :session, cluster.connect(keyspace)
Local Everything works (with rackup as dev server), on production i get fatal - no Live threads left. Deadlock?
Do you have a idea whats wrong with my config?
Below you find my stacktrace:
172.31.4.18, 35.156.240.164 - - [23/Jan/2017:20:23:41 +0000] "GET /
HTTP/1.0" 200 1744 0.0071
46.105.28.183 - - [23/Jan/2017:20:23:45 +0000] "GET / HTTP/1.0" 200 1744 0.0066
2017-01-23 20:23:46 - fatal - No live threads left. Deadlock?:
/usr/local/lib/ruby/2.3.0/monitor.rb:111:in `sleep'
/usr/local/lib/ruby/2.3.0/monitor.rb:111:in `wait'
/usr/local/lib/ruby/2.3.0/monitor.rb:111:in `wait'
/usr/local/bundle/gems/cassandra-driver-3.1.0/lib/cassandra/future.rb:616:in `block in get'
/usr/local/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
/usr/local/bundle/gems/cassandra-driver-3.1.0/lib/cassandra/future.rb:607:in `get'
/usr/local/bundle/gems/cassandra-driver-3.1.0/lib/cassandra/future.rb:396:in `get'
/usr/local/bundle/gems/cassandra-driver-3.1.0/lib/cassandra/session.rb:123:in `execute'
/code/voucher_cloud.rb:72:in `block in <class:VoucherCloud>'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:1610:in `call'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:1610:in `block in compile!'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:975:in `block (3 levels) in route!'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:994:in `route_eval'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:975:in `block (2 levels) in route!'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:1015:in `block in process_route'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:1013:in `catch'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:1013:in `process_route'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:973:in `block in route!'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:972:in `each'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:972:in `route!'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:1085:in `block in dispatch!'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in `block in invoke'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in `catch'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in `invoke'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:1082:in `dispatch!'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:907:in `block in call!'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in `block in invoke'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in `catch'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in `invoke'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:907:in `call!'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:895:in `call'
/usr/local/bundle/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:in `call'
/usr/local/bundle/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in `call'
/usr/local/bundle/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:in `call'
/usr/local/bundle/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
/usr/local/bundle/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
/usr/local/bundle/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in `call'
/usr/local/bundle/gems/rack-1.6.5/lib/rack/logger.rb:15:in `call'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:212:in `call'
/usr/local/bundle/gems/rack-1.6.5/lib/rack/head.rb:13:in `call'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:182:in `call'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:2013:in `call'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:1487:in `block in call'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:1787:in `synchronize'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:1487:in `call'
/usr/local/bundle/gems/rack-1.6.5/lib/rack/tempfile_reaper.rb:15:in `call'
/usr/local/bundle/gems/rack-1.6.5/lib/rack/lint.rb:49:in `_call'
/usr/local/bundle/gems/rack-1.6.5/lib/rack/lint.rb:37:in `call'
/usr/local/bundle/gems/rack-1.6.5/lib/rack/showexceptions.rb:24:in `call'
/usr/local/bundle/gems/rack-1.6.5/lib/rack/commonlogger.rb:33:in `call'
/usr/local/bundle/gems/sinatra-1.4.7/lib/sinatra/base.rb:219:in `call'
/usr/local/bundle/gems/rack-1.6.5/lib/rack/chunked.rb:54:in `call'
/usr/local/bundle/gems/rack-1.6.5/lib/rack/content_length.rb:15:in `call'
/usr/local/bundle/gems/unicorn-5.2.0/lib/unicorn/http_server.rb:562:in `process_client'
/usr/local/bundle/gems/unicorn-5.2.0/lib/unicorn/http_server.rb:658:in `worker_loop'
/usr/local/bundle/gems/unicorn-5.2.0/lib/unicorn/http_server.rb:508:in `spawn_missing_workers'
/usr/local/bundle/gems/unicorn-5.2.0/lib/unicorn/http_server.rb:132:in `start'
/usr/local/bundle/gems/unicorn-5.2.0/bin/unicorn:126:in `<top (required)>'
/usr/local/bundle/bin/unicorn:22:in `load'
/usr/local/bundle/bin/unicorn:22:in `<main>'
The DataStax Ruby driver documentation mentions that deadlock can occur when "using a framework, server or runtime that forks and you call Client.connect in the parent process".
I just upgrade to ruby 2.3 in order to take benefits of the frozen_string_literal option but it produce me the error Errno::EMFILE: Too many open files in production.
When I downgrade to ruby 2.2.3, no more errors.
Here is one of the ruby 2.3 error calltrace I have :
Errno::EMFILE: Too many open files - socket(2) for "XX.XXX.XX.XXX" port 9200 (XX.XXX.XX.XXX:9200)
/.../production/shared/bundle/ruby/2.3.0/gems/httpclient-2.7.1/lib/httpclient/session.rb:597:in `initialize'
/.../production/shared/bundle/ruby/2.3.0/gems/httpclient-2.7.1/lib/httpclient/session.rb:597:in `new'
/.../production/shared/bundle/ruby/2.3.0/gems/httpclient-2.7.1/lib/httpclient/session.rb:597:in `create_socket'
/.../production/shared/bundle/ruby/2.3.0/gems/httpclient-2.7.1/lib/httpclient/session.rb:742:in `block in connect'
/.../.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/timeout.rb:91:in `block in timeout'
/.../.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/timeout.rb:101:in `timeout'
/.../production/shared/bundle/ruby/2.3.0/gems/httpclient-2.7.1/lib/httpclient/session.rb:735:in `connect'
/.../production/shared/bundle/ruby/2.3.0/gems/httpclient-2.7.1/lib/httpclient/session.rb:497:in `query'
/.../production/shared/bundle/ruby/2.3.0/gems/httpclient-2.7.1/lib/httpclient/session.rb:170:in `query'
/.../production/shared/bundle/ruby/2.3.0/gems/httpclient-2.7.1/lib/httpclient.rb:1238:in `do_get_block'
/.../production/shared/bundle/ruby/2.3.0/gems/httpclient-2.7.1/lib/httpclient.rb:1021:in `block in do_request'
/.../production/shared/bundle/ruby/2.3.0/gems/httpclient-2.7.1/lib/httpclient.rb:1129:in `protect_keep_alive_disconnected'
/.../production/shared/bundle/ruby/2.3.0/gems/httpclient-2.7.1/lib/httpclient.rb:1016:in `do_request'
/.../production/shared/bundle/ruby/2.3.0/gems/httpclient-2.7.1/lib/httpclient.rb:858:in `request'
/.../production/shared/bundle/ruby/2.3.0/gems/faraday-0.9.2/lib/faraday/adapter/httpclient.rb:36:in `call'
/.../production/shared/bundle/ruby/2.3.0/gems/faraday-0.9.2/lib/faraday/rack_builder.rb:139:in `build_response'
/.../production/shared/bundle/ruby/2.3.0/gems/faraday-0.9.2/lib/faraday/connection.rb:377:in `run_request'
/.../production/shared/bundle/ruby/2.3.0/bundler/gems/elasticsearch-ruby-a5ed3f6aa679/elasticsearch-transport/lib/elasticsearch/transport/transport/http/faraday.rb:21:in `block in perform_request'
/.../production/shared/bundle/ruby/2.3.0/bundler/gems/elasticsearch-ruby-a5ed3f6aa679/elasticsearch-transport/lib/elasticsearch/transport/transport/base.rb:201:in `perform_request'
/.../production/shared/bundle/ruby/2.3.0/bundler/gems/elasticsearch-ruby-a5ed3f6aa679/elasticsearch-transport/lib/elasticsearch/transport/transport/http/faraday.rb:20:in `perform_request'
/.../production/shared/bundle/ruby/2.3.0/bundler/gems/elasticsearch-ruby-a5ed3f6aa679/elasticsearch-transport/lib/elasticsearch/transport/client.rb:125:in `perform_request'
/.../production/shared/bundle/ruby/2.3.0/bundler/gems/elasticsearch-ruby-a5ed3f6aa679/elasticsearch-api/lib/elasticsearch/api/actions/index.rb:99:in `index'
/.../production/shared/bundle/ruby/2.3.0/bundler/gems/elasticsearch-rails-489ab24998a8/elasticsearch-model/lib/elasticsearch/model/indexing.rb:336:in `index_document'
/.../production/releases/20160128001123/app/models/concerns/elastic_search/searchable.rb:12:in `block (3 levels) in '
/.../production/releases/20160128001123/app/jobs/elasticsearch_job.rb:9:in `perform'
/.../production/shared/bundle/ruby/2.3.0/gems/activejob-4.2.5.1/lib/active_job/execution.rb:32:in `block in perform_now'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:117:in `call'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:555:in `block (2 levels) in compile'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:505:in `call'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:498:in `block (2 levels) in around'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:343:in `block (2 levels) in simple'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:441:in `instance_exec'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:441:in `block in make_lambda'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:342:in `block in simple'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:497:in `block in around'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:505:in `call'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:498:in `block (2 levels) in around'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:343:in `block (2 levels) in simple'
/.../production/shared/bundle/ruby/2.3.0/gems/i18n-0.7.0/lib/i18n.rb:257:in `with_locale'
/.../production/shared/bundle/ruby/2.3.0/gems/activejob-4.2.5.1/lib/active_job/translation.rb:7:in `block (2 levels) in '
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:441:in `instance_exec'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:441:in `block in make_lambda'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:342:in `block in simple'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:497:in `block in around'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:505:in `call'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:498:in `block (2 levels) in around'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:343:in `block (2 levels) in simple'
/.../production/shared/bundle/ruby/2.3.0/gems/activejob-4.2.5.1/lib/active_job/logging.rb:23:in `block (4 levels) in '
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/notifications.rb:164:in `block in instrument'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/notifications.rb:164:in `instrument'
/.../production/shared/bundle/ruby/2.3.0/gems/activejob-4.2.5.1/lib/active_job/logging.rb:22:in `block (3 levels) in '
/.../production/shared/bundle/ruby/2.3.0/gems/activejob-4.2.5.1/lib/active_job/logging.rb:43:in `block in tag_logger'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/tagged_logging.rb:68:in `block in tagged'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/tagged_logging.rb:26:in `tagged'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/tagged_logging.rb:68:in `tagged'
/.../production/shared/bundle/ruby/2.3.0/gems/activejob-4.2.5.1/lib/active_job/logging.rb:43:in `tag_logger'
/.../production/shared/bundle/ruby/2.3.0/gems/activejob-4.2.5.1/lib/active_job/logging.rb:19:in `block (2 levels) in '
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:441:in `instance_exec'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:441:in `block in make_lambda'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:342:in `block in simple'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:497:in `block in around'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:505:in `call'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:92:in `__run_callbacks__'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:778:in `_run_perform_callbacks'
/.../production/shared/bundle/ruby/2.3.0/gems/activesupport-4.2.5.1/lib/active_support/callbacks.rb:81:in `run_callbacks'
/.../production/shared/bundle/ruby/2.3.0/gems/activejob-4.2.5.1/lib/active_job/execution.rb:31:in `perform_now'
/.../production/shared/bundle/ruby/2.3.0/gems/activejob-4.2.5.1/lib/active_job/execution.rb:21:in `execute'
/.../production/shared/bundle/ruby/2.3.0/gems/activejob-4.2.5.1/lib/active_job/queue_adapters/sidekiq_adapter.rb:42:in `perform'
/.../production/shared/bundle/ruby/2.3.0/gems/sidekiq-3.5.4/lib/sidekiq/processor.rb:80:in `execute_job'
/.../production/shared/bundle/ruby/2.3.0/gems/sidekiq-3.5.4/lib/sidekiq/processor.rb:56:in `block (2 levels) in process'
/.../production/shared/bundle/ruby/2.3.0/gems/sidekiq-3.5.4/lib/sidekiq/middleware/chain.rb:127:in `block in invoke'
/.../production/shared/bundle/ruby/2.3.0/gems/sidekiq-3.5.4/lib/sidekiq/middleware/chain.rb:129:in `block in invoke'
/.../production/shared/bundle/ruby/2.3.0/gems/sidekiq-3.5.4/lib/sidekiq/middleware/server/active_record.rb:6:in `call'
/.../production/shared/bundle/ruby/2.3.0/gems/sidekiq-3.5.4/lib/sidekiq/middleware/chain.rb:129:in `block in invoke'
/.../production/shared/bundle/ruby/2.3.0/gems/sidekiq-3.5.4/lib/sidekiq/middleware/server/retry_jobs.rb:74:in `call'
/.../production/shared/bundle/ruby/2.3.0/gems/sidekiq-3.5.4/lib/sidekiq/middleware/chain.rb:129:in `block in invoke'
/.../production/shared/bundle/ruby/2.3.0/gems/sidekiq-failures-0.4.5/lib/sidekiq/failures/middleware.rb:9:in `call'
/.../production/shared/bundle/ruby/2.3.0/gems/sidekiq-3.5.4/lib/sidekiq/middleware/chain.rb:129:in `block in invoke'
/.../production/shared/bundle/ruby/2.3.0/gems/sidekiq-3.5.4/lib/sidekiq/middleware/server/logging.rb:11:in `block in call'
/.../production/shared/bundle/ruby/2.3.0/gems/sidekiq-3.5.4/lib/sidekiq/logging.rb:30:in `with_context'
/.../production/shared/bundle/ruby/2.3.0/gems/sidekiq-3.5.4/lib/sidekiq/middleware/server/logging.rb:7:in `call'
/.../production/shared/bundle/ruby/2.3.0/gems/sidekiq-3.5.4/lib/sidekiq/middleware/chain.rb:129:in `block in invoke'
/.../production/shared/bundle/ruby/2.3.0/gems/sidekiq-3.5.4/lib/sidekiq/middleware/chain.rb:132:in `invoke'
/.../production/shared/bundle/ruby/2.3.0/gems/sidekiq-3.5.4/lib/sidekiq/processor.rb:51:in `block in process'
/.../production/shared/bundle/ruby/2.3.0/gems/sidekiq-3.5.4/lib/sidekiq/processor.rb:104:in `stats'
/.../production/shared/bundle/ruby/2.3.0/gems/sidekiq-3.5.4/lib/sidekiq/processor.rb:50:in `process'
/.../production/shared/bundle/ruby/2.3.0/gems/celluloid-0.17.3/lib/celluloid/calls.rb:28:in `public_send'
/.../production/shared/bundle/ruby/2.3.0/gems/celluloid-0.17.3/lib/celluloid/calls.rb:28:in `dispatch'
/.../production/shared/bundle/ruby/2.3.0/gems/celluloid-0.17.3/lib/celluloid/call/async.rb:7:in `dispatch'
/.../production/shared/bundle/ruby/2.3.0/gems/celluloid-0.17.3/lib/celluloid/cell.rb:50:in `block in dispatch'
/.../production/shared/bundle/ruby/2.3.0/gems/celluloid-0.17.3/lib/celluloid/cell.rb:76:in `block in task'
/.../production/shared/bundle/ruby/2.3.0/gems/celluloid-0.17.3/lib/celluloid/actor.rb:339:in `block in task'
/.../production/shared/bundle/ruby/2.3.0/gems/celluloid-0.17.3/lib/celluloid/task.rb:44:in `block in initialize'
/.../production/shared/bundle/ruby/2.3.0/gems/celluloid-0.17.3/lib/celluloid/task/fibered.rb:14:in `block in create'
I did not find someone with this concern on the ruby bug tracker nor on stackoverflow and the ruby 2.3 is recent (<2 months).
How can I deal with this?
Bellow are some parts of my code:
class VizApp < Sinatra::Base
get '/rubygems' do
#process_downloads_days = HTTParty.get('http://localhost:4567/api/v1/rubygems/version_downloads_days_process', timeout: 180)
#version_downloads = HTTParty.get('http://localhost:4567/api/v1/rubygems/version_downloads')
#version_downloads_days = HTTParty.get('http://localhost:4567/api/v1/rubygems/version_downloads_days')
#version_downloads_stack = HTTParty.get('http://localhost:4567/api/v1/rubygems/version_downloads_stack')
#version_downloads_nest_drilldown = HTTParty.get('http://localhost:4567/api/v1/rubygems/version_downloads_nest')
erb :rubygems
end
What I do is calling the api that I wrote in the same project. When I using WEBrick as my web server, everything goes ok. However, when I change the web server to Thin, I get following error:
Net::ReadTimeout - Net::ReadTimeout: /Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/2.3.0/net/protocol.rb:158:in `rescue in rbuf_fill'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/2.3.0/net/protocol.rb:152:in `rbuf_fill'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/2.3.0/net/protocol.rb:134:in `readuntil'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/2.3.0/net/protocol.rb:144:in `readline'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/2.3.0/net/http/response.rb:39:in `read_status_line'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/2.3.0/net/http/response.rb:28:in `read_new'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/2.3.0/net/http.rb:1423:in `block in transport_request'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/2.3.0/net/http.rb:1420:in `catch'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/2.3.0/net/http.rb:1420:in `transport_request'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/2.3.0/net/http.rb:1393:in `request'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/2.3.0/net/http.rb:1386:in `block in request'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/2.3.0/net/http.rb:853:in `start'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/2.3.0/net/http.rb:1384:in `request'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/httparty-0.13.7/lib/httparty/request.rb:117:in `perform'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/httparty-0.13.7/lib/httparty.rb:545:in `perform_request'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/httparty-0.13.7/lib/httparty.rb:476:in `get'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/httparty-0.13.7/lib/httparty.rb:583:in `get'
/Users/chenlizhan/Desktop/Lee/Projects/repo-miner/visualization/app.rb:39:in `block in <class:VizApp>'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1610:in `call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1610:in `block in compile!'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:974:in `[]'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:974:in `block (3 levels) in route!'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:993:in `route_eval'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:974:in `block (2 levels) in route!'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1014:in `block in process_route'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1012:in `catch'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1012:in `process_route'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:972:in `block in route!'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:971:in `each'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:971:in `route!'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1084:in `block in dispatch!'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `block in invoke'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `catch'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `invoke'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1081:in `dispatch!'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:906:in `block in call!'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `block in invoke'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `catch'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `invoke'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:906:in `call!'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:894:in `call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:in `call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in `call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:in `call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in `call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/rack-1.6.4/lib/rack/nulllogger.rb:9:in `call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/rack-1.6.4/lib/rack/head.rb:13:in `call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/show_exceptions.rb:21:in `call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:181:in `call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:2021:in `call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1486:in `block in call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1795:in `synchronize'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1486:in `call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/rack-1.6.4/lib/rack/tempfile_reaper.rb:15:in `call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/rack-1.6.4/lib/rack/lint.rb:49:in `_call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/rack-1.6.4/lib/rack/lint.rb:37:in `call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/rack-1.6.4/lib/rack/showexceptions.rb:24:in `call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/rack-1.6.4/lib/rack/commonlogger.rb:33:in `call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:218:in `call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/rack-1.6.4/lib/rack/chunked.rb:54:in `call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/rack-1.6.4/lib/rack/content_length.rb:15:in `call'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/thin-1.6.3/lib/thin/connection.rb:86:in `block in pre_process'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/thin-1.6.3/lib/thin/connection.rb:84:in `catch'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/thin-1.6.3/lib/thin/connection.rb:84:in `pre_process'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/thin-1.6.3/lib/thin/connection.rb:53:in `process'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/thin-1.6.3/lib/thin/connection.rb:39:in `receive_data'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/eventmachine-1.0.7/lib/eventmachine.rb:187:in `run_machine'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/eventmachine-1.0.7/lib/eventmachine.rb:187:in `run'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/thin-1.6.3/lib/thin/backends/base.rb:73:in `start'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/thin-1.6.3/lib/thin/server.rb:162:in `start'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/rack-1.6.4/lib/rack/handler/thin.rb:19:in `run'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/rack-1.6.4/lib/rack/server.rb:286:in `start'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/rack-1.6.4/lib/rack/server.rb:147:in `start'
/Users/chenlizhan/.rvm/rubies/ruby-head/lib/ruby/gems/2.3.0/gems/rack-1.6.4/bin/rackup:4:in `<top (required)>'
/Users/chenlizhan/.rvm/gems/ruby-head/bin/rackup:23:in `load'
/Users/chenlizhan/.rvm/gems/ruby-head/bin/rackup:23:in `<main>'
/Users/chenlizhan/.rvm/gems/ruby-head/bin/ruby_executable_hooks:15:in `eval'
/Users/chenlizhan/.rvm/gems/ruby-head/bin/ruby_executable_hooks:15:in `<main>'
Anyone has the similar problems as me? Please give me a help, thanks!
I would create a thin.yml file within /config and then set timeout: 90 or play around with a value that you find best.
You can then specify the config file when you execute thin via thin -C config/thin.yml
I have a bunch of numbers in a table with parent/child relationships. I have a column called 'parent_id' that i'm using to match to the parent number's 'id' column. Issue is, i'm getting a NoMethodError - undefined method `id' for nil:NilClass: when trying to find by 'parent_id'
app.rb
number = Number.find_by_twilio_sid(params[:sid])
forward = Number.find_by_parent_id(number.id)
erb "#{forward.name}"
It gets caught up on the second line when I call the id from the found number. Here is the terminal response:
NoMethodError - undefined method `id' for nil:NilClass:
/Users/chadsakonchick/Projects/cloud-phone/lib/voice.rb:52:in `block in <top (required)>'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1603:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1603:in `block in compile!'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `[]'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `block (3 levels) in route!'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:985:in `route_eval'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `block (2 levels) in route!'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1006:in `block in process_route'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1004:in `catch'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1004:in `process_route'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:964:in `block in route!'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:963:in `each'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:963:in `route!'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1076:in `block in dispatch!'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `block in invoke'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `catch'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `invoke'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1073:in `dispatch!'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:898:in `block in call!'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `block in invoke'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `catch'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `invoke'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:898:in `call!'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:886:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-1.6.0.beta/lib/rack/session/abstract/id.rb:225:in `context'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-1.6.0.beta/lib/rack/session/abstract/id.rb:220:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-1.6.0.beta/lib/rack/logger.rb:15:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-1.6.0.beta/lib/rack/commonlogger.rb:33:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:217:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:210:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-1.6.0.beta/lib/rack/head.rb:13:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-1.6.0.beta/lib/rack/methodoverride.rb:22:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/show_exceptions.rb:21:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:180:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:2014:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in `block in call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1788:in `synchronize'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-1.6.0.beta/lib/rack/handler/webrick.rb:89:in `service'
/Users/chadsakonchick/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:138:in `service'
/Users/chadsakonchick/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:94:in `run'
/Users/chadsakonchick/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/server.rb:295:in `block in start_thread'
[2014-11-12 22:44:14] ERROR NoMethodError: undefined method `join' for #<String:0x007fd013edcc28>
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/show_exceptions.rb:37:in `rescue in call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/show_exceptions.rb:21:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:180:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:2014:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in `block in call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1788:in `synchronize'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-1.6.0.beta/lib/rack/handler/webrick.rb:89:in `service'
/Users/chadsakonchick/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:138:in `service'
/Users/chadsakonchick/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:94:in `run'
/Users/chadsakonchick/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/server.rb:295:in `block in start_thread'
localhost - - [12/Nov/2014:22:44:14 CST] "GET /forward/A9R0cadcba83424fdead5602dzQbb83e61 HTTP/1.1" 500 347
- -> /forward/A9R0cadcba83424fdead5602dzQbb83e61
This means there is no entry in you Number table with specified twilio_sid.
there are multiple method to avoid this error:
One is:
number = Number.find_by_twilio_sid(params[:sid])
forward_name = Number.find_by_parent_id(number.try(:id)).try(:name)
erb "#{forward_name}"
Big fan of using twilio-rb over twilio-ruby, but i'm stuck when trying to provide the Twilio subaccount's friendly_name to request the account_sid.
app.rb
Twilio::Config.setup \
:account_sid => '[MAIN ACCOUNT_SID]',
:auth_token => '[AUTH_TOKEN]'
subaccount.rb
post '/subaccount/create' do
Twilio::Account.create :friendly_name => params[:friendly_name]
account = Twilio::Account.find :friendly_name => params[:friendly_name]
#subaccount = Subaccount.new
#subaccount.friendly_name = params[:friendly_name]
#subaccount.account_sid = account.sid
if #subaccount.save
redirect '/subaccount/create'
else
erb 'There has been an error saving.'
end
end
It creates the subaccount in Twilio just fine, it does not however find the subaccount with the friendly_name.
When I break this down further, I have a subaccount named 'hello' and I want the SID for it:
account = Twilio::Account.find :friendly_name => "hello"
puts account.sid
This is what is returned in the Terminal
Called from: /Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-1.6.0.beta/lib/rack/builder.rb:86:in `new'.
URI::InvalidURIError - bad URI(is not URI?): /Accounts/{:friendly_name=>"hello"}.json:
/Users/chadsakonchick/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/uri/common.rb:176:in `split'
/Users/chadsakonchick/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/uri/common.rb:211:in `parse'
/Users/chadsakonchick/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/uri/common.rb:747:in `parse'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/httparty-0.10.2/lib/httparty/request.rb:44:in `path='
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/httparty-0.10.2/lib/httparty/request.rb:33:in `initialize'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/httparty-0.10.2/lib/httparty.rb:456:in `new'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/httparty-0.10.2/lib/httparty.rb:456:in `perform_request'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/httparty-0.10.2/lib/httparty.rb:398:in `get'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/twilio-rb-2.3.0/lib/twilio/resource.rb:116:in `block (2 levels) in singleton class'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/twilio-rb-2.3.0/lib/twilio/finder.rb:9:in `find'
/Users/chadsakonchick/Projects/cloud-phone/lib/subaccounts.rb:27:in `block in <top (required)>'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1603:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1603:in `block in compile!'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `[]'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `block (3 levels) in route!'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:985:in `route_eval'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `block (2 levels) in route!'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1006:in `block in process_route'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1004:in `catch'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1004:in `process_route'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:964:in `block in route!'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:963:in `each'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:963:in `route!'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1076:in `block in dispatch!'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `block in invoke'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `catch'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `invoke'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1073:in `dispatch!'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:898:in `block in call!'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `block in invoke'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `catch'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1058:in `invoke'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:898:in `call!'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:886:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-1.6.0.beta/lib/rack/session/abstract/id.rb:225:in `context'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-1.6.0.beta/lib/rack/session/abstract/id.rb:220:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-1.6.0.beta/lib/rack/logger.rb:15:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-1.6.0.beta/lib/rack/commonlogger.rb:33:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:217:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:210:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-1.6.0.beta/lib/rack/head.rb:13:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-1.6.0.beta/lib/rack/methodoverride.rb:22:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/show_exceptions.rb:21:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:180:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:2014:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in `block in call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1788:in `synchronize'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-1.6.0.beta/lib/rack/handler/webrick.rb:89:in `service'
/Users/chadsakonchick/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:138:in `service'
/Users/chadsakonchick/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:94:in `run'
/Users/chadsakonchick/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/server.rb:295:in `block in start_thread'
[2014-11-07 18:22:32] ERROR NoMethodError: undefined method `join' for #<String:0x007fc7548fa570>
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/show_exceptions.rb:37:in `rescue in call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/show_exceptions.rb:21:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:180:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:2014:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in `block in call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1788:in `synchronize'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1478:in `call'
/Users/chadsakonchick/.rvm/gems/ruby-2.1.2/gems/rack-1.6.0.beta/lib/rack/handler/webrick.rb:89:in `service'
/Users/chadsakonchick/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:138:in `service'
/Users/chadsakonchick/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:94:in `run'
/Users/chadsakonchick/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/server.rb:295:in `block in start_thread'
localhost - - [07/Nov/2014:18:22:32 CST] "GET /subaccount/twilio-rb/hello HTTP/1.1" 500 340
Try this:
account = Twilio::Account.all :friendly_name => "hello"
puts account[0].sid
It took me a few minutes of digging in the twilio-rb gem, it's the Finder class that is being included into the Account class that does the work. In this scenario we want to use the API List resource which Stevie and co supported with the all method with a filter parameter.
Using the find method requires the account SID, and doesn't seem to support parameters. I think it might be worth making a pull request to add this to the documentation, as it's not obvious.
Update
See above as I added the [0] indexer to account as this is an Array.