* trouble on windows network share @ 2013-04-04 15:01 Pyeron, Jason J CTR (US) 2013-04-04 15:51 ` Jeff King 2013-05-02 21:26 ` deg 0 siblings, 2 replies; 17+ messages in thread From: Pyeron, Jason J CTR (US) @ 2013-04-04 15:01 UTC (permalink / raw) To: git@vger.kernel.org [-- Attachment #1: Type: text/plain, Size: 2039 bytes --] I am having trouble when the .git folder is on a network share, given the below where should I start on my debugging? $ git --version git version 1.7.9 $ uname -a CYGWIN_NT-6.1-WOW64 LNDLE642FX7ZTR1 1.7.17(0.262/5/3) 2012-10-19 14:39 i686 Cygwin jason.pyeron@localhost //server/share/dir/subdir $ git init test Initialized empty Git repository in //server/share/dir/subdir/test/.git/ jason.pyeron@localhost //server/share/dir/subdir $ cd test/ jason.pyeron@localhost //server/share/dir/subdir/test $ echo the quick brown fox jumped over the lazy dogs > test.txt jason.pyeron@localhost //server/share/dir/subdir/test $ git add test.txt jason.pyeron@localhost //server/share/dir/subdir/test $ git commit -m test error: unable to find 8b7323820a21ebd1360e27262b3c61283c266c23 fatal: 8b7323820a21ebd1360e27262b3c61283c266c23 is not a valid object jason.pyeron@localhost //server/share/dir/subdir/test $ find .git/ .git/ .git/COMMIT_EDITMSG .git/config .git/description .git/HEAD .git/hooks .git/hooks/applypatch-msg.sample .git/hooks/commit-msg.sample .git/hooks/post-update.sample .git/hooks/pre-applypatch.sample .git/hooks/pre-commit.sample .git/hooks/pre-rebase.sample .git/hooks/prepare-commit-msg.sample .git/hooks/update.sample .git/index .git/info .git/info/exclude .git/objects .git/objects/8b .git/objects/8b/7323820a21ebd1360e27262b3c61283c266c23 .git/objects/ca .git/objects/ca/630d704614c35b81d504cb5e87eaec8a78a3b3 .git/objects/info .git/objects/pack .git/refs .git/refs/heads .git/refs/tags $ stat .git/objects/8b/7323820a21ebd1360e27262b3c61283c266c23 File: `.git/objects/8b/7323820a21ebd1360e27262b3c61283c266c23' Size: 53 Blocks: 4 IO Block: 65536 regular file Device: 6e2c3656h/1848391254d Inode: 1125899911803044 Links: 1 Access: (0444/-r--r--r--) Uid: (2246260/jason.pyeron) Gid: (10513/Domain Users) Access: 2013-04-04 10:57:43.458720700 -0400 Modify: 2013-04-04 10:57:43.505522500 -0400 Change: 2013-04-04 10:57:43.536723700 -0400 Birth: 2013-04-04 10:57:43.458720700 -0400 [-- Attachment #2: smime.p7s --] [-- Type: application/x-pkcs7-signature, Size: 5615 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: trouble on windows network share 2013-04-04 15:01 trouble on windows network share Pyeron, Jason J CTR (US) @ 2013-04-04 15:51 ` Jeff King 2013-04-05 12:44 ` Pyeron, Jason J CTR (US) 2013-05-02 21:26 ` deg 1 sibling, 1 reply; 17+ messages in thread From: Jeff King @ 2013-04-04 15:51 UTC (permalink / raw) To: Pyeron, Jason J CTR (US); +Cc: git@vger.kernel.org On Thu, Apr 04, 2013 at 03:01:36PM +0000, Pyeron, Jason J CTR (US) wrote: > I am having trouble when the .git folder is on a network share, given the below where should I start on my debugging? > [...] > jason.pyeron@localhost //server/share/dir/subdir/test > $ git add test.txt > > jason.pyeron@localhost //server/share/dir/subdir/test > $ git commit -m test > error: unable to find 8b7323820a21ebd1360e27262b3c61283c266c23 > fatal: 8b7323820a21ebd1360e27262b3c61283c266c23 is not a valid object Hmm. That message probably comes from: static int sha1_loose_object_info(const unsigned char *sha1, unsigned long *sizep) { [...] map = map_sha1_file(sha1, &mapsize); if (!map) return error("unable to find %s", sha1_to_hex(sha1)); So we have found the object and know that it is loose, but then mmap-ing it fails. My guess is that your system does not support mmap across network shares (whether this is an OS issue or a cygwin limitation, I don't know). You could confirm it by running your "git commit" under strace, which I expect would show mmap returning -ENODEV or similar. You can work around it by compiling git with NO_MMAP=1. You might also try msysgit rather than cygwin, which seems to have its own win32 mmap compatibility layer. Finally, I suspect we could include our emulate-mmap-with-pread compatibility wrapper all the time, and drop back to it automatically at run-time when we see ENODEV or a similar error return from mmap. -Peff ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: trouble on windows network share 2013-04-04 15:51 ` Jeff King @ 2013-04-05 12:44 ` Pyeron, Jason J CTR (US) 2013-04-11 4:56 ` Jeff King 0 siblings, 1 reply; 17+ messages in thread From: Pyeron, Jason J CTR (US) @ 2013-04-05 12:44 UTC (permalink / raw) To: git@vger.kernel.org; +Cc: Jeff King [-- Attachment #1: Type: text/plain, Size: 3812 bytes --] [strace attachment has been removed, email being resent] It looks like there is a race condition going on, especially since the location and message changes. Could it be the file creation, file read, apply file security is happening when it should be file create, apply security, file read? Looking at trace line: 1088001 (full trace attached) 1181 1087049 [main] git 9320 symlink_info::check: 0x0 = NtCreateFile (\??\UNC\server\share\dir1\dir2\test\.git\objects\68) 84 1087133 [main] git 9320 symlink_info::check: not a symlink 733 1087866 [main] git 9320 symlink_info::check: 0 = symlink.check(\\server\share\dir1\dir2\test\.git\objects\68, 0x288280) (0x4022) 62 1087928 [main] git 9320 path_conv::check: this->path(\\server\share\dir1\dir2\test\.git\objects\68\38761d549cf76033d2e9faf5954e62839eb25d), has_acls(1) 31 1087959 [main] git 9320 build_fh_pc: fh 0x61274CA0, dev 0xC3 21 1087980 [main] git 9320 __set_errno: int fhandler_base::fhaccess(int, bool):367 setting errno 2 21 1088001 [main] git 9320 fhandler_base::fhaccess: returning -1 19 1088020 [main] git 9320 access: returning -1 164 1088184 [main] git 9320 fhandler_pty_slave::write: pty0, write(50A474, 7) 18 1088202 [main] git 9320 fhandler_pty_slave::write: (657): pty output_mutex (0xC0): waiting -1 ms 20 1088222 [main] git 9320 fhandler_pty_slave::write: (657): pty output_mutex: acquired error: 21 1088243 [main] git 9320 fhandler_pty_slave::write: (672): pty output_mutex(0xC0) released 18 1088261 [main] git 9320 write: 7 = write(2, 0x50A474, 7) 36 1088297 [main] git 9320 fhandler_pty_slave::write: pty0, write(288680, 102) 18 1088315 [main] git 9320 fhandler_pty_slave::write: (657): pty output_mutex (0xC0): waiting -1 ms 18 1088333 [main] git 9320 fhandler_pty_slave::write: (657): pty output_mutex: acquired Trying to write ref refs/heads/master with nonexistent object 6838761d549cf76033d2e9faf5954e62839eb25d > -----Original Message----- > From: Jeff King > Sent: Thursday, April 04, 2013 11:51 AM > > On Thu, Apr 04, 2013 at 03:01:36PM +0000, Pyeron, Jason J CTR (US) > wrote: > > > I am having trouble when the .git folder is on a network share, given > the below where should I start on my debugging? > > [...] > > jason.pyeron@localhost //server/share/dir/subdir/test > > $ git add test.txt > > > > jason.pyeron@localhost //server/share/dir/subdir/test > > $ git commit -m test > > error: unable to find 8b7323820a21ebd1360e27262b3c61283c266c23 > > fatal: 8b7323820a21ebd1360e27262b3c61283c266c23 is not a valid object > > Hmm. That message probably comes from: > > static int sha1_loose_object_info(const unsigned char *sha1, unsigned > long *sizep) > { > [...] > map = map_sha1_file(sha1, &mapsize); > if (!map) > return error("unable to find %s", sha1_to_hex(sha1)); > > So we have found the object and know that it is loose, but then mmap- > ing > it fails. My guess is that your system does not support mmap across > network shares (whether this is an OS issue or a cygwin limitation, I > don't know). You could confirm it by running your "git commit" under > strace, which I expect would show mmap returning -ENODEV or similar. > > You can work around it by compiling git with NO_MMAP=1. > > You might also try msysgit rather than cygwin, which seems to have its > own win32 mmap compatibility layer. > > Finally, I suspect we could include our emulate-mmap-with-pread > compatibility wrapper all the time, and drop back to it automatically > at > run-time when we see ENODEV or a similar error return from mmap. > > -Peff > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html [-- Attachment #2: smime.p7s --] [-- Type: application/x-pkcs7-signature, Size: 5615 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: trouble on windows network share 2013-04-05 12:44 ` Pyeron, Jason J CTR (US) @ 2013-04-11 4:56 ` Jeff King 0 siblings, 0 replies; 17+ messages in thread From: Jeff King @ 2013-04-11 4:56 UTC (permalink / raw) To: Pyeron, Jason J CTR (US); +Cc: git@vger.kernel.org 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; ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: trouble on windows network share 2013-04-04 15:01 trouble on windows network share Pyeron, Jason J CTR (US) 2013-04-04 15:51 ` Jeff King @ 2013-05-02 21:26 ` deg 2013-05-03 9:27 ` Thomas Rast 1 sibling, 1 reply; 17+ messages in thread From: deg @ 2013-05-02 21:26 UTC (permalink / raw) To: git I'm having this same problem. Here's one more clue that may help: The problem is dependent on the exact type of NAS drive. I moved from a Buffalo LS-X2.0, which worked fine, to a WD "My Book Live" (MBL), which has this problem. I don't know much more yet about why the MBL is failing, but am still poking around, and am happy to try tests for anyone who wants to debug this. -- View this message in context: http://git.661346.n2.nabble.com/trouble-on-windows-network-share-tp7581547p7584800.html Sent from the git mailing list archive at Nabble.com. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: trouble on windows network share 2013-05-02 21:26 ` deg @ 2013-05-03 9:27 ` Thomas Rast 2013-05-04 23:23 ` David Goldfarb 0 siblings, 1 reply; 17+ messages in thread From: Thomas Rast @ 2013-05-03 9:27 UTC (permalink / raw) To: deg; +Cc: git deg <deg@degel.com> writes: > I'm having this same problem. > > Here's one more clue that may help: The problem is dependent on the exact > type of NAS drive. > I moved from a Buffalo LS-X2.0, which worked fine, to a WD "My Book Live" > (MBL), which has this problem. > > I don't know much more yet about why the MBL is failing, but am still poking > around, and am happy to try tests for anyone who wants to debug this. Can you reproduce the problem under Linux (with the NAS mounted using CIFS), or just Windows? If it works under Linux, you could record strace logs, e.g. echo foo >test.txt strace -f -o trace.1 git add test.txt strace -f -o trace.2 git commit -m test etc. This would massively help debugging. Judging from the OP's log, the filesystem is just broken and can't make up its mind about what files exist, but in the strace log we could see exactly where it gives weird answers (or that it doesn't, and thus get clues to any possible git bugs). -- Thomas Rast trast@{inf,student}.ethz.ch ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: trouble on windows network share 2013-05-03 9:27 ` Thomas Rast @ 2013-05-04 23:23 ` David Goldfarb 2013-05-06 9:42 ` Thomas Rast 0 siblings, 1 reply; 17+ messages in thread From: David Goldfarb @ 2013-05-04 23:23 UTC (permalink / raw) To: Thomas Rast; +Cc: git@vger.kernel.org [-- Attachment #1: Type: text/plain, Size: 3012 bytes --] Git works correctly under Linux (Ubuntu 12.04; git 1.7.9.5). I've attached the strace outputs. (Note: for reasons that are probably irrelevant, I needed to run the commands sudo'd. Shout back if this is an issue). Under Windows 7, Cygwin git 1.7.9, commit fails: U:\foo>git commit -m "added foo2" error: unable to find 0b89efdeef245ed6a0a7eacc5c578629a141f856 fatal: 0b89efdeef245ed6a0a7eacc5c578629a141f856 is not a valid object For what it's worth, note that the file does exist. U:\foo>ls -l .git/objects/0b total 1024 -rwxrw-r-- 1 ???????? ???????? 74 May 5 01:15 89efdeef245ed6a0a7eacc5c578629a141f856 (I'm not sure why the permissions are trashed. Seems to be a Cygwin thing, or maybe my Cygwin config. The "??????" also appears on local files, and I believe also with files on the old Buffalo drive, so I don't think it is relevant to the problem). Just in case, here's the same dir, as seen from the Ubuntu VM: deg@ubuntu:/mnt/users/foo$ ls -l .git/objects/0b total 64 -rwxr-xr-x 0 root root 74 May 5 01:15 89efdeef245ed6a0a7eacc5c578629a141f856 Again, note that there is some user permissions lossage here. I don't know enough about Linux mount or CIFS, and apparently did the mount in a way that everything seems to appear to be stuck owned by root. (same problem I hinted at above). Hope this is not relevant to the problem. Here's how the same directory looks, when I'm ssh'd into the NAS box itself: CentralPark:/shares/Users/foo# ls -l .git/objects/0b total 64 -rwxrw-r-- 1 deg share 74 May 5 01:15 89efdeef245ed6a0a7eacc5c578629a141f856 In any event, the symptoms don't seem to be a permissions problem, so all this extra info is probably just a red herring, I hope. David -----Original Message----- From: Thomas Rast [mailto:trast@inf.ethz.ch] Sent: Friday, May 03, 2013 12:27 PM To: David Goldfarb Cc: git@vger.kernel.org Subject: Re: trouble on windows network share deg <deg@degel.com> writes: > I'm having this same problem. > > Here's one more clue that may help: The problem is dependent on the > exact type of NAS drive. > I moved from a Buffalo LS-X2.0, which worked fine, to a WD "My Book Live" > (MBL), which has this problem. > > I don't know much more yet about why the MBL is failing, but am still > poking around, and am happy to try tests for anyone who wants to debug this. Can you reproduce the problem under Linux (with the NAS mounted using CIFS), or just Windows? If it works under Linux, you could record strace logs, e.g. echo foo >test.txt strace -f -o trace.1 git add test.txt strace -f -o trace.2 git commit -m test etc. This would massively help debugging. Judging from the OP's log, the filesystem is just broken and can't make up its mind about what files exist, but in the strace log we could see exactly where it gives weird answers (or that it doesn't, and thus get clues to any possible git bugs). -- Thomas Rast trast@{inf,student}.ethz.ch [-- Attachment #2: trace1 --] [-- Type: application/octet-stream, Size: 13672 bytes --] 5333 execve("/usr/bin/git", ["git", "add", "test.txt"], [/* 16 vars */]) = 0 5333 brk(0) = 0x8774000 5333 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) 5333 mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77c6000 5333 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) 5333 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 5333 fstat64(3, {st_mode=S_IFREG|0644, st_size=101692, ...}) = 0 5333 mmap2(NULL, 101692, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb77ad000 5333 close(3) = 0 5333 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) 5333 open("/lib/i386-linux-gnu/libz.so.1", O_RDONLY|O_CLOEXEC) = 3 5333 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\27\0\0004\0\0\0"..., 512) = 512 5333 fstat64(3, {st_mode=S_IFREG|0644, st_size=83572, ...}) = 0 5333 mmap2(NULL, 86288, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7797000 5333 mmap2(0xb77ab000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13) = 0xb77ab000 5333 close(3) = 0 5333 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) 5333 open("/lib/i386-linux-gnu/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3 5333 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260&\0\0004\0\0\0"..., 512) = 512 5333 fstat64(3, {st_mode=S_IFREG|0644, st_size=83776, ...}) = 0 5333 mmap2(NULL, 96296, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb777f000 5333 mprotect(0xb7792000, 4096, PROT_NONE) = 0 5333 mmap2(0xb7793000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13) = 0xb7793000 5333 mmap2(0xb7795000, 6184, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7795000 5333 close(3) = 0 5333 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) 5333 open("/lib/i386-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 5333 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p[\0\0004\0\0\0"..., 512) = 512 5333 fstat64(3, {st_mode=S_IFREG|0755, st_size=124663, ...}) = 0 5333 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb777e000 5333 mmap2(NULL, 107008, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7763000 5333 mmap2(0xb777a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16) = 0xb777a000 5333 mmap2(0xb777c000, 4608, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb777c000 5333 close(3) = 0 5333 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) 5333 open("/lib/i386-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 5333 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\226\1\0004\0\0\0"..., 512) = 512 5333 fstat64(3, {st_mode=S_IFREG|0755, st_size=1730024, ...}) = 0 5333 mmap2(NULL, 1743580, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb75b9000 5333 mprotect(0xb775c000, 4096, PROT_NONE) = 0 5333 mmap2(0xb775d000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a3) = 0xb775d000 5333 mmap2(0xb7760000, 10972, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7760000 5333 close(3) = 0 5333 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb75b8000 5333 set_thread_area({entry_number:-1 -> 6, base_addr:0xb75b86c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 5333 mprotect(0xb775d000, 8192, PROT_READ) = 0 5333 mprotect(0xb777a000, 4096, PROT_READ) = 0 5333 mprotect(0xb7793000, 4096, PROT_READ) = 0 5333 mprotect(0xb77ab000, 4096, PROT_READ) = 0 5333 mprotect(0x818c000, 4096, PROT_READ) = 0 5333 mprotect(0xb77e9000, 4096, PROT_READ) = 0 5333 munmap(0xb77ad000, 101692) = 0 5333 set_tid_address(0xb75b8728) = 5333 5333 set_robust_list(0xb75b8730, 0xc) = 0 5333 futex(0xbff46644, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, b75b86c0) = -1 EAGAIN (Resource temporarily unavailable) 5333 rt_sigaction(SIGRTMIN, {0xb7768570, [], SA_SIGINFO}, NULL, 8) = 0 5333 rt_sigaction(SIGRT_1, {0xb77685f0, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0 5333 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0 5333 getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0 5333 uname({sys="Linux", node="ubuntu", ...}) = 0 5333 brk(0) = 0x8774000 5333 brk(0x8795000) = 0x8795000 5333 open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3 5333 fstat64(3, {st_mode=S_IFREG|0644, st_size=8748544, ...}) = 0 5333 mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb73b8000 5333 mmap2(NULL, 4096, PROT_READ, MAP_PRIVATE, 3, 0x5e0) = 0xb77c5000 5333 close(3) = 0 5333 getcwd("/mnt/users/foo", 4096) = 15 5333 stat64(".", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5333 stat64(".git", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5333 access(".git/objects", X_OK) = 0 5333 access(".git/refs", X_OK) = 0 5333 lstat64(".git/HEAD", {st_mode=S_IFREG|0755, st_size=23, ...}) = 0 5333 open(".git/HEAD", O_RDONLY|O_LARGEFILE) = 3 5333 read(3, "ref: refs/heads/master\n", 255) = 23 5333 read(3, "", 232) = 0 5333 close(3) = 0 5333 access("/etc/gitconfig", R_OK) = -1 ENOENT (No such file or directory) 5333 access("/home/deg/.gitconfig", R_OK) = 0 5333 open("/home/deg/.gitconfig", O_RDONLY|O_LARGEFILE) = 3 5333 fstat64(3, {st_mode=S_IFREG|0664, st_size=1036, ...}) = 0 5333 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77c4000 5333 read(3, "[user]\n name = David Gold"..., 4096) = 1036 5333 read(3, "", 4096) = 0 5333 close(3) = 0 5333 munmap(0xb77c4000, 4096) = 0 5333 access(".git/config", R_OK) = 0 5333 open(".git/config", O_RDONLY|O_LARGEFILE) = 3 5333 fstat64(3, {st_mode=S_IFREG|0755, st_size=111, ...}) = 0 5333 mmap2(NULL, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77c1000 5333 read(3, "[core]\n\trepositoryformatversion "..., 16384) = 111 5333 read(3, "", 16384) = 0 5333 close(3) = 0 5333 munmap(0xb77c1000, 16384) = 0 5333 stat64(".", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5333 getcwd("/mnt/users/foo", 1024) = 15 5333 chdir(".") = 0 5333 getcwd("/mnt/users/foo", 4096) = 15 5333 lstat64("/mnt/users/foo", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5333 chdir("/mnt/users/foo") = 0 5333 stat64(".git", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5333 access("/etc/gitconfig", R_OK) = -1 ENOENT (No such file or directory) 5333 access("/home/deg/.gitconfig", R_OK) = 0 5333 open("/home/deg/.gitconfig", O_RDONLY|O_LARGEFILE) = 3 5333 fstat64(3, {st_mode=S_IFREG|0664, st_size=1036, ...}) = 0 5333 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77c4000 5333 read(3, "[user]\n name = David Gold"..., 4096) = 1036 5333 read(3, "", 4096) = 0 5333 close(3) = 0 5333 munmap(0xb77c4000, 4096) = 0 5333 access(".git/config", R_OK) = 0 5333 open(".git/config", O_RDONLY|O_LARGEFILE) = 3 5333 fstat64(3, {st_mode=S_IFREG|0755, st_size=111, ...}) = 0 5333 mmap2(NULL, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77c1000 5333 read(3, "[core]\n\trepositoryformatversion "..., 16384) = 111 5333 read(3, "", 16384) = 0 5333 close(3) = 0 5333 munmap(0xb77c1000, 16384) = 0 5333 stat64(".git", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5333 getcwd("/mnt/users/foo", 1024) = 15 5333 chdir(".git") = 0 5333 getcwd("/mnt/users/foo/.git", 4096) = 20 5333 lstat64("/mnt/users/foo/.git", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5333 chdir("/mnt/users/foo") = 0 5333 chdir("/mnt/users/foo") = 0 5333 access("/etc/gitconfig", R_OK) = -1 ENOENT (No such file or directory) 5333 access("/home/deg/.gitconfig", R_OK) = 0 5333 open("/home/deg/.gitconfig", O_RDONLY|O_LARGEFILE) = 3 5333 fstat64(3, {st_mode=S_IFREG|0664, st_size=1036, ...}) = 0 5333 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77c4000 5333 read(3, "[user]\n name = David Gold"..., 4096) = 1036 5333 read(3, "", 4096) = 0 5333 close(3) = 0 5333 munmap(0xb77c4000, 4096) = 0 5333 access(".git/config", R_OK) = 0 5333 open(".git/config", O_RDONLY|O_LARGEFILE) = 3 5333 fstat64(3, {st_mode=S_IFREG|0755, st_size=111, ...}) = 0 5333 mmap2(NULL, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77c1000 5333 read(3, "[core]\n\trepositoryformatversion "..., 16384) = 111 5333 read(3, "", 16384) = 0 5333 close(3) = 0 5333 munmap(0xb77c1000, 16384) = 0 5333 readlink(".git/index", 0xbff43f2c, 4096) = -1 EINVAL (Invalid argument) 5333 open(".git/index.lock", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0666) = 3 5333 rt_sigaction(SIGINT, {0x80e5cd0, [INT], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0 5333 rt_sigaction(SIGHUP, {0x80e5cd0, [HUP], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0 5333 rt_sigaction(SIGTERM, {0x80e5cd0, [TERM], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0 5333 rt_sigaction(SIGQUIT, {0x80e5cd0, [QUIT], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0 5333 rt_sigaction(SIGPIPE, {0x80e5cd0, [PIPE], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0 5333 open(".git/index", O_RDONLY|O_LARGEFILE) = 4 5333 fstat64(4, {st_mode=S_IFREG|0755, st_size=209, ...}) = 0 5333 mmap2(NULL, 209, PROT_READ|PROT_WRITE, MAP_PRIVATE, 4, 0) = 0xb77c4000 5333 close(4) = 0 5333 munmap(0xb77c4000, 209) = 0 5333 access(".git/info/exclude", R_OK) = 0 5333 open(".git/info/exclude", O_RDONLY|O_LARGEFILE) = 4 5333 fstat64(4, {st_mode=S_IFREG|0755, st_size=240, ...}) = 0 5333 read(4, "# git ls-files --others --exclud"..., 240) = 240 5333 close(4) = 0 5333 openat(AT_FDCWD, ".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 4 5333 getdents64(4, /* 7 entries */, 32768) = 184 5333 open(".gitignore", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5333 getdents64(4, /* 0 entries */, 32768) = 0 5333 close(4) = 0 5333 lstat64("test.txt", {st_mode=S_IFREG|0755, st_size=3, ...}) = 0 5333 open("test.txt", O_RDONLY|O_LARGEFILE) = 4 5333 read(4, "foo", 3) = 3 5333 access("/etc/gitconfig", R_OK) = -1 ENOENT (No such file or directory) 5333 access("/home/deg/.gitconfig", R_OK) = 0 5333 open("/home/deg/.gitconfig", O_RDONLY|O_LARGEFILE) = 5 5333 fstat64(5, {st_mode=S_IFREG|0664, st_size=1036, ...}) = 0 5333 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77c4000 5333 read(5, "[user]\n name = David Gold"..., 4096) = 1036 5333 read(5, "", 4096) = 0 5333 close(5) = 0 5333 munmap(0xb77c4000, 4096) = 0 5333 access(".git/config", R_OK) = 0 5333 open(".git/config", O_RDONLY|O_LARGEFILE) = 5 5333 fstat64(5, {st_mode=S_IFREG|0755, st_size=111, ...}) = 0 5333 mmap2(NULL, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77c1000 5333 read(5, "[core]\n\trepositoryformatversion "..., 16384) = 111 5333 read(5, "", 16384) = 0 5333 close(5) = 0 5333 munmap(0xb77c1000, 16384) = 0 5333 open("/etc/gitattributes", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5333 open(".gitattributes", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5333 open(".git/info/attributes", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5333 openat(AT_FDCWD, ".git/objects/pack", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 5 5333 getdents64(5, /* 2 entries */, 32768) = 48 5333 getdents64(5, /* 0 entries */, 32768) = 0 5333 close(5) = 0 5333 open(".git/objects/info/alternates", O_RDONLY|O_LARGEFILE|O_NOATIME) = -1 ENOENT (No such file or directory) 5333 access(".git/objects/19/102815663d23f8b75a47e7a01965dcdc96468c", F_OK) = -1 ENOENT (No such file or directory) 5333 gettimeofday({1367708728, 409169}, NULL) = 0 5333 open(".git/objects/19/tmp_obj_ZRu8cc", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0444) = 5 5333 brk(0x87be000) = 0x87be000 5333 write(5, "x\1K\312\311OR0fH\313\317\7\0\22\16\0037", 18) = 18 5333 brk(0x87ae000) = 0x87ae000 5333 brk(0x879e000) = 0x879e000 5333 close(5) = 0 5333 link(".git/objects/19/tmp_obj_ZRu8cc", ".git/objects/19/102815663d23f8b75a47e7a01965dcdc96468c") = 0 5333 unlink(".git/objects/19/tmp_obj_ZRu8cc") = 0 5333 close(4) = 0 5333 write(3, "DIRC\0\0\0\2\0\0\0\3Q\205\202\2252\21\334\250Q\205\202\2255\310\326\250\0\0\0\0"..., 262) = 262 5333 fstat64(3, {st_mode=S_IFREG|0755, st_size=262, ...}) = 0 5333 close(3) = 0 5333 rename(".git/index.lock", ".git/index") = 0 5333 fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0 5333 close(1) = 0 5333 exit_group(0) = ? [-- Attachment #3: trace2 --] [-- Type: application/octet-stream, Size: 33172 bytes --] 5344 execve("/usr/bin/git", ["git", "commit", "-m", "test"], [/* 16 vars */]) = 0 5344 brk(0) = 0x8542000 5344 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) 5344 mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7778000 5344 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) 5344 open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 5344 fstat64(3, {st_mode=S_IFREG|0644, st_size=101692, ...}) = 0 5344 mmap2(NULL, 101692, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb775f000 5344 close(3) = 0 5344 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) 5344 open("/lib/i386-linux-gnu/libz.so.1", O_RDONLY|O_CLOEXEC) = 3 5344 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\27\0\0004\0\0\0"..., 512) = 512 5344 fstat64(3, {st_mode=S_IFREG|0644, st_size=83572, ...}) = 0 5344 mmap2(NULL, 86288, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7749000 5344 mmap2(0xb775d000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13) = 0xb775d000 5344 close(3) = 0 5344 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) 5344 open("/lib/i386-linux-gnu/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3 5344 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260&\0\0004\0\0\0"..., 512) = 512 5344 fstat64(3, {st_mode=S_IFREG|0644, st_size=83776, ...}) = 0 5344 mmap2(NULL, 96296, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7731000 5344 mprotect(0xb7744000, 4096, PROT_NONE) = 0 5344 mmap2(0xb7745000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13) = 0xb7745000 5344 mmap2(0xb7747000, 6184, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7747000 5344 close(3) = 0 5344 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) 5344 open("/lib/i386-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 5344 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p[\0\0004\0\0\0"..., 512) = 512 5344 fstat64(3, {st_mode=S_IFREG|0755, st_size=124663, ...}) = 0 5344 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7730000 5344 mmap2(NULL, 107008, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7715000 5344 mmap2(0xb772c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16) = 0xb772c000 5344 mmap2(0xb772e000, 4608, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb772e000 5344 close(3) = 0 5344 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) 5344 open("/lib/i386-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 5344 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\226\1\0004\0\0\0"..., 512) = 512 5344 fstat64(3, {st_mode=S_IFREG|0755, st_size=1730024, ...}) = 0 5344 mmap2(NULL, 1743580, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb756b000 5344 mprotect(0xb770e000, 4096, PROT_NONE) = 0 5344 mmap2(0xb770f000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a3) = 0xb770f000 5344 mmap2(0xb7712000, 10972, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7712000 5344 close(3) = 0 5344 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb756a000 5344 set_thread_area({entry_number:-1 -> 6, base_addr:0xb756a6c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 5344 mprotect(0xb770f000, 8192, PROT_READ) = 0 5344 mprotect(0xb772c000, 4096, PROT_READ) = 0 5344 mprotect(0xb7745000, 4096, PROT_READ) = 0 5344 mprotect(0xb775d000, 4096, PROT_READ) = 0 5344 mprotect(0x818c000, 4096, PROT_READ) = 0 5344 mprotect(0xb779b000, 4096, PROT_READ) = 0 5344 munmap(0xb775f000, 101692) = 0 5344 set_tid_address(0xb756a728) = 5344 5344 set_robust_list(0xb756a730, 0xc) = 0 5344 futex(0xbfdc1054, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, b756a6c0) = -1 EAGAIN (Resource temporarily unavailable) 5344 rt_sigaction(SIGRTMIN, {0xb771a570, [], SA_SIGINFO}, NULL, 8) = 0 5344 rt_sigaction(SIGRT_1, {0xb771a5f0, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0 5344 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0 5344 getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0 5344 uname({sys="Linux", node="ubuntu", ...}) = 0 5344 brk(0) = 0x8542000 5344 brk(0x8563000) = 0x8563000 5344 open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3 5344 fstat64(3, {st_mode=S_IFREG|0644, st_size=8748544, ...}) = 0 5344 mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb736a000 5344 mmap2(NULL, 4096, PROT_READ, MAP_PRIVATE, 3, 0x5e0) = 0xb7777000 5344 close(3) = 0 5344 getcwd("/mnt/users/foo", 4096) = 15 5344 stat64(".", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5344 stat64(".git", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5344 access(".git/objects", X_OK) = 0 5344 access(".git/refs", X_OK) = 0 5344 lstat64(".git/HEAD", {st_mode=S_IFREG|0755, st_size=23, ...}) = 0 5344 open(".git/HEAD", O_RDONLY|O_LARGEFILE) = 3 5344 read(3, "ref: refs/heads/master\n", 255) = 23 5344 read(3, "", 232) = 0 5344 close(3) = 0 5344 access("/etc/gitconfig", R_OK) = -1 ENOENT (No such file or directory) 5344 access("/home/deg/.gitconfig", R_OK) = 0 5344 open("/home/deg/.gitconfig", O_RDONLY|O_LARGEFILE) = 3 5344 fstat64(3, {st_mode=S_IFREG|0664, st_size=1036, ...}) = 0 5344 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7776000 5344 read(3, "[user]\n name = David Gold"..., 4096) = 1036 5344 read(3, "", 4096) = 0 5344 close(3) = 0 5344 munmap(0xb7776000, 4096) = 0 5344 access(".git/config", R_OK) = 0 5344 open(".git/config", O_RDONLY|O_LARGEFILE) = 3 5344 fstat64(3, {st_mode=S_IFREG|0755, st_size=111, ...}) = 0 5344 mmap2(NULL, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7773000 5344 read(3, "[core]\n\trepositoryformatversion "..., 16384) = 111 5344 read(3, "", 16384) = 0 5344 close(3) = 0 5344 munmap(0xb7773000, 16384) = 0 5344 stat64(".", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5344 getcwd("/mnt/users/foo", 1024) = 15 5344 chdir(".") = 0 5344 getcwd("/mnt/users/foo", 4096) = 15 5344 lstat64("/mnt/users/foo", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5344 chdir("/mnt/users/foo") = 0 5344 stat64(".git", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5344 access("/etc/gitconfig", R_OK) = -1 ENOENT (No such file or directory) 5344 access("/home/deg/.gitconfig", R_OK) = 0 5344 open("/home/deg/.gitconfig", O_RDONLY|O_LARGEFILE) = 3 5344 fstat64(3, {st_mode=S_IFREG|0664, st_size=1036, ...}) = 0 5344 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7776000 5344 read(3, "[user]\n name = David Gold"..., 4096) = 1036 5344 read(3, "", 4096) = 0 5344 close(3) = 0 5344 munmap(0xb7776000, 4096) = 0 5344 access(".git/config", R_OK) = 0 5344 open(".git/config", O_RDONLY|O_LARGEFILE) = 3 5344 fstat64(3, {st_mode=S_IFREG|0755, st_size=111, ...}) = 0 5344 mmap2(NULL, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7773000 5344 read(3, "[core]\n\trepositoryformatversion "..., 16384) = 111 5344 read(3, "", 16384) = 0 5344 close(3) = 0 5344 munmap(0xb7773000, 16384) = 0 5344 stat64(".git", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5344 getcwd("/mnt/users/foo", 1024) = 15 5344 chdir(".git") = 0 5344 getcwd("/mnt/users/foo/.git", 4096) = 20 5344 lstat64("/mnt/users/foo/.git", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5344 chdir("/mnt/users/foo") = 0 5344 chdir("/mnt/users/foo") = 0 5344 lstat64(".git/HEAD", {st_mode=S_IFREG|0755, st_size=23, ...}) = 0 5344 open(".git/HEAD", O_RDONLY|O_LARGEFILE) = 3 5344 read(3, "ref: refs/heads/master\n", 255) = 23 5344 read(3, "", 232) = 0 5344 close(3) = 0 5344 lstat64(".git/refs/heads/master", {st_mode=S_IFREG|0755, st_size=41, ...}) = 0 5344 open(".git/refs/heads/master", O_RDONLY|O_LARGEFILE) = 3 5344 read(3, "1c9bcfa1f3ae0f565480249abbf17a8a"..., 255) = 41 5344 read(3, "", 214) = 0 5344 close(3) = 0 5344 access("/etc/gitconfig", R_OK) = -1 ENOENT (No such file or directory) 5344 access("/home/deg/.gitconfig", R_OK) = 0 5344 open("/home/deg/.gitconfig", O_RDONLY|O_LARGEFILE) = 3 5344 fstat64(3, {st_mode=S_IFREG|0664, st_size=1036, ...}) = 0 5344 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7776000 5344 read(3, "[user]\n name = David Gold"..., 4096) = 1036 5344 read(3, "", 4096) = 0 5344 close(3) = 0 5344 munmap(0xb7776000, 4096) = 0 5344 access(".git/config", R_OK) = 0 5344 open(".git/config", O_RDONLY|O_LARGEFILE) = 3 5344 fstat64(3, {st_mode=S_IFREG|0755, st_size=111, ...}) = 0 5344 mmap2(NULL, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7773000 5344 read(3, "[core]\n\trepositoryformatversion "..., 16384) = 111 5344 read(3, "", 16384) = 0 5344 close(3) = 0 5344 munmap(0xb7773000, 16384) = 0 5344 lstat64(".git/MERGE_HEAD", 0xbfdbfb10) = -1 ENOENT (No such file or directory) 5344 lstat64(".git/CHERRY_PICK_HEAD", 0xbfdbfb10) = -1 ENOENT (No such file or directory) 5344 lstat64(".git/HEAD", {st_mode=S_IFREG|0755, st_size=23, ...}) = 0 5344 open(".git/HEAD", O_RDONLY|O_LARGEFILE) = 3 5344 read(3, "ref: refs/heads/master\n", 255) = 23 5344 read(3, "", 232) = 0 5344 close(3) = 0 5344 lstat64(".git/refs/heads/master", {st_mode=S_IFREG|0755, st_size=41, ...}) = 0 5344 open(".git/refs/heads/master", O_RDONLY|O_LARGEFILE) = 3 5344 read(3, "1c9bcfa1f3ae0f565480249abbf17a8a"..., 255) = 41 5344 read(3, "", 214) = 0 5344 close(3) = 0 5344 lstat64(".git/refs/HEAD", 0xbfdbc79c) = -1 ENOENT (No such file or directory) 5344 open(".git/packed-refs", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5344 lstat64(".git/refs/tags/HEAD", 0xbfdbc79c) = -1 ENOENT (No such file or directory) 5344 lstat64(".git/refs/heads/HEAD", 0xbfdbc79c) = -1 ENOENT (No such file or directory) 5344 lstat64(".git/refs/remotes/HEAD", 0xbfdbc79c) = -1 ENOENT (No such file or directory) 5344 lstat64(".git/refs/remotes/HEAD/HEAD", 0xbfdbc79c) = -1 ENOENT (No such file or directory) 5344 openat(AT_FDCWD, ".git/refs", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 5344 getdents64(3, /* 4 entries */, 32768) = 104 5344 stat64(".git/refs/heads", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5344 openat(AT_FDCWD, ".git/refs/heads", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 4 5344 getdents64(4, /* 3 entries */, 32768) = 80 5344 stat64(".git/refs/heads/master", {st_mode=S_IFREG|0755, st_size=41, ...}) = 0 5344 lstat64(".git/refs/heads/master", {st_mode=S_IFREG|0755, st_size=41, ...}) = 0 5344 open(".git/refs/heads/master", O_RDONLY|O_LARGEFILE) = 5 5344 read(5, "1c9bcfa1f3ae0f565480249abbf17a8a"..., 255) = 41 5344 read(5, "", 214) = 0 5344 close(5) = 0 5344 getdents64(4, /* 0 entries */, 32768) = 0 5344 close(4) = 0 5344 stat64(".git/refs/tags", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5344 openat(AT_FDCWD, ".git/refs/tags", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 4 5344 getdents64(4, /* 2 entries */, 32768) = 48 5344 getdents64(4, /* 0 entries */, 32768) = 0 5344 close(4) = 0 5344 getdents64(3, /* 0 entries */, 32768) = 0 5344 close(3) = 0 5344 openat(AT_FDCWD, ".git/objects/pack", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 5344 getdents64(3, /* 2 entries */, 32768) = 48 5344 getdents64(3, /* 0 entries */, 32768) = 0 5344 close(3) = 0 5344 open(".git/objects/info/alternates", O_RDONLY|O_LARGEFILE|O_NOATIME) = -1 ENOENT (No such file or directory) 5344 open(".git/objects/1c/9bcfa1f3ae0f565480249abbf17a8ac7713b47", O_RDONLY|O_LARGEFILE|O_NOATIME) = 3 5344 fstat64(3, {st_mode=S_IFREG|0755, st_size=155, ...}) = 0 5344 mmap2(NULL, 155, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7776000 5344 close(3) = 0 5344 munmap(0xb7776000, 155) = 0 5344 open(".git/info/grafts", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5344 open(".git/shallow", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5344 open(".git/index", O_RDONLY|O_LARGEFILE) = 3 5344 fstat64(3, {st_mode=S_IFREG|0755, st_size=262, ...}) = 0 5344 mmap2(NULL, 262, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0xb7776000 5344 close(3) = 0 5344 munmap(0xb7776000, 262) = 0 5344 readlink(".git/index", 0xbfdbeaac, 4096) = -1 EINVAL (Invalid argument) 5344 open(".git/index.lock", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0666) = 3 5344 rt_sigaction(SIGINT, {0x80e5cd0, [INT], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0 5344 rt_sigaction(SIGHUP, {0x80e5cd0, [HUP], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0 5344 rt_sigaction(SIGTERM, {0x80e5cd0, [TERM], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0 5344 rt_sigaction(SIGQUIT, {0x80e5cd0, [QUIT], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0 5344 rt_sigaction(SIGPIPE, {0x80e5cd0, [PIPE], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0 5344 lstat64("foo1", {st_mode=S_IFREG|0755, st_size=273091, ...}) = 0 5344 open("foo1", O_RDONLY|O_LARGEFILE) = 4 5344 mmap2(NULL, 273091, PROT_READ, MAP_PRIVATE, 4, 0) = 0xb7327000 5344 access("/etc/gitconfig", R_OK) = -1 ENOENT (No such file or directory) 5344 access("/home/deg/.gitconfig", R_OK) = 0 5344 open("/home/deg/.gitconfig", O_RDONLY|O_LARGEFILE) = 5 5344 fstat64(5, {st_mode=S_IFREG|0664, st_size=1036, ...}) = 0 5344 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7326000 5344 read(5, "[user]\n name = David Gold"..., 4096) = 1036 5344 read(5, "", 4096) = 0 5344 close(5) = 0 5344 munmap(0xb7326000, 4096) = 0 5344 access(".git/config", R_OK) = 0 5344 open(".git/config", O_RDONLY|O_LARGEFILE) = 5 5344 fstat64(5, {st_mode=S_IFREG|0755, st_size=111, ...}) = 0 5344 mmap2(NULL, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7323000 5344 read(5, "[core]\n\trepositoryformatversion "..., 16384) = 111 5344 read(5, "", 16384) = 0 5344 close(5) = 0 5344 munmap(0xb7323000, 16384) = 0 5344 open("/etc/gitattributes", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5344 open(".gitattributes", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5344 open(".git/info/attributes", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5344 munmap(0xb7327000, 273091) = 0 5344 close(4) = 0 5344 lstat64("foo2", {st_mode=S_IFREG|0755, st_size=5, ...}) = 0 5344 open("foo2", O_RDONLY|O_LARGEFILE) = 4 5344 read(4, "ddd\r\n", 5) = 5 5344 close(4) = 0 5344 lstat64("test.txt", {st_mode=S_IFREG|0755, st_size=3, ...}) = 0 5344 access(".git/objects/b0/2e7c87fe376a353ea4f014bdb3f5200a946b37", F_OK) = 0 5344 access(".git/objects/2c/bf64f759a62392ad9dfe1fb9c2cdb175876014", F_OK) = 0 5344 access(".git/objects/19/102815663d23f8b75a47e7a01965dcdc96468c", F_OK) = 0 5344 access(".git/objects/97/9e055a30fcf7046465874a5922de39b69b3147", F_OK) = -1 ENOENT (No such file or directory) 5344 gettimeofday({1367708763, 850076}, NULL) = 0 5344 open(".git/objects/97/tmp_obj_7S09fd", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0444) = -1 ENOENT (No such file or directory) 5344 mkdir(".git/objects/97", 0777) = 0 5344 gettimeofday({1367708763, 853804}, NULL) = 0 5344 open(".git/objects/97/tmp_obj_lKMyKb", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0444) = 4 5344 brk(0x858b000) = 0x858b000 5344 brk(0x85bb000) = 0x85bb000 5344 write(4, "x\1+)JMU040`\0b3\23\23\205\264\374|C\206\rz5\355\377\314\263L\355\226"..., 105) = 105 5344 brk(0x85ab000) = 0x85ab000 5344 brk(0x859b000) = 0x859b000 5344 brk(0x858b000) = 0x858b000 5344 brk(0x857b000) = 0x857b000 5344 brk(0x857a000) = 0x857a000 5344 close(4) = 0 5344 link(".git/objects/97/tmp_obj_lKMyKb", ".git/objects/97/9e055a30fcf7046465874a5922de39b69b3147") = 0 5344 unlink(".git/objects/97/tmp_obj_lKMyKb") = 0 5344 brk(0x8578000) = 0x8578000 5344 write(3, "DIRC\0\0\0\2\0\0\0\3Q\205\202\2255\310\326\250Q\205\202\2255\310\326\250\0\0\0\26"..., 281) = 281 5344 fstat64(3, {st_mode=S_IFREG|0755, st_size=281, ...}) = 0 5344 close(3) = 0 5344 rename(".git/index.lock", ".git/index") = 0 5344 access(".git/hooks/pre-commit", X_OK) = -1 ENOENT (No such file or directory) 5344 open(".git/COMMIT_EDITMSG", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 3 5344 fstat64(3, {st_mode=S_IFREG|0755, st_size=0, ...}) = 0 5344 mmap2(NULL, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7366000 5344 time(NULL) = 1367708763 5344 open("/etc/localtime", O_RDONLY|O_CLOEXEC) = 4 5344 fstat64(4, {st_mode=S_IFREG|0644, st_size=2197, ...}) = 0 5344 fstat64(4, {st_mode=S_IFREG|0644, st_size=2197, ...}) = 0 5344 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7365000 5344 read(4, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0"..., 4096) = 2197 5344 _llseek(4, -2, [2195], SEEK_CUR) = 0 5344 read(4, "\n\n", 4096) = 2 5344 close(4) = 0 5344 munmap(0xb7365000, 4096) = 0 5344 lstat64(".git/HEAD", {st_mode=S_IFREG|0755, st_size=23, ...}) = 0 5344 open(".git/HEAD", O_RDONLY|O_LARGEFILE) = 4 5344 read(4, "ref: refs/heads/master\n", 255) = 23 5344 read(4, "", 232) = 0 5344 close(4) = 0 5344 lstat64(".git/refs/heads/master", {st_mode=S_IFREG|0755, st_size=41, ...}) = 0 5344 open(".git/refs/heads/master", O_RDONLY|O_LARGEFILE) = 4 5344 read(4, "1c9bcfa1f3ae0f565480249abbf17a8a"..., 255) = 41 5344 read(4, "", 214) = 0 5344 close(4) = 0 5344 lstat64(".git/refs/HEAD", 0xbfdbc79c) = -1 ENOENT (No such file or directory) 5344 lstat64(".git/refs/tags/HEAD", 0xbfdbc79c) = -1 ENOENT (No such file or directory) 5344 lstat64(".git/refs/heads/HEAD", 0xbfdbc79c) = -1 ENOENT (No such file or directory) 5344 lstat64(".git/refs/remotes/HEAD", 0xbfdbc79c) = -1 ENOENT (No such file or directory) 5344 lstat64(".git/refs/remotes/HEAD/HEAD", 0xbfdbc79c) = -1 ENOENT (No such file or directory) 5344 lstat64(".git/HEAD", {st_mode=S_IFREG|0755, st_size=23, ...}) = 0 5344 open(".git/HEAD", O_RDONLY|O_LARGEFILE) = 4 5344 read(4, "ref: refs/heads/master\n", 255) = 23 5344 read(4, "", 232) = 0 5344 close(4) = 0 5344 lstat64(".git/refs/heads/master", {st_mode=S_IFREG|0755, st_size=41, ...}) = 0 5344 open(".git/refs/heads/master", O_RDONLY|O_LARGEFILE) = 4 5344 read(4, "1c9bcfa1f3ae0f565480249abbf17a8a"..., 255) = 41 5344 read(4, "", 214) = 0 5344 close(4) = 0 5344 lstat64(".git/refs/HEAD", 0xbfdbc25c) = -1 ENOENT (No such file or directory) 5344 lstat64(".git/refs/tags/HEAD", 0xbfdbc25c) = -1 ENOENT (No such file or directory) 5344 lstat64(".git/refs/heads/HEAD", 0xbfdbc25c) = -1 ENOENT (No such file or directory) 5344 lstat64(".git/refs/remotes/HEAD", 0xbfdbc25c) = -1 ENOENT (No such file or directory) 5344 lstat64(".git/refs/remotes/HEAD/HEAD", 0xbfdbc25c) = -1 ENOENT (No such file or directory) 5344 open(".git/objects/1c/9bcfa1f3ae0f565480249abbf17a8ac7713b47", O_RDONLY|O_LARGEFILE|O_NOATIME) = 4 5344 fstat64(4, {st_mode=S_IFREG|0755, st_size=155, ...}) = 0 5344 mmap2(NULL, 155, PROT_READ, MAP_PRIVATE, 4, 0) = 0xb7365000 5344 close(4) = 0 5344 munmap(0xb7365000, 155) = 0 5344 open(".git/objects/1c/9bcfa1f3ae0f565480249abbf17a8ac7713b47", O_RDONLY|O_LARGEFILE|O_NOATIME) = 4 5344 fstat64(4, {st_mode=S_IFREG|0755, st_size=155, ...}) = 0 5344 mmap2(NULL, 155, PROT_READ, MAP_PRIVATE, 4, 0) = 0xb7365000 5344 close(4) = 0 5344 munmap(0xb7365000, 155) = 0 5344 open(".git/objects/0b/89efdeef245ed6a0a7eacc5c578629a141f856", O_RDONLY|O_LARGEFILE|O_NOATIME) = 4 5344 fstat64(4, {st_mode=S_IFREG|0755, st_size=74, ...}) = 0 5344 mmap2(NULL, 74, PROT_READ, MAP_PRIVATE, 4, 0) = 0xb7365000 5344 close(4) = 0 5344 munmap(0xb7365000, 74) = 0 5344 write(3, "test\n", 5) = 5 5344 close(3) = 0 5344 munmap(0xb7366000, 16384) = 0 5344 open(".git/index", O_RDONLY|O_LARGEFILE) = 3 5344 fstat64(3, {st_mode=S_IFREG|0755, st_size=281, ...}) = 0 5344 mmap2(NULL, 281, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0xb7369000 5344 close(3) = 0 5344 munmap(0xb7369000, 281) = 0 5344 access(".git/objects/97/9e055a30fcf7046465874a5922de39b69b3147", F_OK) = 0 5344 access(".git/hooks/prepare-commit-msg", X_OK) = -1 ENOENT (No such file or directory) 5344 access(".git/hooks/commit-msg", X_OK) = -1 ENOENT (No such file or directory) 5344 open(".git/COMMIT_EDITMSG", O_RDONLY|O_LARGEFILE) = 3 5344 read(3, "test\n", 8192) = 5 5344 read(3, "", 12307) = 0 5344 close(3) = 0 5344 open(".git/objects/97/9e055a30fcf7046465874a5922de39b69b3147", O_RDONLY|O_LARGEFILE|O_NOATIME) = 3 5344 fstat64(3, {st_mode=S_IFREG|0755, st_size=105, ...}) = 0 5344 mmap2(NULL, 105, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7369000 5344 close(3) = 0 5344 munmap(0xb7369000, 105) = 0 5344 access(".git/objects/f6/a0de35d12a3b58f12bf1af4ff629b8b004ad82", F_OK) = -1 ENOENT (No such file or directory) 5344 gettimeofday({1367708763, 922857}, NULL) = 0 5344 open(".git/objects/f6/tmp_obj_ZUhZqb", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0444) = -1 ENOENT (No such file or directory) 5344 mkdir(".git/objects/f6", 0777) = 0 5344 gettimeofday({1367708763, 926340}, NULL) = 0 5344 open(".git/objects/f6/tmp_obj_pC3Jgc", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0444) = 3 5344 brk(0x859f000) = 0x859f000 5344 write(3, "x\1\225\216\301\nB!\20E[\373\25\356\203\30\35u\24\"Z\4}\307\250c=\350\365\302\254\357"..., 153) = 153 5344 brk(0x858f000) = 0x858f000 5344 brk(0x857f000) = 0x857f000 5344 brk(0x857d000) = 0x857d000 5344 close(3) = 0 5344 link(".git/objects/f6/tmp_obj_pC3Jgc", ".git/objects/f6/a0de35d12a3b58f12bf1af4ff629b8b004ad82") = 0 5344 unlink(".git/objects/f6/tmp_obj_pC3Jgc") = 0 5344 brk(0x857b000) = 0x857b000 5344 lstat64(".git/HEAD", {st_mode=S_IFREG|0755, st_size=23, ...}) = 0 5344 open(".git/HEAD", O_RDONLY|O_LARGEFILE) = 3 5344 read(3, "ref: refs/heads/master\n", 255) = 23 5344 read(3, "", 232) = 0 5344 close(3) = 0 5344 lstat64(".git/refs/heads/master", {st_mode=S_IFREG|0755, st_size=41, ...}) = 0 5344 open(".git/refs/heads/master", O_RDONLY|O_LARGEFILE) = 3 5344 read(3, "1c9bcfa1f3ae0f565480249abbf17a8a"..., 255) = 41 5344 read(3, "", 214) = 0 5344 close(3) = 0 5344 stat64(".git", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5344 stat64(".git/refs", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5344 stat64(".git/refs/heads", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5344 readlink(".git/refs/heads/master", 0xbfdbeacc, 4096) = -1 EINVAL (Invalid argument) 5344 open(".git/refs/heads/master.lock", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0666) = 3 5344 lstat64(".git/refs/heads/master", {st_mode=S_IFREG|0755, st_size=41, ...}) = 0 5344 open(".git/refs/heads/master", O_RDONLY|O_LARGEFILE) = 4 5344 read(4, "1c9bcfa1f3ae0f565480249abbf17a8a"..., 255) = 41 5344 read(4, "", 214) = 0 5344 close(4) = 0 5344 open(".git/objects/f6/a0de35d12a3b58f12bf1af4ff629b8b004ad82", O_RDONLY|O_LARGEFILE|O_NOATIME) = 4 5344 fstat64(4, {st_mode=S_IFREG|0755, st_size=153, ...}) = 0 5344 mmap2(NULL, 153, PROT_READ, MAP_PRIVATE, 4, 0) = 0xb7369000 5344 close(4) = 0 5344 munmap(0xb7369000, 153) = 0 5344 write(3, "f6a0de35d12a3b58f12bf1af4ff629b8"..., 40) = 40 5344 write(3, "\n", 1) = 1 5344 close(3) = 0 5344 stat64(".git", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5344 stat64(".git/logs", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5344 stat64(".git/logs/refs", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5344 stat64(".git/logs/refs/heads", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5344 open(".git/logs/refs/heads/master", O_WRONLY|O_CREAT|O_APPEND|O_LARGEFILE, 0666) = 3 5344 close(3) = 0 5344 open(".git/logs/refs/heads/master", O_WRONLY|O_APPEND|O_LARGEFILE) = 3 5344 write(3, "1c9bcfa1f3ae0f565480249abbf17a8a"..., 143) = 143 5344 close(3) = 0 5344 stat64(".git", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5344 stat64(".git/logs", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 5344 open(".git/logs/HEAD", O_WRONLY|O_CREAT|O_APPEND|O_LARGEFILE, 0666) = 3 5344 close(3) = 0 5344 open(".git/logs/HEAD", O_WRONLY|O_APPEND|O_LARGEFILE) = 3 5344 write(3, "1c9bcfa1f3ae0f565480249abbf17a8a"..., 143) = 143 5344 close(3) = 0 5344 rename(".git/refs/heads/master.lock", ".git/refs/heads/master") = 0 5344 unlink(".git/CHERRY_PICK_HEAD") = -1 ENOENT (No such file or directory) 5344 unlink(".git/REVERT_HEAD") = -1 ENOENT (No such file or directory) 5344 unlink(".git/MERGE_HEAD") = -1 ENOENT (No such file or directory) 5344 unlink(".git/MERGE_MSG") = -1 ENOENT (No such file or directory) 5344 unlink(".git/MERGE_MODE") = -1 ENOENT (No such file or directory) 5344 unlink(".git/SQUASH_MSG") = -1 ENOENT (No such file or directory) 5344 access("/etc/gitconfig", R_OK) = -1 ENOENT (No such file or directory) 5344 access("/home/deg/.gitconfig", R_OK) = 0 5344 open("/home/deg/.gitconfig", O_RDONLY|O_LARGEFILE) = 3 5344 fstat64(3, {st_mode=S_IFREG|0664, st_size=1036, ...}) = 0 5344 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7369000 5344 read(3, "[user]\n name = David Gold"..., 4096) = 1036 5344 read(3, "", 4096) = 0 5344 close(3) = 0 5344 munmap(0xb7369000, 4096) = 0 5344 access(".git/config", R_OK) = 0 5344 open(".git/config", O_RDONLY|O_LARGEFILE) = 3 5344 fstat64(3, {st_mode=S_IFREG|0755, st_size=111, ...}) = 0 5344 mmap2(NULL, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7366000 5344 read(3, "[core]\n\trepositoryformatversion "..., 16384) = 111 5344 read(3, "", 16384) = 0 5344 close(3) = 0 5344 munmap(0xb7366000, 16384) = 0 5344 stat64(".git/rr-cache", 0xbfdbfa40) = -1 ENOENT (No such file or directory) 5344 access(".git/hooks/post-commit", X_OK) = -1 ENOENT (No such file or directory) 5344 lstat64(".git/HEAD", {st_mode=S_IFREG|0755, st_size=23, ...}) = 0 5344 open(".git/HEAD", O_RDONLY|O_LARGEFILE) = 3 5344 read(3, "ref: refs/heads/master\n", 255) = 23 5344 read(3, "", 232) = 0 5344 close(3) = 0 5344 lstat64(".git/refs/heads/master", {st_mode=S_IFREG|0755, st_size=41, ...}) = 0 5344 open(".git/refs/heads/master", O_RDONLY|O_LARGEFILE) = 3 5344 read(3, "f6a0de35d12a3b58f12bf1af4ff629b8"..., 255) = 41 5344 read(3, "", 214) = 0 5344 close(3) = 0 5344 fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0 5344 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7369000 5344 open(".git/objects/1c/9bcfa1f3ae0f565480249abbf17a8ac7713b47", O_RDONLY|O_LARGEFILE|O_NOATIME) = 3 5344 fstat64(3, {st_mode=S_IFREG|0755, st_size=155, ...}) = 0 5344 mmap2(NULL, 155, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7368000 5344 close(3) = 0 5344 munmap(0xb7368000, 155) = 0 5344 open(".git/objects/0b/89efdeef245ed6a0a7eacc5c578629a141f856", O_RDONLY|O_LARGEFILE|O_NOATIME) = 3 5344 fstat64(3, {st_mode=S_IFREG|0755, st_size=74, ...}) = 0 5344 mmap2(NULL, 74, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7368000 5344 close(3) = 0 5344 munmap(0xb7368000, 74) = 0 5344 open(".git/objects/f6/a0de35d12a3b58f12bf1af4ff629b8b004ad82", O_RDONLY|O_LARGEFILE|O_NOATIME) = 3 5344 fstat64(3, {st_mode=S_IFREG|0755, st_size=153, ...}) = 0 5344 mmap2(NULL, 153, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7368000 5344 close(3) = 0 5344 munmap(0xb7368000, 153) = 0 5344 open(".git/objects/97/9e055a30fcf7046465874a5922de39b69b3147", O_RDONLY|O_LARGEFILE|O_NOATIME) = 3 5344 fstat64(3, {st_mode=S_IFREG|0755, st_size=105, ...}) = 0 5344 mmap2(NULL, 105, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7368000 5344 close(3) = 0 5344 munmap(0xb7368000, 105) = 0 5344 access(".git/objects/f6/a0de35d12a3b58f12bf1af4ff629b8b004ad82", F_OK) = 0 5344 openat(AT_FDCWD, ".git/objects/f6/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 5344 getdents64(3, /* 3 entries */, 32768) = 112 5344 getdents64(3, /* 0 entries */, 32768) = 0 5344 close(3) = 0 5344 write(1, "[master f6a0de3] test\n", 22) = 22 5344 lstat64("test.txt", {st_mode=S_IFREG|0755, st_size=3, ...}) = 0 5344 lstat64("test.txt", {st_mode=S_IFREG|0755, st_size=3, ...}) = 0 5344 open("test.txt", O_RDONLY|O_LARGEFILE) = 3 5344 mmap2(NULL, 3, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7368000 5344 close(3) = 0 5344 munmap(0xb7368000, 3) = 0 5344 open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3 5344 fstat64(3, {st_mode=S_IFREG|0644, st_size=2570, ...}) = 0 5344 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7368000 5344 read(3, "# Locale name alias data base.\n#"..., 4096) = 2570 5344 read(3, "", 4096) = 0 5344 close(3) = 0 5344 munmap(0xb7368000, 4096) = 0 5344 open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/git.mo", O_RDONLY) = -1 ENOENT (No such file or directory) 5344 open("/usr/share/locale/en_US.utf8/LC_MESSAGES/git.mo", O_RDONLY) = -1 ENOENT (No such file or directory) 5344 open("/usr/share/locale/en_US/LC_MESSAGES/git.mo", O_RDONLY) = -1 ENOENT (No such file or directory) 5344 open("/usr/share/locale/en.UTF-8/LC_MESSAGES/git.mo", O_RDONLY) = -1 ENOENT (No such file or directory) 5344 open("/usr/share/locale/en.utf8/LC_MESSAGES/git.mo", O_RDONLY) = -1 ENOENT (No such file or directory) 5344 open("/usr/share/locale/en/LC_MESSAGES/git.mo", O_RDONLY) = -1 ENOENT (No such file or directory) 5344 open("/usr/share/locale-langpack/en_US.UTF-8/LC_MESSAGES/git.mo", O_RDONLY) = -1 ENOENT (No such file or directory) 5344 open("/usr/share/locale-langpack/en_US.utf8/LC_MESSAGES/git.mo", O_RDONLY) = -1 ENOENT (No such file or directory) 5344 open("/usr/share/locale-langpack/en_US/LC_MESSAGES/git.mo", O_RDONLY) = -1 ENOENT (No such file or directory) 5344 open("/usr/share/locale-langpack/en.UTF-8/LC_MESSAGES/git.mo", O_RDONLY) = -1 ENOENT (No such file or directory) 5344 open("/usr/share/locale-langpack/en.utf8/LC_MESSAGES/git.mo", O_RDONLY) = -1 ENOENT (No such file or directory) 5344 open("/usr/share/locale-langpack/en/LC_MESSAGES/git.mo", O_RDONLY) = -1 ENOENT (No such file or directory) 5344 write(1, " 1 file changed, 1 insertion(+)\n", 32) = 32 5344 write(1, " create mode 100644 test.txt\n", 29) = 29 5344 fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0 5344 fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0 5344 close(1) = 0 5344 munmap(0xb7369000, 4096) = 0 5344 exit_group(0) = ? ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: trouble on windows network share 2013-05-04 23:23 ` David Goldfarb @ 2013-05-06 9:42 ` Thomas Rast 2013-05-06 9:53 ` David Goldfarb 2013-05-06 13:10 ` Pyeron, Jason J CTR (US) 0 siblings, 2 replies; 17+ messages in thread From: Thomas Rast @ 2013-05-06 9:42 UTC (permalink / raw) To: David Goldfarb; +Cc: git@vger.kernel.org David Goldfarb <deg@degel.com> writes: > Git works correctly under Linux (Ubuntu 12.04; git 1.7.9.5). I've attached the strace outputs. (Note: for reasons that are probably irrelevant, I needed to run the commands sudo'd. Shout back if this is an issue). > > Under Windows 7, Cygwin git 1.7.9, commit fails: > U:\foo>git commit -m "added foo2" > error: unable to find 0b89efdeef245ed6a0a7eacc5c578629a141f856 > fatal: 0b89efdeef245ed6a0a7eacc5c578629a141f856 is not a valid object > > For what it's worth, note that the file does exist. > U:\foo>ls -l .git/objects/0b > total 1024 > -rwxrw-r-- 1 ???????? ???????? 74 May 5 01:15 89efdeef245ed6a0a7eacc5c578629a141f856 > > (I'm not sure why the permissions are trashed. Seems to be a Cygwin thing, or maybe my Cygwin config. The "??????" also appears on local files, and I believe also with files on the old Buffalo drive, so I don't think it is relevant to the problem). Just in case, here's the same dir, as seen from the Ubuntu VM: > > deg@ubuntu:/mnt/users/foo$ ls -l .git/objects/0b > total 64 > -rwxr-xr-x 0 root root 74 May 5 01:15 89efdeef245ed6a0a7eacc5c578629a141f856 > > Again, note that there is some user permissions lossage here. I don't know enough about Linux mount or CIFS, and apparently did the mount in a way that everything seems to appear to be stuck owned by root. (same problem I hinted at above). Hope this is not relevant to the problem. > > Here's how the same directory looks, when I'm ssh'd into the NAS box itself: > > CentralPark:/shares/Users/foo# ls -l .git/objects/0b > total 64 > -rwxrw-r-- 1 deg share 74 May 5 01:15 89efdeef245ed6a0a7eacc5c578629a141f856 > > In any event, the symptoms don't seem to be a permissions problem, so all this extra info is probably just a red herring, I hope. Hrm. What about what Jeff already asked of the OP (and AFAICS never got a reply)? } 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? In your case: git cat-file -p 0b89efdeef245ed6a0a7eacc5c578629a141f856 -- Thomas Rast trast@{inf,student}.ethz.ch ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: trouble on windows network share 2013-05-06 9:42 ` Thomas Rast @ 2013-05-06 9:53 ` David Goldfarb 2013-05-06 10:08 ` Thomas Rast 2013-05-06 13:10 ` Pyeron, Jason J CTR (US) 1 sibling, 1 reply; 17+ messages in thread From: David Goldfarb @ 2013-05-06 9:53 UTC (permalink / raw) To: Thomas Rast; +Cc: git@vger.kernel.org Looks like it works. >From the windows machine: U:\foo>git cat-file -p 0b89efdeef245ed6a0a7eacc5c578629a141f856 100644 blob b02e7c87fe376a353ea4f014bdb3f5200a946b37 foo1 100644 blob 2cbf64f759a62392ad9dfe1fb9c2cdb175876014 foo2 U:\foo> Double-checking that nothing was fixed or changed when I earlier committed the file from Linux, here's a second test: U:\foo>git cat-file -p 0b89efdeef245ed6a0a7eacc5c578629a141f856 100644 blob b02e7c87fe376a353ea4f014bdb3f5200a946b37 foo1 100644 blob 2cbf64f759a62392ad9dfe1fb9c2cdb175876014 foo2 U:\foo>git status # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # trace1 # trace2 nothing added to commit but untracked files present (use "git add" to track) U:\foo>git add trace1 U:\foo>git commit trace1 -m "testing" error: unable to find cecae5b4c87ea21aef513fcfcd5c27fe87e0536f fatal: cecae5b4c87ea21aef513fcfcd5c27fe87e0536f is not a valid object U:\foo>git cat-file -p cecae5b4c87ea21aef513fcfcd5c27fe87e0536f 100644 blob b02e7c87fe376a353ea4f014bdb3f5200a946b37 foo1 100644 blob 2cbf64f759a62392ad9dfe1fb9c2cdb175876014 foo2 100644 blob 19102815663d23f8b75a47e7a01965dcdc96468c test.txt 100644 blob c9009b02950964cf1d5281125e6e2f647dd9dc16 trace1 U:\foo> David -----Original Message----- From: Thomas Rast [mailto:trast@inf.ethz.ch] Sent: Monday, May 06, 2013 12:42 PM To: David Goldfarb Cc: git@vger.kernel.org Subject: Re: trouble on windows network share David Goldfarb <deg@degel.com> writes: > Git works correctly under Linux (Ubuntu 12.04; git 1.7.9.5). I've attached the strace outputs. (Note: for reasons that are probably irrelevant, I needed to run the commands sudo'd. Shout back if this is an issue). > > Under Windows 7, Cygwin git 1.7.9, commit fails: > U:\foo>git commit -m "added foo2" > error: unable to find 0b89efdeef245ed6a0a7eacc5c578629a141f856 > fatal: 0b89efdeef245ed6a0a7eacc5c578629a141f856 is not a valid > object > > For what it's worth, note that the file does exist. > U:\foo>ls -l .git/objects/0b > total 1024 > -rwxrw-r-- 1 ???????? ???????? 74 May 5 01:15 > 89efdeef245ed6a0a7eacc5c578629a141f856 > > (I'm not sure why the permissions are trashed. Seems to be a Cygwin thing, or maybe my Cygwin config. The "??????" also appears on local files, and I believe also with files on the old Buffalo drive, so I don't think it is relevant to the problem). Just in case, here's the same dir, as seen from the Ubuntu VM: > > deg@ubuntu:/mnt/users/foo$ ls -l .git/objects/0b > total 64 > -rwxr-xr-x 0 root root 74 May 5 01:15 > 89efdeef245ed6a0a7eacc5c578629a141f856 > > Again, note that there is some user permissions lossage here. I don't know enough about Linux mount or CIFS, and apparently did the mount in a way that everything seems to appear to be stuck owned by root. (same problem I hinted at above). Hope this is not relevant to the problem. > > Here's how the same directory looks, when I'm ssh'd into the NAS box itself: > > CentralPark:/shares/Users/foo# ls -l .git/objects/0b > total 64 > -rwxrw-r-- 1 deg share 74 May 5 01:15 > 89efdeef245ed6a0a7eacc5c578629a141f856 > > In any event, the symptoms don't seem to be a permissions problem, so all this extra info is probably just a red herring, I hope. Hrm. What about what Jeff already asked of the OP (and AFAICS never got a reply)? } 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? In your case: git cat-file -p 0b89efdeef245ed6a0a7eacc5c578629a141f856 -- Thomas Rast trast@{inf,student}.ethz.ch ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: trouble on windows network share 2013-05-06 9:53 ` David Goldfarb @ 2013-05-06 10:08 ` Thomas Rast 2013-05-06 10:13 ` David Goldfarb 2013-05-06 10:46 ` David Goldfarb 0 siblings, 2 replies; 17+ messages in thread From: Thomas Rast @ 2013-05-06 10:08 UTC (permalink / raw) To: David Goldfarb; +Cc: git@vger.kernel.org David Goldfarb <deg@degel.com> writes: > Looks like it works. > > From the windows machine: > U:\foo>git cat-file -p 0b89efdeef245ed6a0a7eacc5c578629a141f856 > 100644 blob b02e7c87fe376a353ea4f014bdb3f5200a946b37 foo1 > 100644 blob 2cbf64f759a62392ad9dfe1fb9c2cdb175876014 foo2 > > U:\foo> > > > Double-checking that nothing was fixed or changed when I earlier committed the file from Linux, here's a second test: > > > U:\foo>git cat-file -p 0b89efdeef245ed6a0a7eacc5c578629a141f856 > 100644 blob b02e7c87fe376a353ea4f014bdb3f5200a946b37 foo1 > 100644 blob 2cbf64f759a62392ad9dfe1fb9c2cdb175876014 foo2 > > U:\foo>git status > # On branch master > # Untracked files: > # (use "git add <file>..." to include in what will be committed) > # > # trace1 > # trace2 > nothing added to commit but untracked files present (use "git add" to track) > > U:\foo>git add trace1 > > U:\foo>git commit trace1 -m "testing" Note that specifying 'trace1' here is redundant, since you already added it and had no other staged changes. Perhaps you can re-run a test like this without the extra argument for comparison. That would tell us if it matters that the write and read happen in the same process. > error: unable to find cecae5b4c87ea21aef513fcfcd5c27fe87e0536f > fatal: cecae5b4c87ea21aef513fcfcd5c27fe87e0536f is not a valid object > > U:\foo>git cat-file -p cecae5b4c87ea21aef513fcfcd5c27fe87e0536f > 100644 blob b02e7c87fe376a353ea4f014bdb3f5200a946b37 foo1 > 100644 blob 2cbf64f759a62392ad9dfe1fb9c2cdb175876014 foo2 > 100644 blob 19102815663d23f8b75a47e7a01965dcdc96468c test.txt > 100644 blob c9009b02950964cf1d5281125e6e2f647dd9dc16 trace1 I'm inclined to just say that your FS is crazy. What's unsatisfactory is that we already have a bunch of crazy FS workarounds in move_temp_to_file(), which is one obvious candidate for what is going on here. So this wouldn't be something new; just another craziness to work around. For example, you could test the theory that rename() has something to do with it by patching this into move_temp_to_file(): diff --git i/sha1_file.c w/sha1_file.c index 67e815b..22af015 100644 --- i/sha1_file.c +++ w/sha1_file.c @@ -2635,6 +2635,10 @@ int move_temp_to_file(const char *tmpfile, const char *filename) /* FIXME!!! Collision check here ? */ } + if (access(filename, R_OK) < 0) + return error("access(%s, R_OK) failed immediately after rename(): %s", + filename, strerror(errno)); + out: if (adjust_shared_perm(filename)) return error("unable to set permission to '%s'", filename); -- Thomas Rast trast@{inf,student}.ethz.ch ^ permalink raw reply related [flat|nested] 17+ messages in thread
* RE: trouble on windows network share 2013-05-06 10:08 ` Thomas Rast @ 2013-05-06 10:13 ` David Goldfarb 2013-05-06 10:46 ` David Goldfarb 1 sibling, 0 replies; 17+ messages in thread From: David Goldfarb @ 2013-05-06 10:13 UTC (permalink / raw) To: Thomas Rast; +Cc: git@vger.kernel.org Ok. Continuing in the same shell: U:\foo>git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: trace1 # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # trace2 U:\foo>git commit -m "test b" error: Trying to write ref refs/heads/master with nonexistent object 428dafc292b8396fc7b3c7f692dc9dfe1196a40a fatal: cannot update HEAD ref U:\foo>dir /s *a40a Volume in drive U is Users Volume Serial Number is FC97-3DA5 Directory of U:\foo\.git\objects\42 05/06/2013 12:26 PM 152 8dafc292b8396fc7b3c7f692dc9dfe1196a40a 1 File(s) 152 bytes Total Files Listed: 1 File(s) 152 bytes 0 Dir(s) 1,594,477,576,192 bytes free U:\foo>date The current date is: Mon 05/06/2013 Enter the new date: (mm-dd-yy) U:\foo>time The current time is: 13:10:49.55 Enter the new time: U:\foo>git cat-file -p 428dafc292b8396fc7b3c7f692dc9dfe1196a40a tree cecae5b4c87ea21aef513fcfcd5c27fe87e0536f parent f6a0de35d12a3b58f12bf1af4ff629b8b004ad82 author David Goldfarb <deg@degel.com> 1367834997 +0300 committer David Goldfarb <deg@degel.com> 1367834997 +0300 test b U:\foo>U:\foo> David -----Original Message----- From: Thomas Rast [mailto:trast@inf.ethz.ch] Sent: Monday, May 06, 2013 1:08 PM To: David Goldfarb Cc: git@vger.kernel.org Subject: Re: trouble on windows network share David Goldfarb <deg@degel.com> writes: > Looks like it works. > > From the windows machine: > U:\foo>git cat-file -p 0b89efdeef245ed6a0a7eacc5c578629a141f856 > 100644 blob b02e7c87fe376a353ea4f014bdb3f5200a946b37 foo1 > 100644 blob 2cbf64f759a62392ad9dfe1fb9c2cdb175876014 foo2 > > U:\foo> > > > Double-checking that nothing was fixed or changed when I earlier committed the file from Linux, here's a second test: > > > U:\foo>git cat-file -p 0b89efdeef245ed6a0a7eacc5c578629a141f856 > 100644 blob b02e7c87fe376a353ea4f014bdb3f5200a946b37 foo1 > 100644 blob 2cbf64f759a62392ad9dfe1fb9c2cdb175876014 foo2 > > U:\foo>git status > # On branch master > # Untracked files: > # (use "git add <file>..." to include in what will be committed) > # > # trace1 > # trace2 > nothing added to commit but untracked files present (use "git add" > to track) > > U:\foo>git add trace1 > > U:\foo>git commit trace1 -m "testing" Note that specifying 'trace1' here is redundant, since you already added it and had no other staged changes. Perhaps you can re-run a test like this without the extra argument for comparison. That would tell us if it matters that the write and read happen in the same process. > error: unable to find cecae5b4c87ea21aef513fcfcd5c27fe87e0536f > fatal: cecae5b4c87ea21aef513fcfcd5c27fe87e0536f is not a valid > object > > U:\foo>git cat-file -p cecae5b4c87ea21aef513fcfcd5c27fe87e0536f > 100644 blob b02e7c87fe376a353ea4f014bdb3f5200a946b37 foo1 > 100644 blob 2cbf64f759a62392ad9dfe1fb9c2cdb175876014 foo2 > 100644 blob 19102815663d23f8b75a47e7a01965dcdc96468c test.txt > 100644 blob c9009b02950964cf1d5281125e6e2f647dd9dc16 trace1 I'm inclined to just say that your FS is crazy. What's unsatisfactory is that we already have a bunch of crazy FS workarounds in move_temp_to_file(), which is one obvious candidate for what is going on here. So this wouldn't be something new; just another craziness to work around. For example, you could test the theory that rename() has something to do with it by patching this into move_temp_to_file(): diff --git i/sha1_file.c w/sha1_file.c index 67e815b..22af015 100644 --- i/sha1_file.c +++ w/sha1_file.c @@ -2635,6 +2635,10 @@ int move_temp_to_file(const char *tmpfile, const char *filename) /* FIXME!!! Collision check here ? */ } + if (access(filename, R_OK) < 0) + return error("access(%s, R_OK) failed immediately after rename(): %s", + filename, strerror(errno)); + out: if (adjust_shared_perm(filename)) return error("unable to set permission to '%s'", filename); -- Thomas Rast trast@{inf,student}.ethz.ch ^ permalink raw reply related [flat|nested] 17+ messages in thread
* RE: trouble on windows network share 2013-05-06 10:08 ` Thomas Rast 2013-05-06 10:13 ` David Goldfarb @ 2013-05-06 10:46 ` David Goldfarb 1 sibling, 0 replies; 17+ messages in thread From: David Goldfarb @ 2013-05-06 10:46 UTC (permalink / raw) To: Thomas Rast; +Cc: git@vger.kernel.org Oops, I earlier missed the second half of your message, where you suggested that I patch move_temp_to_file(). Sorry, I don't have the tool-chain or knowledge to recompile git into this win/Cygwin environment. What I can do, realistically, is: - Follow exact instructions. - (with some obvious hesitation) run executables that you send me. - Continue whatever tests you want with my existing git. Note, too, that: - This is occurring on a standard, off-the-shelf, NAS box, the Western Digital "My Book Live" - I would guess that the "craziness" has more to do with the box's network stack than with its FS, since it behaves fine when mounted on Linux, but not on Windows. David -----Original Message----- From: David Goldfarb Sent: Monday, May 06, 2013 1:13 PM To: 'Thomas Rast' Cc: git@vger.kernel.org Subject: RE: trouble on windows network share Ok. Continuing in the same shell: U:\foo>git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: trace1 # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # trace2 U:\foo>git commit -m "test b" error: Trying to write ref refs/heads/master with nonexistent object 428dafc292b8396fc7b3c7f692dc9dfe1196a40a fatal: cannot update HEAD ref U:\foo>dir /s *a40a Volume in drive U is Users Volume Serial Number is FC97-3DA5 Directory of U:\foo\.git\objects\42 05/06/2013 12:26 PM 152 8dafc292b8396fc7b3c7f692dc9dfe1196a40a 1 File(s) 152 bytes Total Files Listed: 1 File(s) 152 bytes 0 Dir(s) 1,594,477,576,192 bytes free U:\foo>date The current date is: Mon 05/06/2013 Enter the new date: (mm-dd-yy) U:\foo>time The current time is: 13:10:49.55 Enter the new time: U:\foo>git cat-file -p 428dafc292b8396fc7b3c7f692dc9dfe1196a40a tree cecae5b4c87ea21aef513fcfcd5c27fe87e0536f parent f6a0de35d12a3b58f12bf1af4ff629b8b004ad82 author David Goldfarb <deg@degel.com> 1367834997 +0300 committer David Goldfarb <deg@degel.com> 1367834997 +0300 test b U:\foo>U:\foo> David -----Original Message----- From: Thomas Rast [mailto:trast@inf.ethz.ch] Sent: Monday, May 06, 2013 1:08 PM To: David Goldfarb Cc: git@vger.kernel.org Subject: Re: trouble on windows network share David Goldfarb <deg@degel.com> writes: > Looks like it works. > > From the windows machine: > U:\foo>git cat-file -p 0b89efdeef245ed6a0a7eacc5c578629a141f856 > 100644 blob b02e7c87fe376a353ea4f014bdb3f5200a946b37 foo1 > 100644 blob 2cbf64f759a62392ad9dfe1fb9c2cdb175876014 foo2 > > U:\foo> > > > Double-checking that nothing was fixed or changed when I earlier committed the file from Linux, here's a second test: > > > U:\foo>git cat-file -p 0b89efdeef245ed6a0a7eacc5c578629a141f856 > 100644 blob b02e7c87fe376a353ea4f014bdb3f5200a946b37 foo1 > 100644 blob 2cbf64f759a62392ad9dfe1fb9c2cdb175876014 foo2 > > U:\foo>git status > # On branch master > # Untracked files: > # (use "git add <file>..." to include in what will be committed) > # > # trace1 > # trace2 > nothing added to commit but untracked files present (use "git add" > to track) > > U:\foo>git add trace1 > > U:\foo>git commit trace1 -m "testing" Note that specifying 'trace1' here is redundant, since you already added it and had no other staged changes. Perhaps you can re-run a test like this without the extra argument for comparison. That would tell us if it matters that the write and read happen in the same process. > error: unable to find cecae5b4c87ea21aef513fcfcd5c27fe87e0536f > fatal: cecae5b4c87ea21aef513fcfcd5c27fe87e0536f is not a valid > object > > U:\foo>git cat-file -p cecae5b4c87ea21aef513fcfcd5c27fe87e0536f > 100644 blob b02e7c87fe376a353ea4f014bdb3f5200a946b37 foo1 > 100644 blob 2cbf64f759a62392ad9dfe1fb9c2cdb175876014 foo2 > 100644 blob 19102815663d23f8b75a47e7a01965dcdc96468c test.txt > 100644 blob c9009b02950964cf1d5281125e6e2f647dd9dc16 trace1 I'm inclined to just say that your FS is crazy. What's unsatisfactory is that we already have a bunch of crazy FS workarounds in move_temp_to_file(), which is one obvious candidate for what is going on here. So this wouldn't be something new; just another craziness to work around. For example, you could test the theory that rename() has something to do with it by patching this into move_temp_to_file(): diff --git i/sha1_file.c w/sha1_file.c index 67e815b..22af015 100644 --- i/sha1_file.c +++ w/sha1_file.c @@ -2635,6 +2635,10 @@ int move_temp_to_file(const char *tmpfile, const char *filename) /* FIXME!!! Collision check here ? */ } + if (access(filename, R_OK) < 0) + return error("access(%s, R_OK) failed immediately after rename(): %s", + filename, strerror(errno)); + out: if (adjust_shared_perm(filename)) return error("unable to set permission to '%s'", filename); -- Thomas Rast trast@{inf,student}.ethz.ch ^ permalink raw reply related [flat|nested] 17+ messages in thread
* RE: trouble on windows network share 2013-05-06 9:42 ` Thomas Rast 2013-05-06 9:53 ` David Goldfarb @ 2013-05-06 13:10 ` Pyeron, Jason J CTR (US) 2013-05-08 9:37 ` David Goldfarb 1 sibling, 1 reply; 17+ messages in thread From: Pyeron, Jason J CTR (US) @ 2013-05-06 13:10 UTC (permalink / raw) To: Thomas Rast, David Goldfarb; +Cc: git@vger.kernel.org [-- Attachment #1: Type: text/plain, Size: 2494 bytes --] > -----Original Message----- > From: Thomas Rast > Sent: Monday, May 06, 2013 5:42 AM > > David Goldfarb <deg@degel.com> writes: > > > Git works correctly under Linux (Ubuntu 12.04; git 1.7.9.5). I've > attached the strace outputs. (Note: for reasons that are probably > irrelevant, I needed to run the commands sudo'd. Shout back if this is > an issue). > > > > Under Windows 7, Cygwin git 1.7.9, commit fails: > > U:\foo>git commit -m "added foo2" > > error: unable to find 0b89efdeef245ed6a0a7eacc5c578629a141f856 > > fatal: 0b89efdeef245ed6a0a7eacc5c578629a141f856 is not a valid > object > > > > For what it's worth, note that the file does exist. > > U:\foo>ls -l .git/objects/0b > > total 1024 > > -rwxrw-r-- 1 ???????? ???????? 74 May 5 01:15 > 89efdeef245ed6a0a7eacc5c578629a141f856 > > > > (I'm not sure why the permissions are trashed. Seems to be a Cygwin > thing, or maybe my Cygwin config. The "??????" also appears on local > files, and I believe also with files on the old Buffalo drive, so I > don't think it is relevant to the problem). Just in case, here's the > same dir, as seen from the Ubuntu VM: > > > > deg@ubuntu:/mnt/users/foo$ ls -l .git/objects/0b > > total 64 > > -rwxr-xr-x 0 root root 74 May 5 01:15 > 89efdeef245ed6a0a7eacc5c578629a141f856 > > > > Again, note that there is some user permissions lossage here. I don't > know enough about Linux mount or CIFS, and apparently did the mount in > a way that everything seems to appear to be stuck owned by root. (same > problem I hinted at above). Hope this is not relevant to the problem. > > > > Here's how the same directory looks, when I'm ssh'd into the NAS box > itself: > > > > CentralPark:/shares/Users/foo# ls -l .git/objects/0b > > total 64 > > -rwxrw-r-- 1 deg share 74 May 5 01:15 > 89efdeef245ed6a0a7eacc5c578629a141f856 > > > > In any event, the symptoms don't seem to be a permissions problem, so > all this extra info is probably just a red herring, I hope. > > Hrm. What about what Jeff already asked of the OP (and AFAICS never > got > a reply)? If referring to me, then yes but it was too big for the list. > > } 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? > > In your case: git cat-file -p 0b89efdeef245ed6a0a7eacc5c578629a141f856 [-- Attachment #2: smime.p7s --] [-- Type: application/x-pkcs7-signature, Size: 5615 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: trouble on windows network share 2013-05-06 13:10 ` Pyeron, Jason J CTR (US) @ 2013-05-08 9:37 ` David Goldfarb 2013-05-09 13:52 ` Pyeron, Jason J CTR (US) 0 siblings, 1 reply; 17+ messages in thread From: David Goldfarb @ 2013-05-08 9:37 UTC (permalink / raw) To: Pyeron, Jason J CTR (US), Thomas Rast; +Cc: git@vger.kernel.org Here's one more data point. It suggests that the problem is due to either Cygwin or possibly Git 1.7.9. My Ubuntu box is actually a VM, hosted by my windows box in VMWare Player. So, I tried using the VMWare shared folder feature, to mount the Windows U: drive (which is physically on the WD NAS box) as /mnt/hgfs/Host-U on Ubuntu. Then, I tried linux on the Ubuntu box, fully expecting it to fail as it trampolined through Windows connection to the NAS box). But, it worked fine. So, at this point, it became likely that the problem is tied to the different version of Git that I have on the two machines: - On Ubuntu, git version 1.7.10.4 - On Windows, Cygwin's git version 1.7.9 (which appears to be the latest version for Cygwin). So, I installed Git on Windows from http://git-scm.com/download/win. Git version 1.8.1.msysgit.1 Triumph: Git on windows works with this git but, on the same file and repo, fails with Cygwin git. So, either something relevant changed in Git 1.7.10, or (more likely) this is a Cygwin issue. Jason, are you also using Cygwin git? Are you also using a WD NAS? David -----Original Message----- From: Pyeron, Jason J CTR (US) [mailto:jason.j.pyeron.ctr@mail.mil] Sent: Monday, May 06, 2013 4:11 PM To: Thomas Rast; David Goldfarb Cc: git@vger.kernel.org Subject: RE: trouble on windows network share > -----Original Message----- > From: Thomas Rast > Sent: Monday, May 06, 2013 5:42 AM > > David Goldfarb <deg@degel.com> writes: > > > Git works correctly under Linux (Ubuntu 12.04; git 1.7.9.5). I've > attached the strace outputs. (Note: for reasons that are probably > irrelevant, I needed to run the commands sudo'd. Shout back if this is > an issue). > > > > Under Windows 7, Cygwin git 1.7.9, commit fails: > > U:\foo>git commit -m "added foo2" > > error: unable to find 0b89efdeef245ed6a0a7eacc5c578629a141f856 > > fatal: 0b89efdeef245ed6a0a7eacc5c578629a141f856 is not a valid > object > > > > For what it's worth, note that the file does exist. > > U:\foo>ls -l .git/objects/0b > > total 1024 > > -rwxrw-r-- 1 ???????? ???????? 74 May 5 01:15 > 89efdeef245ed6a0a7eacc5c578629a141f856 > > > > (I'm not sure why the permissions are trashed. Seems to be a Cygwin > thing, or maybe my Cygwin config. The "??????" also appears on local > files, and I believe also with files on the old Buffalo drive, so I > don't think it is relevant to the problem). Just in case, here's the > same dir, as seen from the Ubuntu VM: > > > > deg@ubuntu:/mnt/users/foo$ ls -l .git/objects/0b > > total 64 > > -rwxr-xr-x 0 root root 74 May 5 01:15 > 89efdeef245ed6a0a7eacc5c578629a141f856 > > > > Again, note that there is some user permissions lossage here. I don't > know enough about Linux mount or CIFS, and apparently did the mount in > a way that everything seems to appear to be stuck owned by root. (same > problem I hinted at above). Hope this is not relevant to the problem. > > > > Here's how the same directory looks, when I'm ssh'd into the NAS box > itself: > > > > CentralPark:/shares/Users/foo# ls -l .git/objects/0b > > total 64 > > -rwxrw-r-- 1 deg share 74 May 5 01:15 > 89efdeef245ed6a0a7eacc5c578629a141f856 > > > > In any event, the symptoms don't seem to be a permissions problem, so > all this extra info is probably just a red herring, I hope. > > Hrm. What about what Jeff already asked of the OP (and AFAICS never > got > a reply)? If referring to me, then yes but it was too big for the list. > > } 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? > > In your case: git cat-file -p 0b89efdeef245ed6a0a7eacc5c578629a141f856 ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: trouble on windows network share 2013-05-08 9:37 ` David Goldfarb @ 2013-05-09 13:52 ` Pyeron, Jason J CTR (US) 2013-12-03 16:48 ` Phil Wiffen 0 siblings, 1 reply; 17+ messages in thread From: Pyeron, Jason J CTR (US) @ 2013-05-09 13:52 UTC (permalink / raw) To: git@vger.kernel.org; +Cc: David Goldfarb, Thomas Rast [-- Attachment #1: Type: text/plain, Size: 4358 bytes --] > -----Original Message----- > From: David Goldfarb > Sent: Wednesday, May 08, 2013 5:38 AM > > Here's one more data point. It suggests that the problem is due to > either Cygwin or possibly Git 1.7.9. > > > My Ubuntu box is actually a VM, hosted by my windows box in VMWare > Player. > > So, I tried using the VMWare shared folder feature, to mount the > Windows U: drive (which is physically on the WD NAS box) as > /mnt/hgfs/Host-U on Ubuntu. > Then, I tried linux on the Ubuntu box, fully expecting it to fail as it > trampolined through Windows connection to the NAS box). > > But, it worked fine. > > So, at this point, it became likely that the problem is tied to the > different version of Git that I have on the two machines: > - On Ubuntu, git version 1.7.10.4 > - On Windows, Cygwin's git version 1.7.9 (which appears to be the > latest version for Cygwin). > > So, I installed Git on Windows from http://git-scm.com/download/win. > Git version 1.8.1.msysgit.1 > > Triumph: Git on windows works with this git but, on the same file and > repo, fails with Cygwin git. > > So, either something relevant changed in Git 1.7.10, or (more likely) > this is a Cygwin issue. Likely. > > > Jason, are you also using Cygwin git? Are you also using a WD NAS? Cygwin, yes. I am going to spend some time (likely this weekend) to get the current version to compile on Cygwin. WD NAS, no. Windows Server 2008 with NTFS file system on internal raid. > > David > > -----Original Message----- > From: Pyeron, Jason J CTR (US) [mailto:jason.j.pyeron.ctr@mail.mil] > Sent: Monday, May 06, 2013 4:11 PM > To: Thomas Rast; David Goldfarb > Cc: git@vger.kernel.org > Subject: RE: trouble on windows network share > > > -----Original Message----- > > From: Thomas Rast > > Sent: Monday, May 06, 2013 5:42 AM > > > > David Goldfarb <deg@degel.com> writes: > > > > > Git works correctly under Linux (Ubuntu 12.04; git 1.7.9.5). I've > > attached the strace outputs. (Note: for reasons that are probably > > irrelevant, I needed to run the commands sudo'd. Shout back if this > is > > an issue). > > > > > > Under Windows 7, Cygwin git 1.7.9, commit fails: > > > U:\foo>git commit -m "added foo2" > > > error: unable to find 0b89efdeef245ed6a0a7eacc5c578629a141f856 > > > fatal: 0b89efdeef245ed6a0a7eacc5c578629a141f856 is not a valid > > object > > > > > > For what it's worth, note that the file does exist. > > > U:\foo>ls -l .git/objects/0b > > > total 1024 > > > -rwxrw-r-- 1 ???????? ???????? 74 May 5 01:15 > > 89efdeef245ed6a0a7eacc5c578629a141f856 > > > > > > (I'm not sure why the permissions are trashed. Seems to be a Cygwin > > thing, or maybe my Cygwin config. The "??????" also appears on local > > files, and I believe also with files on the old Buffalo drive, so I > > don't think it is relevant to the problem). Just in case, here's the > > same dir, as seen from the Ubuntu VM: > > > > > > deg@ubuntu:/mnt/users/foo$ ls -l .git/objects/0b > > > total 64 > > > -rwxr-xr-x 0 root root 74 May 5 01:15 > > 89efdeef245ed6a0a7eacc5c578629a141f856 > > > > > > Again, note that there is some user permissions lossage here. I > don't > > know enough about Linux mount or CIFS, and apparently did the mount > in > > a way that everything seems to appear to be stuck owned by root. > (same > > problem I hinted at above). Hope this is not relevant to the problem. > > > > > > Here's how the same directory looks, when I'm ssh'd into the NAS > box > > itself: > > > > > > CentralPark:/shares/Users/foo# ls -l .git/objects/0b > > > total 64 > > > -rwxrw-r-- 1 deg share 74 May 5 01:15 > > 89efdeef245ed6a0a7eacc5c578629a141f856 > > > > > > In any event, the symptoms don't seem to be a permissions problem, > so > > all this extra info is probably just a red herring, I hope. > > > > Hrm. What about what Jeff already asked of the OP (and AFAICS never > > got > > a reply)? > > If referring to me, then yes but it was too big for the list. > > > > > } 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? > > > > In your case: git cat-file -p > 0b89efdeef245ed6a0a7eacc5c578629a141f856 > [-- Attachment #2: smime.p7s --] [-- Type: application/x-pkcs7-signature, Size: 5615 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: trouble on windows network share 2013-05-09 13:52 ` Pyeron, Jason J CTR (US) @ 2013-12-03 16:48 ` Phil Wiffen 2013-12-03 17:30 ` Pyeron, Jason J CTR (US) 0 siblings, 1 reply; 17+ messages in thread From: Phil Wiffen @ 2013-12-03 16:48 UTC (permalink / raw) To: git Did anyone ever get to the bottom of this? I'm seeing this exact issue on both NetApp storage systems with SMB 2.x enabled and also on Windows 7 and Server 2008 R2 shares (which also use SMB 2.x). If we use SMB 1.x (such as XP), things work fine. ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: trouble on windows network share 2013-12-03 16:48 ` Phil Wiffen @ 2013-12-03 17:30 ` Pyeron, Jason J CTR (US) 0 siblings, 0 replies; 17+ messages in thread From: Pyeron, Jason J CTR (US) @ 2013-12-03 17:30 UTC (permalink / raw) To: Phil Wiffen, git@vger.kernel.org [-- Attachment #1: Type: text/plain, Size: 787 bytes --] That is a new detail (SMB 1 vs. 2) that can be used to debug this further. > -----Original Message----- > From: git-owner@vger.kernel.org [mailto:git-owner@vger.kernel.org] On > Behalf Of Phil Wiffen > Sent: Tuesday, December 03, 2013 11:48 AM > To: git@vger.kernel.org > Subject: Re: trouble on windows network share > > Did anyone ever get to the bottom of this? I'm seeing this exact issue > on > both NetApp storage systems with SMB 2.x enabled and also on Windows 7 > and > Server 2008 R2 shares (which also use SMB 2.x). If we use SMB 1.x (such > as > XP), things work fine. > > > > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html [-- Attachment #2: smime.p7s --] [-- Type: application/x-pkcs7-signature, Size: 5615 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2013-12-03 17:40 UTC | newest] Thread overview: 17+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-04-04 15:01 trouble on windows network share Pyeron, Jason J CTR (US) 2013-04-04 15:51 ` Jeff King 2013-04-05 12:44 ` Pyeron, Jason J CTR (US) 2013-04-11 4:56 ` Jeff King 2013-05-02 21:26 ` deg 2013-05-03 9:27 ` Thomas Rast 2013-05-04 23:23 ` David Goldfarb 2013-05-06 9:42 ` Thomas Rast 2013-05-06 9:53 ` David Goldfarb 2013-05-06 10:08 ` Thomas Rast 2013-05-06 10:13 ` David Goldfarb 2013-05-06 10:46 ` David Goldfarb 2013-05-06 13:10 ` Pyeron, Jason J CTR (US) 2013-05-08 9:37 ` David Goldfarb 2013-05-09 13:52 ` Pyeron, Jason J CTR (US) 2013-12-03 16:48 ` Phil Wiffen 2013-12-03 17:30 ` Pyeron, Jason J CTR (US)
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).