Nathan, I think the following truth table will answer all your questions!
(view in monospace font)

Patch   gzip    Index     Result
no       no      no       dump failed (end of tape)
no       no     yes       index tee cannot write
no      yes      no       gzip strange, dump failed
no      yes     yes       gzip strange, index tee strange, dump failed
yes       *       *       success, nothing strange


On Fri, Sep 4, 2009 at 3:01 PM, Nathan Stratton Treadway <natha...@ontko.com
> wrote:

> On Wed, Sep 02, 2009 at 11:11:39 -0600, Michael Burk wrote:
> > This was a good idea; I tried it with one modification:  I determined
> > earlier that the failure happens without indexing also, so I added just
> the
> > line:
> >     fcntl(datafd, F_GETFL, 0);
> > and that fixed the problem as well. So I guess this is truly the minimal
> > patch!
> >
>
> I tried to understand the program flow for sendbackup.c and
> sendbackup_dump.c, and I agree with Dustin that it is "pretty crazy",
> but as far as I can tell the only place that would generate the message
> "index tee cannot write [" is from the following code found in
> the "start_index()" function in sendbackup.c:
>
>     just_written = full_write(3, ptr, bytes_read);
>     if (just_written < (size_t)bytes_read) {
>        error(_("index tee cannot write [%s]"), strerror(errno));
>        /*NOTREACHED*/
>     } else {
>
>
>
> Tracing backwards from there, it appears that the file descriptor #3 in
> this chunck of code will point to the same file as the "datafd"
> referenced in the patch you have been trying only if client-side
> compression
> is not turned on.  If it is turned on, it looks like fd #3 will instead
> point to the input side of the process that is doing the compression.
>
> So, if other avenues of research don't lead to a solution first, it
> might be interesting to try turning on client side compression (both
> with and without the one-line patch applied), to see if a similar error
> occurs in that case (and if so, whether the error is still in the index-
> tee-write operation or if the compression process complains instead).
>
>
> Also, when switched to your one-line patch (where you call fnctl() on
> "datafd" only), did you start getting the
>    strange(?): sed: stdout: Resource temporarily unavailable
> messages in the log file again?
>
>
>                                                        Nathan
>
>
> ----------------------------------------------------------------------------
> Nathan Stratton Treadway  -  natha...@ontko.com  -  Mid-Atlantic region
> Ray Ontko & Co.  -  Software consulting services  -
> http://www.ontko.com/
>  GPG Key: 
> http://www.ontko.com/~nathanst/gpg_key.txt<http://www.ontko.com/%7Enathanst/gpg_key.txt>
>   ID: 1023D/ECFB6239
>  Key fingerprint = 6AD8 485E 20B9 5C71 231C  0C32 15F3 ADCD ECFB 6239
>

Reply via email to