[DRE-maint] Bug#814713: gitlab failes to start under systemd with: Dependency failed for GitLab Service.

Johannes Schauer josch at debian.org
Sun Feb 14 14:23:27 UTC 2016


Package: gitlab
Version: 8.4.3+dfsg-6
Severity: important

Hi,

after upgrading to the latest gitlab version, gitlab.target fails to
load:

root at 22gitlab:~# systemctl status gitlab.target          
● gitlab.target - GitLab Service
   Loaded: loaded (/lib/systemd/system/gitlab.target; enabled)
   Active: inactive (dead)

Feb 14 15:04:21 22gitlab systemd[1]: Dependency failed for GitLab Service.
root at 22gitlab:~# journalctl -xn
-- Logs begin at Sun 2016-02-14 15:04:16 CET, end at Sun 2016-02-14 15:06:14 CET. --
Feb 14 15:06:13 22gitlab gitlab-unicorn[224]: from /usr/lib/ruby/vendor_ruby/unicorn/http_server.rb:100:in `initialize'
Feb 14 15:06:13 22gitlab gitlab-unicorn[224]: from /usr/bin/unicorn_rails:209:in `new'
Feb 14 15:06:13 22gitlab gitlab-unicorn[224]: from /usr/bin/unicorn_rails:209:in `<main>'
Feb 14 15:06:13 22gitlab gitlab-unicorn[224]: master failed to start, check stderr log for details
Feb 14 15:06:13 22gitlab systemd[1]: gitlab-unicorn.service: main process exited, code=exited, status=1/FAILURE
Feb 14 15:06:13 22gitlab gitlab-unicorn[264]: cat: /var/run/gitlab/pids/unicorn.pid: No such file or directory
Feb 14 15:06:13 22gitlab gitlab-unicorn[264]: Could not find a PID in /var/run/gitlab/pids/unicorn.pid
Feb 14 15:06:13 22gitlab systemd[1]: gitlab-unicorn.service: control process exited, code=exited status=1
Feb 14 15:06:13 22gitlab systemd[1]: Unit gitlab-unicorn.service entered failed state.
Feb 14 15:06:14 22gitlab systemd[1]: Started GitLab Sidekiq Worker.
-- Subject: Unit gitlab-sidekiq.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit gitlab-sidekiq.service has finished starting up.
-- 
-- The start-up result is done.


The error message seems to indicate that it cannot find
/var/run/gitlab/pids/unicorn.pid which indeed doesn't exist on my
system. In fact, /var/run/gitlab/pids/ doesn't exist either. And neither
does /var/run/gitlab/.

As an attempt to fix the problem, I manually did:

$ mkdir -p /var/run/gitlab/pids/
$ mkdir -p /var/run/gitlab/sockets
$ chown -R gitlab:gitlab /var/run/gitlab

And now gitlab.target succeeds to load. Did you forget to create these
directories?

On the other hand, when I look at your postinst, I see that you have:

    su ${gitlab_user} -s /bin/sh -c "mkdir -p ${gitlab_pid_path}/pids"
    su ${gitlab_user} -s /bin/sh -c "mkdir -p ${gitlab_pid_path}/sockets"

which seems to be unconditionally executed. Here is the relevant snippet
from the postinst output when I used apt to upgrade to the latest
version:

Creating/updating gitlab user account...
adduser: The user `gitlab' already exists.
Proceeding with existing gitlab user...
Create database if not present

Since the mkdir command comes between the "adduser" and "create
database" part and since there seem to have been no error messages, I'm
at a loss about what went wrong.

Any ideas?

Could it be that somehow ${gitlab_pid_path} was still
/usr/share/gitlab/tmp/ and not /var/run/gitlab/ and thus the two mkdir
lines above succeeded?

Thanks!

cheers, josch



More information about the Pkg-ruby-extras-maintainers mailing list