'listen loop error: Socket operation on non-socket' when trying to run Unicorn
'listen loop error: Socket operation on non-socket' when trying to run Unicorn
我上周开始处理别人的 Rails 项目。在整个星期的工作中,一切都按预期工作,直到几天前,当我尝试 运行 本地服务器时(因为我已经做过很多次)。
该项目使用 rake 任务来启动服务器,但我将问题缩小到只是试图获取 Unicorn 运行ning。这是我在 运行ning bundle exec unicorn
:
之后得到的错误
I, [2015-04-25T20:38:10.794243 #1249] INFO -- : listening on addr=0.0.0.0:8080 fd=9
I, [2015-04-25T20:38:10.794400 #1249] INFO -- : worker=0 spawning...
I, [2015-04-25T20:38:10.795363 #1249] INFO -- : master process ready
I, [2015-04-25T20:38:10.796474 #1250] INFO -- : worker=0 spawned pid=1250
I, [2015-04-25T20:38:10.797102 #1250] INFO -- : Refreshing Gem list
I, [2015-04-25T20:38:17.102292 #1250] INFO -- : worker=0 ready
E, [2015-04-25T20:38:17.102705 #1250] ERROR -- : listen loop error: Socket operation on non-socket - accept (Errno::ENOTSOCK)
E, [2015-04-25T20:38:17.102861 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/gems/unicorn-4.8.3/lib/unicorn/http_server.rb:669:in `kgio_tryaccept'
E, [2015-04-25T20:38:17.103015 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/gems/unicorn-4.8.3/lib/unicorn/http_server.rb:669:in `worker_loop'
E, [2015-04-25T20:38:17.103201 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/gems/unicorn-4.8.3/lib/unicorn/http_server.rb:525:in `spawn_missing_workers'
E, [2015-04-25T20:38:17.103345 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/gems/unicorn-4.8.3/lib/unicorn/http_server.rb:140:in `start'
E, [2015-04-25T20:38:17.103473 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/gems/unicorn-4.8.3/bin/unicorn:126:in `<top (required)>'
E, [2015-04-25T20:38:17.103658 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/bin/unicorn:23:in `load'
E, [2015-04-25T20:38:17.103780 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/bin/unicorn:23:in `<main>'
E, [2015-04-25T20:38:17.103901 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/bin/ruby_executable_hooks:15:in `eval'
E, [2015-04-25T20:38:17.104022 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/bin/ruby_executable_hooks:15:in `<main>'
E, [2015-04-25T20:38:17.104289 #1250] ERROR -- : listen loop error: Socket operation on non-socket - accept (Errno::ENOTSOCK)
E, [2015-04-25T20:38:17.104379 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/gems/unicorn-4.8.3/lib/unicorn/http_server.rb:669:in `kgio_tryaccept'
E, [2015-04-25T20:38:17.104533 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/gems/unicorn-4.8.3/lib/unicorn/http_server.rb:669:in `worker_loop'
E, [2015-04-25T20:38:17.104711 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/gems/unicorn-4.8.3/lib/unicorn/http_server.rb:525:in `spawn_missing_workers'
E, [2015-04-25T20:38:17.104844 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/gems/unicorn-4.8.3/lib/unicorn/http_server.rb:140:in `start'
E, [2015-04-25T20:38:17.104977 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/gems/unicorn-4.8.3/bin/unicorn:126:in `<top (required)>'
E, [2015-04-25T20:38:17.105107 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/bin/unicorn:23:in `load'
E, [2015-04-25T20:38:17.105235 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/bin/unicorn:23:in `<main>'
E, [2015-04-25T20:38:17.105333 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/bin/ruby_executable_hooks:15:in `eval'
E, [2015-04-25T20:38:17.105465 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/bin/ruby_executable_hooks:15:in `<main>'
E, [2015-04-25T20:38:17.105794 #1250] ERROR -- : listen loop error: Socket operation on non-socket - accept (Errno::ENOTSOCK)
这台机器上有多个项目,但我认为没有一个在工作状态和损坏状态之间工作过。
我做了运行一个OSX更新,在这一切都崩溃之前的早上骚扰了我一个星期。独角兽也在项目开始对我失败的那天更新。但是我已经尝试将 XCode 恢复到旧版本,并且我尝试将 Unicorn gem 锁定到 'working' 版本,并且它的 none 似乎有所不同。
我也试过指定一个不同的端口以防出现问题:bundle exec unicorn -p 4444
,但无济于事。
感谢任何帮助。
可能需要重建此应用程序的 gemset。如果有的话,您将重新编译您的原生 gems。考虑到错误在 Unicorn 中发生得相当深,也许有一些优点。
查看:RVM Gemset 了解有关删除的信息
之后,继续bundle install
。希望这能解决问题。
我上周开始处理别人的 Rails 项目。在整个星期的工作中,一切都按预期工作,直到几天前,当我尝试 运行 本地服务器时(因为我已经做过很多次)。
该项目使用 rake 任务来启动服务器,但我将问题缩小到只是试图获取 Unicorn 运行ning。这是我在 运行ning bundle exec unicorn
:
I, [2015-04-25T20:38:10.794243 #1249] INFO -- : listening on addr=0.0.0.0:8080 fd=9
I, [2015-04-25T20:38:10.794400 #1249] INFO -- : worker=0 spawning...
I, [2015-04-25T20:38:10.795363 #1249] INFO -- : master process ready
I, [2015-04-25T20:38:10.796474 #1250] INFO -- : worker=0 spawned pid=1250
I, [2015-04-25T20:38:10.797102 #1250] INFO -- : Refreshing Gem list
I, [2015-04-25T20:38:17.102292 #1250] INFO -- : worker=0 ready
E, [2015-04-25T20:38:17.102705 #1250] ERROR -- : listen loop error: Socket operation on non-socket - accept (Errno::ENOTSOCK)
E, [2015-04-25T20:38:17.102861 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/gems/unicorn-4.8.3/lib/unicorn/http_server.rb:669:in `kgio_tryaccept'
E, [2015-04-25T20:38:17.103015 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/gems/unicorn-4.8.3/lib/unicorn/http_server.rb:669:in `worker_loop'
E, [2015-04-25T20:38:17.103201 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/gems/unicorn-4.8.3/lib/unicorn/http_server.rb:525:in `spawn_missing_workers'
E, [2015-04-25T20:38:17.103345 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/gems/unicorn-4.8.3/lib/unicorn/http_server.rb:140:in `start'
E, [2015-04-25T20:38:17.103473 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/gems/unicorn-4.8.3/bin/unicorn:126:in `<top (required)>'
E, [2015-04-25T20:38:17.103658 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/bin/unicorn:23:in `load'
E, [2015-04-25T20:38:17.103780 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/bin/unicorn:23:in `<main>'
E, [2015-04-25T20:38:17.103901 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/bin/ruby_executable_hooks:15:in `eval'
E, [2015-04-25T20:38:17.104022 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/bin/ruby_executable_hooks:15:in `<main>'
E, [2015-04-25T20:38:17.104289 #1250] ERROR -- : listen loop error: Socket operation on non-socket - accept (Errno::ENOTSOCK)
E, [2015-04-25T20:38:17.104379 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/gems/unicorn-4.8.3/lib/unicorn/http_server.rb:669:in `kgio_tryaccept'
E, [2015-04-25T20:38:17.104533 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/gems/unicorn-4.8.3/lib/unicorn/http_server.rb:669:in `worker_loop'
E, [2015-04-25T20:38:17.104711 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/gems/unicorn-4.8.3/lib/unicorn/http_server.rb:525:in `spawn_missing_workers'
E, [2015-04-25T20:38:17.104844 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/gems/unicorn-4.8.3/lib/unicorn/http_server.rb:140:in `start'
E, [2015-04-25T20:38:17.104977 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/gems/unicorn-4.8.3/bin/unicorn:126:in `<top (required)>'
E, [2015-04-25T20:38:17.105107 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/bin/unicorn:23:in `load'
E, [2015-04-25T20:38:17.105235 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/bin/unicorn:23:in `<main>'
E, [2015-04-25T20:38:17.105333 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/bin/ruby_executable_hooks:15:in `eval'
E, [2015-04-25T20:38:17.105465 #1250] ERROR -- : /Users/me/.rvm/gems/ruby-2.2.0@project_name/bin/ruby_executable_hooks:15:in `<main>'
E, [2015-04-25T20:38:17.105794 #1250] ERROR -- : listen loop error: Socket operation on non-socket - accept (Errno::ENOTSOCK)
这台机器上有多个项目,但我认为没有一个在工作状态和损坏状态之间工作过。
我做了运行一个OSX更新,在这一切都崩溃之前的早上骚扰了我一个星期。独角兽也在项目开始对我失败的那天更新。但是我已经尝试将 XCode 恢复到旧版本,并且我尝试将 Unicorn gem 锁定到 'working' 版本,并且它的 none 似乎有所不同。
我也试过指定一个不同的端口以防出现问题:bundle exec unicorn -p 4444
,但无济于事。
感谢任何帮助。
可能需要重建此应用程序的 gemset。如果有的话,您将重新编译您的原生 gems。考虑到错误在 Unicorn 中发生得相当深,也许有一些优点。
查看:RVM Gemset 了解有关删除的信息
之后,继续bundle install
。希望这能解决问题。