Re: [BUG] git cat-file does not terminate

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

 



On Fri, Mar 04, 2011 at 09:16:30AM -0800, Junio C Hamano wrote:

> How prevalent is the problematic cygwin1.dll 1.7.8?  Also for how long did
> this bug exist, in other words, if we were to make a table of problematic
> versions, would we have only just a handful entries in it?  Also can we at
> runtime find out what version we are running?
> 
> The reason I am asking these questions is because I think, assuming that
> this would affect many unsuspecting Cygwin users, the best fix would be to
> add a hook in the compat/ layer that decides if MAX_WRITE_SIZE workaround
> is necessary at runtime, and do something like this:
> 
> 	ssize_t xwrite(int fd, const void *buf, size_t len)
>         {
>         	ssize_t nr;
>                 static size_t max_write_size = platform_max_write_size();
> 
>                 if (max_write_size && max_write_size < len)
>                 	len = max_write_size;
> 		...
> 	}

How are we doing the runtime test for platform max write?

If I read the original bug report correctly, the problem was that write
would actually write some bytes _and_ return -1, which is terrible. We
can detect "seems to be returning -1 over and over", but we can't handle
a misbehavior like writing and claiming not to have done so.

So I think the test needs to be "is our version of cygwin in the broken
list" and not "let's try a few different writes and see what works".

But it is still not clear to me how many versions have this bug. I think
the next stop is to show the cygwin developers a clear test-case and see
whether it's already fixed, and which versions show the behavior. They
should be able to get that information much more easily than us. I
really don't want to get involved in bisecting bugs in cygwin (according
to cygwin.com, it's kept in CVS. Blech).

Robert, can you try (or have you already tried) submitting a bug report
to Cygwin?

-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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