[PATCH v2 09/14] git-p4: fix freezing while waiting for fast-import progress
- From
Yang Zhao <yang.zhao@skyboxlabs.com>
- Date
- Dec 13, 2019, 23:52 UTC
- Message-ID
- <20191213235247.23660-11-yang.zhao@skyboxlabs.com>
- In-Reply-To
- <20191213235247.23660-1-yang.zhao@skyboxlabs.com>
As part of its importing process, git-p4 sends a `checkpoint` followed immediately by `progress` to fast-import to force synchronization. Due to buffering, it is possible for the `progress` command to not be flushed before git-p4 begins to wait for the corresponding response. This causes the script to freeze completely, and is consistently observable at least on python-3.6.9.
Make sure this command sequence is completely flushed before waiting.
Signed-off-by: Yang Zhao <yang.zhao@skyboxlabs.com> Reviewed-by: Ben Keene <seraphire@gmail.com> --- git-p4.py | 1 + 1 file changed, 1 insertion(+)
diff --git a/git-p4.py b/git-p4.py index c7170c9ae6..68f9f4fdc6 100755 --- a/git-p4.py +++ b/git-p4.py @@ -2641,6 +2641,7 @@ def __init__(self): def checkpoint(self): self.gitStream.write("checkpoint\n\n") self.gitStream.write("progress checkpoint\n\n") + self.gitStream.flush() out = self.gitOutput.readline() if self.verbose: print("checkpoint finished: " + out)
-- 2.21.0.windows.1