From 156aa42ba00c52e56be5ceca1615a574fa1fd052 Mon Sep 17 00:00:00 2001 From: Ethan Koenig Date: Thu, 21 Dec 2017 23:00:30 -0800 Subject: [PATCH] Update code.gitea.io/git (#3251) --- vendor/code.gitea.io/git/commit_info.go | 12 ++++++++++++ vendor/vendor.json | 6 +++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/vendor/code.gitea.io/git/commit_info.go b/vendor/code.gitea.io/git/commit_info.go index 106ebc618..6b42b57c9 100644 --- a/vendor/code.gitea.io/git/commit_info.go +++ b/vendor/code.gitea.io/git/commit_info.go @@ -207,6 +207,10 @@ func getCommitsInfo(state *getCommitsInfoState) error { if err := cmd.Start(); err != nil { return err } + // it's okay to ignore the error returned by cmd.Wait(); we expect the + // subprocess to sometimes have a non-zero exit status, since we may + // prematurely close stdout, resulting in a broken pipe. + defer cmd.Wait() numThreads := runtime.NumCPU() done := make(chan error, numThreads) @@ -216,6 +220,14 @@ func getCommitsInfo(state *getCommitsInfoState) error { scanner := bufio.NewScanner(readCloser) err = state.processGitLogOutput(scanner) + + // it is important that we close stdout here; if we do not close + // stdout, the subprocess will keep running, and the deffered call + // cmd.Wait() may block for a long time. + if closeErr := readCloser.Close(); closeErr != nil && err == nil { + err = closeErr + } + for i := 0; i < numThreads; i++ { doneErr := <-done if doneErr != nil && err == nil { diff --git a/vendor/vendor.json b/vendor/vendor.json index e65aa3969..3689f57b6 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -3,10 +3,10 @@ "ignore": "test appengine", "package": [ { - "checksumSHA1": "4OG03XZWTU5eUkWPTOwIB6H4BF0=", + "checksumSHA1": "Em29XiKkOh5rFFXdkCjqqsQ7fe4=", "path": "code.gitea.io/git", - "revision": "4573c63ec9c8257caf11e361c238b6ceb53781d7", - "revisionTime": "2017-12-20T02:56:39Z" + "revision": "4ec3654064ef7eef4f05f891073a38039ad8d0f7", + "revisionTime": "2017-12-22T02:43:26Z" }, { "checksumSHA1": "QQ7g7B9+EIzGjO14KCGEs9TNEzM=",