init.d script uses gitaly binary from old location
GitLab includes a startup script in lib/support/init.d/gitlab, which is referenced from the documentation to install GitLab from source. To start Gitaly, the script runs:
$app_root/bin/daemon_with_pidfile $gitaly_pid_path \
$gitaly_dir/gitaly $gitaly_dir/config.toml >> $gitaly_log 2>&1 &
In Gitaly's commit eb6fd60561, the binary stopped being copied to the ~/gitaly/
source directory during install, so that command doesn't work anymore. Apparently you're supposed to use $gitaly_path/_build/bin/gitaly
now.
In a new install, this means sudo service gitlab start
will fail to start gitaly after following the installation instructions.
In an existing installation updated from 13.11 to 13.12, upgrading gitaly will build a new binary in _build/bin/gitaly
but leave the old binary in the source directory, and the init.d script will run the latter. We are now silently running an outdated Gitaly in the production server with no indication that this happened...