質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

Q&A

解決済

GitLabで502エラー

jakelizzI
jakelizzI

総合スコア29

unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

2回答

1グッド

0クリップ

23593閲覧

投稿2016/12/29 04:44

###GitLabに詳しい方いますか?

事象:先ほど、apt-get upgradeを行いGitLabのアップデートを行おうとした際に、エラーが発生し、下記のURLのHPを元にいろいろと修正を行っていました。

  1. http://qiita.com/hiko_t/items/8757ef19d55c5cbc4714
  2. http://obel.hatenablog.jp/entry/20161116/1479242090

1の方のURLに載っていた

$ sudo rm /var/lib/dpkg/info/gitlab-ce.p* $ sudo dpkg --configure gitlab-ce

の処理を行い、やってみましたが、ブラウザからアクセスをすると502エラーとなってしまいます。
なので、その後、2のURLに載っていた

# gitlab-ctl stop # rm /var/opt/gitlab/gitlab-rails/sockets/gitlab.socket # gitlab-ctl restart

を実行しました。今考えればもっとよく読んでいればよかったかなと思いますが後の祭りで、gitlab.socketファイルが無いのでやはり502エラーとなってしまいました。

gitlab.socketを再作成する方法、もしくは事象の修正方法等が分かる方がいれば教えて頂きたいです。
また、Unicornのログを見るとPermission deniedとなっているので、権限系のエラーなのかもしれません。
もしもお分かりになる方がいたらお教え名がいます。

###発生している問題・エラーメッセージ

  • gitlab-ctl tail unicorn
==> /var/log/gitlab/unicorn/current <== 2016-12-29_04:11:03.74888 master failed to start, check stderr log for details 2016-12-29_04:11:04.76111 failed to start a new unicorn master 2016-12-29_04:11:04.76697 starting new unicorn master ==> /var/log/gitlab/unicorn/unicorn_stderr.log <== I, [2016-12-29T13:11:05.152155 #1669] INFO -- : Refreshing Gem list ==> /var/log/gitlab/unicorn/unicorn_stdout.log <== bundler: failed to load command: unicorn (/opt/gitlab/embedded/service/gem/ruby/2.3.0/bin/unicorn) ==> /var/log/gitlab/unicorn/unicorn_stderr.log <== Errno::EACCES: Permission denied @ rb_sysopen - /opt/gitlab/embedded/service/gitlab-rails/.gitlab_workhorse_secret /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/workhorse.rb:126:in `initialize' /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/workhorse.rb:126:in `open' /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/workhorse.rb:126:in `write_secret' /opt/gitlab/embedded/service/gitlab-rails/config/initializers/gitlab_workhorse_secret.rb:4:in `rescue in <top (required)>' /opt/gitlab/embedded/service/gitlab-rails/config/initializers/gitlab_workhorse_secret.rb:1:in `<top (required)>' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:268:in `load' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:268:in `block in load' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:240:in `load_dependency' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:268:in `load' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/engine.rb:652:in `block in load_config_initializer' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/activesupport-4.2.7.1/lib/active_support/notifications.rb:166:in `instrument' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/engine.rb:651:in `load_config_initializer' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/engine.rb:616:in `block (2 levels) in <class:Engine>' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/engine.rb:615:in `each' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/engine.rb:615:in `block in <class:Engine>' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/initializable.rb:30:in `instance_exec' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/initializable.rb:30:in `run' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/initializable.rb:55:in `block in run_initializers' /opt/gitlab/embedded/lib/ruby/2.3.0/tsort.rb:228:in `block in tsort_each' /opt/gitlab/embedded/lib/ruby/2.3.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component' /opt/gitlab/embedded/lib/ruby/2.3.0/tsort.rb:422:in `block (2 levels) in each_strongly_connected_component_from' /opt/gitlab/embedded/lib/ruby/2.3.0/tsort.rb:431:in `each_strongly_connected_component_from' /opt/gitlab/embedded/lib/ruby/2.3.0/tsort.rb:421:in `block in each_strongly_connected_component_from' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/initializable.rb:44:in `each' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/initializable.rb:44:in `tsort_each_child' /opt/gitlab/embedded/lib/ruby/2.3.0/tsort.rb:415:in `call' /opt/gitlab/embedded/lib/ruby/2.3.0/tsort.rb:415:in `each_strongly_connected_component_from' /opt/gitlab/embedded/lib/ruby/2.3.0/tsort.rb:349:in `block in each_strongly_connected_component' /opt/gitlab/embedded/lib/ruby/2.3.0/tsort.rb:347:in `each' /opt/gitlab/embedded/lib/ruby/2.3.0/tsort.rb:347:in `call' /opt/gitlab/embedded/lib/ruby/2.3.0/tsort.rb:347:in `each_strongly_connected_component' /opt/gitlab/embedded/lib/ruby/2.3.0/tsort.rb:226:in `tsort_each' /opt/gitlab/embedded/lib/ruby/2.3.0/tsort.rb:205:in `tsort_each' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/initializable.rb:54:in `run_initializers' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/railties-4.2.7.1/lib/rails/application.rb:352:in `initialize!' /opt/gitlab/embedded/service/gitlab-rails/config/environment.rb:5:in `<top (required)>' /opt/gitlab/embedded/service/gitlab-rails/config.ru:19:in `require' /opt/gitlab/embedded/service/gitlab-rails/config.ru:19:in `block in <main>' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/rack-1.6.5/lib/rack/builder.rb:55:in `instance_eval' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/rack-1.6.5/lib/rack/builder.rb:55:in `initialize' /opt/gitlab/embedded/service/gitlab-rails/config.ru:1:in `new' /opt/gitlab/embedded/service/gitlab-rails/config.ru:1:in `<main>' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/unicorn-5.1.0/lib/unicorn.rb:56:in `eval' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/unicorn-5.1.0/lib/unicorn.rb:56:in `block in builder' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/unicorn-5.1.0/lib/unicorn/http_server.rb:752:in `build_app!' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/unicorn-5.1.0/lib/unicorn/http_server.rb:129:in `start' /opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/unicorn-5.1.0/bin/unicorn:126:in `<top (required)>' /opt/gitlab/embedded/service/gem/ruby/2.3.0/bin/unicorn:22:in `load' /opt/gitlab/embedded/service/gem/ruby/2.3.0/bin/unicorn:22:in `<top (required)>' ==> /var/log/gitlab/unicorn/current <== 2016-12-29_04:11:09.83501 master failed to start, check stderr log for details 2016-12-29_04:11:10.84271 failed to start a new unicorn master 2016-12-29_04:11:10.84904 starting new unicorn master ==> /var/log/gitlab/unicorn/unicorn_stderr.log <== I, [2016-12-29T13:11:11.233307 #1692] INFO -- : Refreshing Gem list ^C/opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/omnibus-ctl-0.3.6/lib/omnibus-ctl.rb:435:in `system': Interrupt from /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/omnibus-ctl-0.3.6/lib/omnibus-ctl.rb:435:in `tail' from /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/omnibus-ctl-0.3.6/lib/omnibus-ctl.rb:575:in `run' from /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/omnibus-ctl-0.3.6/bin/omnibus-ctl:31:in `<top (required)>' from /opt/gitlab/embedded/bin/omnibus-ctl:22:in `load' from /opt/gitlab/embedded/bin/omnibus-ctl:22:in `<main>'
  • cat /var/log/gitlab/gitlab-workhorse/current | less
2016-12-29_04:32:33.37881 2016/12/29 13:32:33 error: GET "/ユーザー名/プロジェクト名/info/refs?service=git-upload-pack": badgateway: failed after 0s: dial unix /var/opt/gitlab/gitlab-rails/sockets/gitlab.socket: connect: connection refused 2016-12-29_04:32:33.37882 2016/12/29 13:32:33 ErrorPage: serving predefined error page: 502 2016-12-29_04:32:33.37883 サーバー名@ - - [2016-12-29 13:32:33.378442789 +0900 JST] "GET /ユーザー名/プロジェクト名/info/refs?service=git-upload-pack HTTP/1.1" 502 2662 "" "git/2.7.4.windows.1" 0.000317 2016-12-29_04:32:37.93419 2016/12/29 13:32:37 error: GET "/グループ名/アプリケーション名.git/info/refs?service=git-upload-pack": preAuthorizeHandler newUpstreamRequest: newRequest: sign JWT: secret.JWTTokenString: secret.setBytes: read "/opt/gitlab/embedded/service/gitlab-rails/.gitlab_workhorse_secret": open /opt/gitlab/embedded/service/gitlab-rails/.gitlab_workhorse_secret: permission denied 2016-12-29_04:32:37.93421 サーバー名@ - - [2016-12-29 13:32:37.934017388 +0900 JST] "GET /グループ名/アプリケーション名.git/info/refs?service=git-upload-pack HTTP/1.1" 500 22 "" "git/2.7.4.windows.1" 0.000116

###試したこと

  • 復元

対象のファイルの復元を試みましたが、復元できませんでした。。。

  • ファイルの作成

最初はgitlab.socket not foundというエラーだったので、単純にgitlab.socketファイルを作成してみました。一応chmodchownを行いました。(chownに関してはgit:gitlab-wwwとしました。)

###補足情報
OS:Ubuntu16.04.1 LTS (Xenial Xerus)
環境:KVM

YuzuRyo61👍を押しています

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答2

1

自己解決

追記です。
グループやリポジトリ(プロジェクト)に対してアクセスをした際に500エラーとなってしまう件ですが、解決いたしました。

下記のログを見ると
/var/opt/gitlab/gitlab-rails/production.log

Started GET "/グループ名/プロジェクト名.git/info/refs?service=git-upload-pack" for 192.168.1.176 at 2016-12-29 16:12:38 +0900 Processing by Projects::GitHttpController#info_refs as */* Parameters: {"service"=>"git-upload-pack", "namespace_id"=>"グループ名", "project_id"=>"プロジェクト名.git"} Completed 500 Internal Server Error in 13ms (ActiveRecord: 1.7ms) ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "routes" does not exist LINE 5: WHERE a.attrelid = '"routes"'::regclass ^ : SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum WHERE a.attrelid = '"routes"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum ): app/models/concerns/routable.rb:32:in `find_by_full_path' app/controllers/projects/git_http_client_controller.rb:82:in `project' lib/gitlab/middleware/multipart.rb:93:in `call' lib/gitlab/request_profiler/middleware.rb:15:in `call' lib/gitlab/middleware/go.rb:16:in `call'

となっていたので、

gitlab-rake db:migrate:status

を実行してDBの状態を確認したところ、一部の機能がdownしておりました。
DBのその機能がdownしていたため、プロジェクトへのアクセスが出来ない状態だったようです。
downとなっている状態をupにするためには、まず単純にmigrateを動かしますが、その際、/opt/gitlab/embedded/service/gitlab-rails/db/schema.rbの権限がroot:rootになっていると失敗してしまうので、chown git:gitを行って、権限を変更しておかなければならないことに注意してください。

その後gitlab-ctl reconfigureすることで、全てupになります。
gitlab-ctl restartで再起動すればアクセスできるようになります。

投稿2016/12/29 08:02

jakelizzI

総合スコア29

zu-min👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

0

502エラー回避の方法

いろいろ試行錯誤した結果、gitlab.socketファイルが存在しなかったり、不正なものだったりした場合は、/opt/gitlab/embedded/service/gitlab-rails/.gitlab_workhorse_secretファイルにアクセスを行い、再度生成しようとするらしいです。ですので、上記のファイルに対するアクセス権限が無いとgitlab.socketファイルを作成することが出来ず、500エラーとなっていたようです。
ただ、上記の変更をすることでGitLabへのアクセスは可能になりましたが、グループやリポジトリにアクセスをすると500エラーとなってしまいます。
完全な解決策ではありませんでしたが、gitlab.socketに関するエラーに関してはcloseしても良いかもしれません。

投稿2016/12/29 06:11

jakelizzI

総合スコア29

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。