On Mon, 25 Jun 2001, Andrew Tridgell wrote:
> I've applied your simple nohang patch.

Cool.  That's the one that affects the most people.

> Instead we need a way of reproducing the bug and see if we can find a
> solution without a buffer.

You can minimize the buffer usage by applying my move-files patch.  It
constantly reads the "redo" pipe during the generator's main loop and
marks the redo items with a flag in the existing "files" struct (and
also forwards the delete indicators on to the sender).  This ensures
that this buffer doesn't expand much at all.  (With both patches applied
I haven't seen it reallocate except when I tested the buffer code with a
16-byte realloc size.)

Alternately, it might not be too hard to remove the buffer and have the
low-level code take a more direct role in interpreting the data, but I'd
have to look at this more closely to see for sure.

One way to reproduce this hang is to modify the receiver code to redo
every file that is processed in the first phase.  Also, my move-files
patch puts enough extra data down the sender-to-generator pipe that it
should hang up without difficulty if you disable the buffer and use the
--move-files option.

..wayne..


Reply via email to