Skip to content

Fix another upload-pack deadlock

Jacob Vosmaer (GitLab) requested to merge upload-pack-deadlock into master

There was still a deadlock when sending the response failed leaving the writer to stdin blocked.

The deadlock occurs when:

  • io.Copy(w, stdout) fails due to the client ('w') going away
  • the Git subprocess blocks trying to write to its stdout
  • the main goroutine blocks on io.Copy(stdin, buffer)

So the problem this tries to solve is being able to cancel io.Copy(stdin, buffer).

Merge request reports