Re: Solaris cloning woes partly diagnosed
- From
Linus Torvalds <torvalds@osdl.org>
- Date
- Apr 2, 2006, 18:33 UTC
- Message-ID
- <Pine.LNX.4.64.0604021118210.3050@g5.osdl.org>
- In-Reply-To
- <7vy7yol0nk.fsf@assigned-by-dhcp.cox.net>
On Sun, 2 Apr 2006, Junio C Hamano wrote:
> > We do two funky things when we have progress bar. We play games > with timer signal (setitimer(ITIMER_REAL) and signal(SIGALRM)), > and we spit out messages to stderr.
I'd be willing to bet that it's the fact that we take signals.
Suddenly, some system calls will either return -1/EINTR, or they'll return partial reads or writes.
We should be pretty good at handling that, but maybe some place forgets.
One thing to do might be to make the itimer use a much higher frequency, to trigger the problem more easily.
We do, for example, expect that regular file writing not do that. At least "write_sha1_from_fd()" will just do a "write()" without testing the error return, which is bad (it would silently create a truncated object if the /tmp filesystem filled up). If somebody has their filesystem over NFS mounted interruptible, partial writes could also happen.
Ho humm.
Linus