Re: index-pack died on pread
- From
Linus Torvalds <torvalds@linux-foundation.org>
- Date
- Jul 27, 2007, 05:36 UTC
- Message-ID
- <alpine.LFD.0.999.0707262231280.3442@woody.linux-foundation.org>
- In-Reply-To
- <7vps2e5x4y.fsf@assigned-by-dhcp.cox.net>
On Thu, 26 Jul 2007, Junio C Hamano wrote:
> > If you mean the offset associated with fd, we actually do.
Ahh, for some reason I thought we didn't (probably because the user likely doesn't care at all), but right you are..
Show 6 quoted lines
> The original HP-UX error is confusing, as we ask pread() to > transfer 428 bytes and it returns 0 (not returning -1 with > EINTR). Return value of zero is understandable, if the starting > position is at or after the EOF, but the offset is 123601 and > 56k objects packed from git.git repository should be longer than > that, so that also sounds implausible.
Yeah. It is suspicious.
If somebody could run git under gdb on HP-UX (preferably compiled statically), and just disassemble the pread() thing, it would be interesting.
PA-RISC assembly is *almost* entirely unreadable, but it might show whether hpux-11.11 actually has a pread() system call or whether it is doing the "emulate with lseek" and maybe obviously buggily at that..
It really isn't that complex a system call. So I'm surprised at bugs there, and that makes me worry that there is something in git that triggers this.
Linus