我的应用程序工作正常,直到几分钟前,我收到以下错误:
Faraday::ConnectionFailed in Devise::SessionsController#create
Failed to open TCP connection to localhost:9200 (Connection refused - connect(2) for "localhost" port 9200)
我尝试搜索,发现这可能与 Elasticsearch 有关。所以我做了以下事情:
$ curl localhost:9200
curl: (7) Failed to connect to localhost port 9200: Connection refused
$ brew services start elasticsearch
Service `elasticsearch` already started, use `brew services restart elasticsearch` to restart.
什么都没有改变,它仍然不起作用。
我猜这个问题可能有多个根源。有人知道如何调查和解决这个问题吗? 应用程序的其余部分运行良好,但与模型中的 searchkick 相关的所有内容都会产生该问题。
下面是来自控制台的日志:
Processing by Devise::SessionsController#destroy as HTML
Parameters: {"authenticity_token"=>"uaT1nvIHefWongRLepHPoXy5h5gihEh+0ymBaujsenamdkis/lRiB2Yhnsbnr6xkmDPRwJDURXvV9NSm8A==", "locale"=>"en"}
User Load (0.5ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2 [["id", "2c99733a-4ae0-42f8-97ba-9e4287d7c1cf"], ["LIMIT", 1]]
(0.2ms) BEGIN
ActsAsTaggableOn::Tagging Load (0.4ms) SELECT "taggings".* FROM "taggings" WHERE "taggings"."taggable_id" = $1 AND "taggings"."taggable_type" = $2 [["taggable_id", 2], ["taggable_type", "User"]]
(0.2ms) COMMIT
User Store (7.1ms) {"id":"2c99893a-4ae0-47f8-97ba-9e4487d7c1cf","exception":["Faraday::ConnectionFailed","Failed to open TCP connection to localhost:9200 (Connection refused - connect(2) for \"localhost\" port 9200)"],"exception_object":"Failed to open TCP connection to localhost:9200 (Connection refused - connect(2) for \"localhost\" port 9200)"}
Completed 500 Internal Server Error in 16ms (Searchkick: 7.1ms | ActiveRecord: 1.2ms)
Faraday::ConnectionFailed (Failed to open TCP connection to localhost:9200 (Connection refused - connect(2) for "localhost" port 9200)):
/Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/net/http.rb:939:in `rescue in block in connect'
/Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/net/http.rb:936:in `block in connect'
/Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/timeout.rb:93:in `block in timeout'
/Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/timeout.rb:103:in `timeout'
/Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/net/http.rb:935:in `connect'
/Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/net/http.rb:920:in `do_start'
/Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/net/http.rb:909:in `start'
/Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/net/http.rb:1455:in `request'
faraday (0.15.4) lib/faraday/adapter/net_http.rb:87:in `perform_request'
faraday (0.15.4) lib/faraday/adapter/net_http.rb:43:in `block in call'
faraday (0.15.4) lib/faraday/adapter/net_http.rb:92:in `with_net_http_connection'
faraday (0.15.4) lib/faraday/adapter/net_http.rb:38:in `call'
searchkick (3.1.2) lib/searchkick/middleware.rb:9:in `call'
faraday (0.15.4) lib/faraday/rack_builder.rb:143:in `build_response'
faraday (0.15.4) lib/faraday/connection.rb:387:in `run_request'
elasticsearch-transport (6.2.0) lib/elasticsearch/transport/transport/http/faraday.rb:23:in `block in perform_request'
elasticsearch-transport (6.2.0) lib/elasticsearch/transport/transport/base.rb:266:in `perform_request'
elasticsearch-transport (6.2.0) lib/elasticsearch/transport/transport/http/faraday.rb:20:in `perform_request'
elasticsearch-transport (6.2.0) lib/elasticsearch/transport/client.rb:143:in `perform_request'
elasticsearch-api (6.2.0) lib/elasticsearch/api/actions/bulk.rb:85:in `bulk'
searchkick (3.1.2) lib/searchkick/indexer.rb:18:in `perform'
searchkick (3.1.2) lib/searchkick/logging.rb:126:in `perform'
searchkick (3.1.2) lib/searchkick/indexer.rb:11:in `queue'
searchkick (3.1.2) lib/searchkick/bulk_indexer.rb:43:in `bulk_index'
searchkick (3.1.2) lib/searchkick/index.rb:125:in `store'
searchkick (3.1.2) lib/searchkick/logging.rb:28:in `block in store'
activesupport (5.1.6.2) lib/active_support/notifications.rb:166:in `block in instrument'
activesupport (5.1.6.2) lib/active_support/notifications/instrumenter.rb:21:in `instrument'
activesupport (5.1.6.2) lib/active_support/notifications.rb:166:in `instrument'
searchkick (3.1.2) lib/searchkick/logging.rb:27:in `store'
searchkick (3.1.2) lib/searchkick/record_indexer.rb:74:in `reindex_record'
searchkick (3.1.2) lib/searchkick/record_indexer.rb:51:in `reindex'
searchkick (3.1.2) lib/searchkick/model.rb:78:in `reindex'
activesupport (5.1.6.2) lib/active_support/callbacks.rb:413:in `block in make_lambda'
activesupport (5.1.6.2) lib/active_support/callbacks.rb:260:in `block in conditional'
activesupport (5.1.6.2) lib/active_support/callbacks.rb:511:in `block in invoke_after'
activesupport (5.1.6.2) lib/active_support/callbacks.rb:511:in `each'
activesupport (5.1.6.2) lib/active_support/callbacks.rb:511:in `invoke_after'
activesupport (5.1.6.2) lib/active_support/callbacks.rb:132:in `run_callbacks'
activesupport (5.1.6.2) lib/active_support/callbacks.rb:827:in `_run_commit_callbacks'
activerecord (5.1.6.2) lib/active_record/transactions.rb:343:in `committed!'
activerecord (5.1.6.2) lib/active_record/connection_adapters/abstract/transaction.rb:86:in `commit_records'
activerecord (5.1.6.2) lib/active_record/connection_adapters/abstract/transaction.rb:178:in `block in commit_transaction'
/Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
activerecord (5.1.6.2) lib/active_record/connection_adapters/abstract/transaction.rb:168:in `commit_transaction'
activerecord (5.1.6.2) lib/active_record/connection_adapters/abstract/transaction.rb:207:in `block in within_new_transaction'
/Users/etiennelandro/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
activerecord (5.1.6.2) lib/active_record/connection_adapters/abstract/transaction.rb:191:in `within_new_transaction'
activerecord (5.1.6.2) lib/active_record/connection_adapters/abstract/database_statements.rb:235:in `transaction'
activerecord (5.1.6.2) lib/active_record/transactions.rb:210:in `transaction'
activerecord (5.1.6.2) lib/active_record/transactions.rb:381:in `with_transaction_returning_status'
activerecord (5.1.6.2) lib/active_record/transactions.rb:308:in `block in save'
activerecord (5.1.6.2) lib/active_record/transactions.rb:323:in `rollback_active_record_state!'
activerecord (5.1.6.2) lib/active_record/transactions.rb:307:in `save'
activerecord (5.1.6.2) lib/active_record/suppressor.rb:42:in `save'
devise (4.6.1) lib/devise/models/rememberable.rb:62:in `forget_me!'
devise (4.6.1) lib/devise/controllers/rememberable.rb:32:in `forget_me'
devise (4.6.1) lib/devise/hooks/forgetable.rb:9:in `block in <top (required)>'
warden (1.2.8) lib/warden/hooks.rb:15:in `block in _run_callbacks'
warden (1.2.8) lib/warden/hooks.rb:10:in `each'
warden (1.2.8) lib/warden/hooks.rb:10:in `_run_callbacks'
warden (1.2.8) lib/warden/manager.rb:52:in `_run_callbacks'
warden (1.2.8) lib/warden/proxy.rb:274:in `block in logout'
warden (1.2.8) lib/warden/proxy.rb:272:in `each'
warden (1.2.8) lib/warden/proxy.rb:272:in `logout'
devise (4.6.1) lib/devise/controllers/sign_in_out.rb:98:in `sign_out_all_scopes'
devise (4.6.1) lib/devise/controllers/sign_in_out.rb:81:in `sign_out'
devise (4.6.1) app/controllers/devise/sessions_controller.rb:28:in `destroy'
actionpack (5.1.6.2) lib/action_controller/metal/basic_implicit_render.rb:4:in `send_action'
actionpack (5.1.6.2) lib/abstract_controller/base.rb:186:in `process_action'
actionpack (5.1.6.2) lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack (5.1.6.2) lib/abstract_controller/callbacks.rb:20:in `block in process_action'
activesupport (5.1.6.2) lib/active_support/callbacks.rb:131:in `run_callbacks'
actionpack (5.1.6.2) lib/abstract_controller/callbacks.rb:19:in `process_action'
actionpack (5.1.6.2) lib/action_controller/metal/rescue.rb:20:in `process_action'
actionpack (5.1.6.2) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
activesupport (5.1.6.2) lib/active_support/notifications.rb:166:in `block in instrument'
activesupport (5.1.6.2) lib/active_support/notifications/instrumenter.rb:21:in `instrument'
activesupport (5.1.6.2) lib/active_support/notifications.rb:166:in `instrument'
actionpack (5.1.6.2) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (5.1.6.2) lib/action_controller/metal/params_wrapper.rb:252:in `process_action'
searchkick (3.1.2) lib/searchkick/logging.rb:209:in `process_action'
activerecord (5.1.6.2) lib/active_record/railties/controller_runtime.rb:22:in `process_action'
actionpack (5.1.6.2) lib/abstract_controller/base.rb:124:in `process'
actionview (5.1.6.2) lib/action_view/rendering.rb:30:in `process'
actionpack (5.1.6.2) lib/action_controller/metal.rb:189:in `dispatch'
actionpack (5.1.6.2) lib/action_controller/metal.rb:253:in `dispatch'
actionpack (5.1.6.2) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack (5.1.6.2) lib/action_dispatch/routing/route_set.rb:31:in `serve'
actionpack (5.1.6.2) lib/action_dispatch/routing/mapper.rb:16:in `block in <class:Constraints>'
actionpack (5.1.6.2) lib/action_dispatch/routing/mapper.rb:46:in `serve'
actionpack (5.1.6.2) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (5.1.6.2) lib/action_dispatch/journey/router.rb:33:in `each'
actionpack (5.1.6.2) lib/action_dispatch/journey/router.rb:33:in `serve'
actionpack (5.1.6.2) lib/action_dispatch/routing/route_set.rb:844:in `call'
warden (1.2.8) lib/warden/manager.rb:36:in `block in call'
warden (1.2.8) lib/warden/manager.rb:34:in `catch'
warden (1.2.8) lib/warden/manager.rb:34:in `call'
rack (2.0.6) lib/rack/etag.rb:25:in `call'
rack (2.0.6) lib/rack/conditional_get.rb:38:in `call'
rack (2.0.6) lib/rack/head.rb:12:in `call'
rack (2.0.6) lib/rack/session/abstract/id.rb:232:in `context'
rack (2.0.6) lib/rack/session/abstract/id.rb:226:in `call'
actionpack (5.1.6.2) lib/action_dispatch/middleware/cookies.rb:613:in `call'
activerecord (5.1.6.2) lib/active_record/migration.rb:556:in `call'
actionpack (5.1.6.2) lib/action_dispatch/middleware/callbacks.rb:26:in `block in call'
activesupport (5.1.6.2) lib/active_support/callbacks.rb:97:in `run_callbacks'
actionpack (5.1.6.2) lib/action_dispatch/middleware/callbacks.rb:24:in `call'
actionpack (5.1.6.2) lib/action_dispatch/middleware/executor.rb:12:in `call'
rollbar (2.19.2) lib/rollbar/middleware/rails/rollbar.rb:24:in `block in call'
rollbar (2.19.2) lib/rollbar.rb:146:in `scoped'
rollbar (2.19.2) lib/rollbar/middleware/rails/rollbar.rb:22:in `call'
actionpack (5.1.6.2) lib/action_dispatch/middleware/debug_exceptions.rb:59:in `call'
rollbar (2.19.2) lib/rollbar/middleware/rails/show_exceptions.rb:22:in `call_with_rollbar'
web-console (3.7.0) lib/web_console/middleware.rb:135:in `call_app'
web-console (3.7.0) lib/web_console/middleware.rb:22:in `block in call'
web-console (3.7.0) lib/web_console/middleware.rb:20:in `catch'
web-console (3.7.0) lib/web_console/middleware.rb:20:in `call'
actionpack (5.1.6.2) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
railties (5.1.6.2) lib/rails/rack/logger.rb:36:in `call_app'
railties (5.1.6.2) lib/rails/rack/logger.rb:24:in `block in call'
activesupport (5.1.6.2) lib/active_support/tagged_logging.rb:69:in `block in tagged'
activesupport (5.1.6.2) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (5.1.6.2) lib/active_support/tagged_logging.rb:69:in `tagged'
railties (5.1.6.2) lib/rails/rack/logger.rb:24:in `call'
sprockets-rails (3.2.1) lib/sprockets/rails/quiet_assets.rb:13:in `call'
actionpack (5.1.6.2) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
request_store (1.4.1) lib/request_store/middleware.rb:19:in `call'
actionpack (5.1.6.2) lib/action_dispatch/middleware/request_id.rb:25:in `call'
rack (2.0.6) lib/rack/method_override.rb:22:in `call'
rack (2.0.6) lib/rack/runtime.rb:22:in `call'
activesupport (5.1.6.2) lib/active_support/cache/strategy/local_cache_middleware.rb:27:in `call'
actionpack (5.1.6.2) lib/action_dispatch/middleware/executor.rb:12:in `call'
actionpack (5.1.6.2) lib/action_dispatch/middleware/static.rb:125:in `call'
rack (2.0.6) lib/rack/sendfile.rb:111:in `call'
railties (5.1.6.2) lib/rails/engine.rb:522:in `call'
puma (3.12.0) lib/puma/configuration.rb:225:in `call'
puma (3.12.0) lib/puma/server.rb:658:in `handle_request'
puma (3.12.0) lib/puma/server.rb:472:in `process_client'
puma (3.12.0) lib/puma/server.rb:332:in `block in run'
puma (3.12.0) lib/puma/thread_pool.rb:133:in `block in spawn_thread'
我刚刚尝试重新索引表:
2.5.3 :001 > Event.reindex
Traceback (most recent call last):
1: from (irb):1
Faraday::ConnectionFailed (Failed to open TCP connection to localhost:9200 (Connection refused - connect(2) for "localhost" port 9200))
刚刚搜索了一下,发现可能和内存有关。不知道如何检查它,而且应用程序在 Heroku 上运行得非常好,所以问题是本地的,但我需要确定修复它。
(编辑问题) 我刚刚从终端运行 elasticsearch,它返回以下内容:
$ elasticsearch
Java HotSpot(TM) 64-Bit Server VM warning: Cannot open file logs/gc.log due to No such file or directory
[2019-05-07T11:41:56,649][WARN ][o.e.c.l.LogConfigurator ] [unknown] Some logging configurations have %marker but don't have %node_name. We will automatically add %node_name to the pattern to ease the migration for users who customize log4j2.properties but will stop this behavior in 7.0. You should manually replace `%node_name` with `[%node_name]%marker ` in these locations:
/usr/local/etc/elasticsearch/log4j2.properties
[2019-05-07T11:41:57,948][INFO ][o.e.e.NodeEnvironment ] [Uqr3VHG] using [1] data paths, mounts [[/ (/dev/disk1)]], net usable_space [386.7gb], net total_space [464.6gb], types [hfs]
[2019-05-07T11:41:57,948][INFO ][o.e.e.NodeEnvironment ] [Uqr3VHG] heap size [990.7mb], compressed ordinary object pointers [true]
[2019-05-07T11:41:58,748][INFO ][o.e.n.Node ] [Uqr3VHG] node name derived from node ID [Uqr3VHGpQTmcyJav-f-6RQ]; set [node.name] to override
[2019-05-07T11:41:58,748][INFO ][o.e.n.Node ] [Uqr3VHG] version[6.7.0], pid[29217], build[oss/tar/8453f77/2019-03-21T15:32:29.844721Z], OS[Mac OS X/10.13.6/x86_64], JVM[Oracle Corporation/Java HotSpot(TM) 64-Bit Server VM/1.8.0_192/25.192-b12]
[2019-05-07T11:41:58,749][INFO ][o.e.n.Node ] [Uqr3VHG] JVM arguments [-Xms1g, -Xmx1g, -XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Djava.io.tmpdir=/var/folders/c_/cqbnlqbx5lq7vjgf31_wsgvh0000gp/T/elasticsearch-6333526767767413674, -XX:+HeapDumpOnOutOfMemoryError, -XX:HeapDumpPath=data, -XX:ErrorFile=logs/hs_err_pid%p.log, -XX:+PrintGCDetails, -XX:+PrintGCDateStamps, -XX:+PrintTenuringDistribution, -XX:+PrintGCApplicationStoppedTime, -Xloggc:logs/gc.log, -XX:+UseGCLogFileRotation, -XX:NumberOfGCLogFiles=32, -XX:GCLogFileSize=64m, -Des.path.home=/usr/local/Cellar/elasticsearch/6.7.0/libexec, -Des.path.conf=/usr/local/etc/elasticsearch, -Des.distribution.flavor=oss, -Des.distribution.type=tar]
[2019-05-07T11:42:01,279][INFO ][o.e.p.PluginsService ] [Uqr3VHG] loaded module [aggs-matrix-stats]
[2019-05-07T11:42:01,280][INFO ][o.e.p.PluginsService ] [Uqr3VHG] loaded module [analysis-common]
[2019-05-07T11:42:01,280][INFO ][o.e.p.PluginsService ] [Uqr3VHG] loaded module [ingest-common]
[2019-05-07T11:42:01,280][INFO ][o.e.p.PluginsService ] [Uqr3VHG] loaded module [ingest-geoip]
[2019-05-07T11:42:01,280][INFO ][o.e.p.PluginsService ] [Uqr3VHG] loaded module [ingest-user-agent]
[2019-05-07T11:42:01,280][INFO ][o.e.p.PluginsService ] [Uqr3VHG] loaded module [lang-expression]
[2019-05-07T11:42:01,280][INFO ][o.e.p.PluginsService ] [Uqr3VHG] loaded module [lang-mustache]
[2019-05-07T11:42:01,281][INFO ][o.e.p.PluginsService ] [Uqr3VHG] loaded module [lang-painless]
[2019-05-07T11:42:01,281][INFO ][o.e.p.PluginsService ] [Uqr3VHG] loaded module [mapper-extras]
[2019-05-07T11:42:01,281][INFO ][o.e.p.PluginsService ] [Uqr3VHG] loaded module [parent-join]
[2019-05-07T11:42:01,281][INFO ][o.e.p.PluginsService ] [Uqr3VHG] loaded module [percolator]
[2019-05-07T11:42:01,281][INFO ][o.e.p.PluginsService ] [Uqr3VHG] loaded module [rank-eval]
[2019-05-07T11:42:01,281][INFO ][o.e.p.PluginsService ] [Uqr3VHG] loaded module [reindex]
[2019-05-07T11:42:01,282][INFO ][o.e.p.PluginsService ] [Uqr3VHG] loaded module [repository-url]
[2019-05-07T11:42:01,282][INFO ][o.e.p.PluginsService ] [Uqr3VHG] loaded module [transport-netty4]
[2019-05-07T11:42:01,282][INFO ][o.e.p.PluginsService ] [Uqr3VHG] loaded module [tribe]
[2019-05-07T11:42:01,283][INFO ][o.e.p.PluginsService ] [Uqr3VHG] no plugins loaded
[2019-05-07T11:42:08,927][INFO ][o.e.d.DiscoveryModule ] [Uqr3VHG] using discovery type [zen] and host providers [settings]
[2019-05-07T11:42:09,753][INFO ][o.e.n.Node ] [Uqr3VHG] initialized
[2019-05-07T11:42:09,753][INFO ][o.e.n.Node ] [Uqr3VHG] starting ...
[2019-05-07T11:42:10,495][INFO ][o.e.t.TransportService ] [Uqr3VHG] publish_address {127.0.0.1:9300}, bound_addresses {[::1]:9300}, {127.0.0.1:9300}
ERROR: Cluster name [elasticsearch_etiennelandro] subdirectory exists in data paths [/usr/local/var/lib/elasticsearch/elasticsearch_etiennelandro]. All data under these paths must be moved up one directory to paths [/usr/local/var/lib/elasticsearch]
[2019-05-07T11:42:10,561][INFO ][o.e.n.Node ] [Uqr3VHG] stopping ...
[2019-05-07T11:42:10,589][INFO ][o.e.n.Node ] [Uqr3VHG] stopped
[2019-05-07T11:42:10,590][INFO ][o.e.n.Node ] [Uqr3VHG] closing ...
[2019-05-07T11:42:10,614][INFO ][o.e.n.Node ] [Uqr3VHG] closed
附加信息:
当我从模型中删除 searchick world_middle: [:first_name]
并重新启动服务器时,用户可以毫无问题地登录。
最佳答案
当您运行elasticsearch
时,您会收到以下错误
ERROR: Cluster name [elasticsearch_etiennelandro] subdirectory exists in data paths [/usr/local/var/lib/elasticsearch/elasticsearch_etiennelandro]. All data under these paths must be moved up one directory to paths [/usr/local/var/lib/elasticsearch]
Did you have an older version (2.x or before) installed before? It sounds a lot like this PR to check that you're not using the old behavior when there was the node name in the path.
What I would do:
If you don't need the data any more, just remove /usr/local/var/lib/elasticsearch/elasticsearch_nikitavlasenko and start fresh.
If you need the data, you could either change path.data in your config or move the folder one level up (just like the log message says).
PS: I wouldn't use port 9300 for HTTP, because that's generally the port used for communication of the nodes in a cluster itself.
还可以考虑阅读该页面上的评论和相关帖子,例如 Franz Kafka 中的评论和相关帖子。
Turns out that the config file points to /usr/local/var/lib/elasticsearch for the data path, but the package creates the directory /usr/local/var/lib/elasticsearch/elasticsearch_USERNAME. Since that elasticsearch_USERNAME directory is in there, it fails to start. I resolved the error by simply removing the elasticsearch_USERNAME directory as you suggested.
该错误会导致本应在 localhost:9200
上运行的 elastichsearch
服务器崩溃
关于ruby-on-rails - Faraday::ConnectionFailed in Devise::SessionsController#create,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55988640/