Unicorn crash, http_server.rb:262:in `syswrite': Broken pipe (Errno::EPIPE)
Created by: berni2288
Summary
After updating Gitlab to 6.3, Unicorn crashes after the first successful loading of a Gitlab page with the following error:
http_server.rb:262:in `syswrite': Broken pipe (Errno::EPIPE)
I tried a fresh install of Gitlab 6.4, but it's still broken. I purged Ruby1.9.3 and installed Ruby2 from source... but still broken.
Steps to reproduce
- Fresh install of Gitlab 6.4 with
- Debian Wheezy 7.3
- ruby 2.0.0p353
- Increase unicorn worker timeout to 200 in unicorn.rb as suggested in some issues
- sudo /etc/init.d/gitlab restart
- Access Gitlab URL
- Crash happens
Expected behavior
Shouldn't crash
Observed behavior
Crashes
Relevant logs and/or screenshots
unicorn.stderr.log:
I, [2013-12-28T04:02:35.071066 #7077] INFO -- : Refreshing Gem list
I, [2013-12-28T04:02:40.866314 #7077] INFO -- : listening on addr=/home/git/gitlab/tmp/sockets/gitlab.socket fd=16
I, [2013-12-28T04:02:40.866683 #7077] INFO -- : listening on addr=127.0.0.1:8080 fd=17
I, [2013-12-28T04:02:40.870574 #7114] INFO -- : worker=0 ready
I, [2013-12-28T04:02:40.871145 #7077] INFO -- : master process ready
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/unicorn-4.6.3/lib/unicorn/http_server.rb:262:in `syswrite': Broken pipe (Errno::EPIPE)
from /home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/unicorn-4.6.3/lib/unicorn/http_server.rb:262:in `join'
from /home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/unicorn-4.6.3/bin/unicorn_rails:209:in `<top (required)>'
from /home/git/gitlab/vendor/bundle/ruby/2.0.0/bin/unicorn_rails:23:in `load'
from /home/git/gitlab/vendor/bundle/ruby/2.0.0/bin/unicorn_rails:23:in `<main>'
I, [2013-12-28T04:02:40.872329 #7117] INFO -- : worker=1 ready
Output of checks
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
Checking Environment ...
Git configured for git user? ... yes
Has python2? ... yes
python2 is supported version? ... yes
Checking Environment ... Finished
Checking GitLab Shell ...
GitLab Shell version >= 1.7.9 ? ... OK (1.8.0)
Repo base directory exists? ... yes
Repo base directory is a symlink? ... no
Repo base owned by git:git? ... yes
Repo base access is drwxrws---? ... yes
update hook up-to-date? ... yes
update hooks in repos are links: ... can't check, you have no projects
Running /home/git/gitlab-shell/bin/check
Check GitLab API access: FAILED. code: 502 --> Because Unicorn crashed
gitlab-shell self-check failed
Try fixing it:
Make sure GitLab is running;
Check the gitlab-shell configuration file:
sudo -u git -H editor /home/git/gitlab-shell/config.yml
Please fix the error above and rerun the checks.
Checking GitLab Shell ... Finished
Checking Sidekiq ...
Running? ... yes
Number of Sidekiq processes ... 1
Checking Sidekiq ... Finished
Checking LDAP ...
LDAP is disabled in config/gitlab.yml
Checking LDAP ... Finished
Checking GitLab ...
Database config exists? ... yes
Database is SQLite ... no
All migrations up? ... yes
GitLab config exists? ... yes
GitLab config outdated? ... no
Log directory writable? ... yes
Tmp directory writable? ... yes
Init script exists? ... yes
Init script up-to-date? ... yes
projects have namespace: ... can't check, you have no projects
Projects have satellites? ... can't check, you have no projects
Redis version >= 2.0.0? ... yes
Your git bin path is "/usr/bin/git"
Git version >= 1.7.10 ? ... yes (1.7.10)
Checking GitLab ... Finished
Setup
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
System information System: Debian 7.3 Current User: git Using RVM: no Ruby Version: 2.0.0p353 Gem Version: 2.0.14 Bundler Version:1.5.0 Rake Version: 10.1.0
GitLab information Version: 6.4.3 Revision: 42131d01 Directory: /home/git/gitlab DB Adapter: mysql2 URL: https://mydomain.com HTTP Clone URL: https://mydomain.com/some-project.git SSH Clone URL: [email protected]:some-project.git Using LDAP: no Using Omniauth: no
GitLab Shell Version: 1.8.0 Repositories: /home/git/repositories/ Hooks: /home/git/gitlab-shell/hooks/ Git: /usr/bin/git