Re: Git 2.54.0-rc1, subtests of t5310, t5326, t5327
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Apr 8, 2026, 18:12 UTC
- Message-ID
- <xmqq4illz5g9.fsf@gitster.g>
- In-Reply-To
- <20260408173949.GB2850002@coredump.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 13 quoted lines
> On Wed, Apr 08, 2026 at 12:25:47PM -0400, rsbecker@nexbridge.com wrote: > >> This is also impacting t5608 and t7700. Anywhere where writev() is >> used, seemingly. We went through MAX_IO_SIZE issues years ago, instead >> of using ssize_t as a basis of how big communication is. I think >> writev() is not valid. It worked on Lunix, but had issues elsewhere. >> This broke the compat layer. > > I wondered briefly if the problem could be that we're violating > MAX_IO_SIZE here, as our use of writev() does not respect it at all. But > the only spot that uses it is feeding pkt-line packets, which max out at > 64k. So unless your MAX_IO_SIZE is smaller than that, I doubt that is > the problem.
Good point. The original did not use write(2) directly but used write_or_die(), that is write_in_full(), that loops over xwrite(), so it would have worked even with a lot lower MAX_IO_SIZE limit.
According to man7.org, writev() is allowed to transfer fewer bytes than requested, so our use of writev() may have to be a bit more careful, though.