git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 5/7] Don't exit successfully on EPIPE in read_or_die.

From
Shawn O. Pearce <spearce@spearce.org>
Date
Dec 24, 2006, 05:46 UTC
Message-ID
<20061224054627.GE8146@spearce.org>
In-Reply-To
<487c7d0ea81f2f82f330e277e0aea38a66ca7cfe.1166939109.git.spearce@spearce.org>

Junio pointed out to me that read() won't return EPIPE like write() does, so there is no reason for us to exit successfully if we get an EPIPE error while in read_or_die.

Instead we should just die if we get any error from read() while in read_or_die as there is no reasonable recovery.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
---
 write_or_die.c |    5 +----
 1 files changed, 1 insertions(+), 4 deletions(-)
diff --git a/write_or_die.c b/write_or_die.c
index a56d992..8cf6486 100644
--- a/write_or_die.c
+++ b/write_or_die.c
@@ -9,11 +9,8 @@ void read_or_die(int fd, void *buf, size_t count)
 		loaded = xread(fd, p, count);
 		if (loaded == 0)
 			die("unexpected end of file");
-		else if (loaded < 0) {
-			if (errno == EPIPE)
-				exit(0);
+		else if (loaded < 0)
 			die("read error (%s)", strerror(errno));
-		}
 		count -= loaded;
 		p += loaded;
 	}
-- 
1.4.4.3.g2e63
Previous: Shawn O. PearceNext: Shawn O. Pearce
Message 8 of 13 in “Switch git_mmap to use pread.”
  1. 2/7 Switch git_mmap to use pread.Shawn O. Pearce, Dec 24, 2006
  2. Johannes SchindelinDec 24, 2006
  3. Alon ZivDec 24, 2006
  4. Shawn PearceDec 24, 2006
  5. Linus TorvaldsDec 24, 2006
  6. 3/7 Ensure packed_git.next is initialized to NULL.Shawn O. Pearce, Dec 24, 2006
  7. 4/7 Default core.packdGitWindowSize to 1 MiB if NO_MMAP.Shawn O. Pearce, Dec 24, 2006
  8. 5/7 Don't exit successfully on EPIPE in read_or_die.Shawn O. Pearce, Dec 24, 2006
  9. 6/7 Release pack windows before reporting out of memory.Shawn O. Pearce, Dec 24, 2006
  10. Johannes SchindelinDec 24, 2006
  11. 7/7 Replace mmap with xmmap, better handling MAP_FAILED.Shawn O. Pearce, Dec 24, 2006
  12. Johannes SchindelinDec 24, 2006
  13. Shawn PearceDec 24, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.