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

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

ただいまの
回答率

90.21%

GitLabで502エラー

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 9,466

jakelizzI

score 27

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

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

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

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

check解決した方法

+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で再起動すればアクセスできるようになります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

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

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

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

 502エラー回避の方法

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

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

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

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.21%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

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