On Tuesday, February 27, 2024 3:46 AM, Patrick Steinhardt wrote: >On Mon, Feb 26, 2024 at 03:32:14PM +0000, Phillip Wood wrote: >> Hi Randal >> >> [cc'ing Patrick for the reftable writer] >> >> > The question is which call is bad? The cruft stuff is relatively new >> > and I don't know the code. >> > >> > > > reftable/writer.c: int n = w->write(w->write_arg, zeroed, >> > > > w->pending_padding); >> > > > reftable/writer.c: n = w->write(w->write_arg, data, len); >> >> Neither of these appear to check for short writes and >> reftable_fd_write() is a thin wrapper around write(). Maybe >> reftable_fd_write() should be using write_in_full()? > >It already does starting with 85a8c899ce (reftable: handle interrupted writes, 2023-12-11): > >``` >static ssize_t reftable_fd_write(void *arg, const void *data, size_t sz) { > int *fdp = (int *)arg; > return write_in_full(*fdp, data, sz); >} Unfortunately, this fix is included in what I am testing but does not impact the issue I am seeing one way or another, but thank you.