On Tue, Sep 18, 2001 at 04:08:33PM -0500, Ben Collins-Sussman wrote:
...
> So now I discover ickiness... apparently in both the commit and update
> cases, ra_dav needs to hand a vanilla "FILE *" version of the tmpfile
> to neon; an apr_file_t won't do. So ra_dav closes the apr_file_t,
> then fopen()/fclose()'s the file for neon.
neon actually takes an integer fd in 0.15, so the FILE * is
historical... but this doesn't help you. An apr_file_t can't be
(portably) morphed into anything useful to neon AFAIK.
> Being ignorant, I say, "this is bad, because of delete-on-close". So
> I move the apr_file_close() -after- all the fopen/fclose business (for
> example, I do this in commit.c:commit_stream_close).
>
> Still though -- I get a segfault when committing, specifically in
> commit_stream_close, because fopen() tries to reopen the tmpfile, and
> it's already gone somehow.
Yeah, I think that's how it works... because it's been unlink()ed by APR
to implement DELONCLOSE, it no longer has a name in the filesystem. So
you can't open it again. :(
joe
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:36:41 2006