Archive

GitLab でマージリクエストのマージができなくなってハマった話


紛らわしい箇所を修正しました(タイトル修正, 利用中GitLabのバージョン明記)


背景

所用で最近個人的にGitLabを使い始めたが、 マージリクエストをブラウザ越しにマージする際に、ボタンをクリックしても何故か画面が先に進まず、 延々とマージされない状況が続くという事態に陥ってしまった。

※ GitLab 7.3.2 での話です

原因

ひとまずログを調査したところ、githost.log に以下の文言を発見。

October 13, 2014 15:21 -> ERROR -> Command failed [1]: /usr/bin/git --git-dir=/path/to/git/gitlab-satellites/hoge/huga/.git --work-tree=/path/to/git/gitlab-satellites/hoge/huga push origin master

remote: /usr/local/apps/ruby-2.1.3/lib/ruby/gems/2.1.0/gems/bundler-1.7.3/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find rake-10.3.2 in any of the sources (Bundler::GemNotFound)        
remote:     from /usr/local/apps/ruby-2.1.3/lib/ruby/gems/2.1.0/gems/bundler-1.7.3/lib/bundler/spec_set.rb:85:in `map!'        
remote:     from /usr/local/apps/ruby-2.1.3/lib/ruby/gems/2.1.0/gems/bundler-1.7.3/lib/bundler/spec_set.rb:85:in `materialize'        
remote:     from /usr/local/apps/ruby-2.1.3/lib/ruby/gems/2.1.0/gems/bundler-1.7.3/lib/bundler/definition.rb:132:in `specs'        
remote:     from /usr/local/apps/ruby-2.1.3/lib/ruby/gems/2.1.0/gems/bundler-1.7.3/lib/bundler/definition.rb:177:in `specs_for'        
remote:     from /usr/local/apps/ruby-2.1.3/lib/ruby/gems/2.1.0/gems/bundler-1.7.3/lib/bundler/definition.rb:166:in `requested_specs'        
remote:     from /usr/local/apps/ruby-2.1.3/lib/ruby/gems/2.1.0/gems/bundler-1.7.3/lib/bundler/environment.rb:18:in `requested_specs'        
remote:     from /usr/local/apps/ruby-2.1.3/lib/ruby/gems/2.1.0/gems/bundler-1.7.3/lib/bundler/runtime.rb:13:in `setup'        
remote:     from /usr/local/apps/ruby-2.1.3/lib/ruby/gems/2.1.0/gems/bundler-1.7.3/lib/bundler.rb:121:in `setup'        
remote:     from /usr/local/apps/ruby-2.1.3/lib/ruby/gems/2.1.0/gems/bundler-1.7.3/lib/bundler/setup.rb:17:in `<top (required)>'        
remote:     from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'        
remote:     from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'        
To /strage/home/git/repositories/node-setagaya/private-docs.git
 ! [remote rejected] master -> master (pre-receive hook declined)
 error: failed to push some refs to '/path/to/git/repositories/hoge/huga.git'

私は Ubuntu14.04サーバ上の /usr/local/apps/ruby 配下にコンパイルしたrubyを使っていたはずなのだが、 apt経由で入ってしまっていたruby1.9.1も参照していた模様。
(どうやら vim-nox を入れた際に一緒に入ってしまっていた。。)

また、このエラーに関して調べてみたら以下のIssueも上がっていた模様
Could not find rake-10.3.2 in any of the sources #7230

解決策

解決方法はシンプルで、apt経由でのruby1.9.1を削除したらブラウザからもマージできるようになった。

% sudo aptitude purge ruby1.9.1

依存関係でvim-noxは消えるが、最近のUbuntuサーバは vim.basic を入れれば最低限 vim は使えるし、 luaとか使いたいならコンパイルすればいいのでそれほど問題ではない。
(そもそもGitLabサーバなんだからバリバリ作業したりもないだろうからそこまでしなくてもいい気がする。)