gc: notice gc processes run by other users
commited7eda8b38ec6230abf79986668ccb6e2e2c7494
authorKyle J. McKay <mackyle@gmail.com>
Tue, 31 Dec 2013 12:07:39 +0000 (31 04:07 -0800)
committerJunio C Hamano <gitster@pobox.com>
Fri, 3 Jan 2014 00:15:29 +0000 (2 16:15 -0800)
tree40b51a66cdd8af56c5a1c106f30e7cfd2d3d6099
parentd2446dfd7f3b3f8948142cfb07a0270e2497d93f
gc: notice gc processes run by other users

Since 64a99eb4 git gc refuses to run without the --force option if
another gc process on the same repository is already running.

However, if the repository is shared and user A runs git gc on the
repository and while that gc is still running user B runs git gc on
the same repository the gc process run by user A will not be noticed
and the gc run by user B will go ahead and run.

The problem is that the kill(pid, 0) test fails with an EPERM error
since user B is not allowed to signal processes owned by user A
(unless user B is root).

Update the test to recognize an EPERM error as meaning the process
exists and another gc should not be run (unless --force is given).

Signed-off-by: Kyle J. McKay <mackyle@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/gc.c