You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Greg Stein <gs...@lyra.org> on 2006/02/01 04:40:30 UTC

Re: svn commit: r18312 - trunk/subversion/libsvn_ra_serf

On Tue, Jan 31, 2006 at 11:00:10PM -0600, jerenkrantz@tigris.org wrote:
>...
> +++ trunk/subversion/libsvn_ra_serf/util.c	Tue Jan 31 23:00:08 2006
>...
> +context_run_wait(svn_boolean_t *done,
>...
> +      /* Debugging purposes only! */
> +      serf_debug__closed_conn(sess->bkt_alloc);
> +    }

I don't think that call makes sense. It's going to cancel some
checking. We haven't actually closed the connection, so this shouldn't
be called.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn commit: r18312 - trunk/subversion/libsvn_ra_serf

Posted by Greg Stein <gs...@lyra.org>.
On Tue, Jan 31, 2006 at 09:03:27PM -0800, Justin Erenkrantz wrote:
> On 1/31/06, Greg Stein <gs...@lyra.org> wrote:
> > > +      serf_debug__closed_conn(sess->bkt_alloc);
> > > +    }
> >
> > I don't think that call makes sense. It's going to cancel some
> > checking. We haven't actually closed the connection, so this shouldn't
> > be called.
> 
> If you don't call that function and have define'd
> SERF_DEBUG_BUCKET_USE (still the default), serf will abort on the next
> read because the debug bucket tracker won't have cleared the previous
> read_status.

Ah. Alrighty. This is caused by serf_debug__entered_loop being
commented out in context.c::check_buckets_drained(). The entered_loop
function clears that read status.

>...
> I didn't write this particular debug code (guess who did); this chunk
> has touches of black voodoo that keeps me away.  =)  -- justin

Heh. Guess that I may have to look into this at some point soon.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn commit: r18312 - trunk/subversion/libsvn_ra_serf

Posted by Justin Erenkrantz <ju...@erenkrantz.com>.
On 1/31/06, Greg Stein <gs...@lyra.org> wrote:
> > +      serf_debug__closed_conn(sess->bkt_alloc);
> > +    }
>
> I don't think that call makes sense. It's going to cancel some
> checking. We haven't actually closed the connection, so this shouldn't
> be called.

If you don't call that function and have define'd
SERF_DEBUG_BUCKET_USE (still the default), serf will abort on the next
read because the debug bucket tracker won't have cleared the previous
read_status.

Here's the scenario: for a socket that eventually gets EAGAIN, we will
do a second context_run after the corresponding poll.  After that
poll(), serf will abort() on the new read call because it still thinks
the socket bucket's status is EAGAIN from the previous iteration. 
This debug function clears that state.

I didn't write this particular debug code (guess who did); this chunk
has touches of black voodoo that keeps me away.  =)  -- justin

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org