git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/5] fix deadlock in git-push
@ 2016-04-19 22:39 Jeff King
  2016-04-19 22:45 ` [PATCH 1/5] send-pack: close demux pipe before finishing async process Jeff King
                   ` (5 more replies)
  0 siblings, 6 replies; 10+ messages in thread
From: Jeff King @ 2016-04-19 22:39 UTC (permalink / raw)
  To: git

I ran across a deadlock today while pushing from a corrupted repository
where pack-objects fails. Obviously I don't expect this to succeed, but
it should not hang indefinitely.

The first patch below fixes the deadlock. Unfortunately, it turns it
into a likely SIGPIPE death. Which is an improvement, but not ideal.

Patches 2 and 3 address that by fixing the way we handle SIGPIPE in
async threads.

Patches 4 and 5 are cleanups to earlier topics that are enabled by the
new SIGPIPE handling.

  [1/5]: send-pack: close demux pipe before finishing async process
  [2/5]: run-command: teach async threads to ignore SIGPIPE
  [3/5]: send-pack: isolate sigpipe in demuxer thread
  [4/5]: fetch-pack: isolate sigpipe in demuxer thread
  [5/5]: t5504: drop sigpipe=ok from push tests

I confirmed that after this series we still pass the stress test I
outlined in

  http://article.gmane.org/gmane.comp.version-control.git/287176

So hopefully I haven't made anything worse (and that the tightening in
5/5 isn't just bringing back some test flakiness).

-Peff

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2016-04-21  5:19 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-19 22:39 [PATCH 0/5] fix deadlock in git-push Jeff King
2016-04-19 22:45 ` [PATCH 1/5] send-pack: close demux pipe before finishing async process Jeff King
2016-04-19 22:49 ` [PATCH 2/5] run-command: teach async threads to ignore SIGPIPE Jeff King
2016-04-21  5:15   ` Johannes Sixt
2016-04-21  5:18     ` Jeff King
2016-04-19 22:50 ` [PATCH 3/5] send-pack: isolate sigpipe in demuxer thread Jeff King
2016-04-19 22:50 ` [PATCH 4/5] fetch-pack: " Jeff King
2016-04-19 22:51 ` [PATCH 5/5] t5504: drop sigpipe=ok from push tests Jeff King
2016-04-20 21:17 ` [PATCH 0/5] fix deadlock in git-push Junio C Hamano
2016-04-20 21:51   ` Jeff King

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).