Re: trouble on windows network share

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Apr 05, 2013 at 12:44:48PM +0000, Pyeron, Jason J CTR (US) wrote:

> [strace attachment has been removed, email being resent]

I had trouble finding anything interesting in either this, or in the
full strace you sent me off-list, mostly because the syscalls are
foreign to me (I had hoped to see an strace of the actual Unix-level
syscalls, but I guess that is not how cygwin's strace works).

What I really wanted to see was the result of the open, fstat, and mmap
calls. The patch below adds some debugging statements that might help.

> It looks like there is a race condition going on, especially since the
> location and message changes.

If it's a race condition between the write and the subsequent read in
the same process, then it would be solved by looking at the object
later. Does "git cat-file -p 6838761d549cf76033d2e9faf5954e62839eb25d"
work, or is the object forever inaccessible?

---
diff --git a/sha1_file.c b/sha1_file.c
index 0ed2398..d40dd9f 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -1331,6 +1331,9 @@ void *map_sha1_file(const unsigned char *sha1, unsigned long *size)
 	int fd;
 
 	fd = open_sha1_file(sha1);
+	if (fd < 0)
+		error("unable to open sha1 file for %s: %s",
+		      sha1_to_hex(sha1), strerror(errno));
 	map = NULL;
 	if (fd >= 0) {
 		struct stat st;
@@ -1343,7 +1346,13 @@ void *map_sha1_file(const unsigned char *sha1, unsigned long *size)
 				return NULL;
 			}
 			map = xmmap(NULL, *size, PROT_READ, MAP_PRIVATE, fd, 0);
+			if (!map)
+				error("unable to mmap %s: %s",
+				      sha1_to_hex(sha1), strerror(errno));
 		}
+		else
+			error("unable to fstat %s: %s", sha1_to_hex(sha1),
+			      strerror(errno));
 		close(fd);
 	}
 	return map;
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]