cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: Curl 7.16.x and multi interface

From: Eygene Ryabinkin <rea-curly_at_codelabs.ru>
Date: Thu, 1 Mar 2007 08:41:03 +0300

Daniel, good day!

> >I am trying to fight with GIT over HTTP: it delivers cores for me.
> >I've traced the problem to the CURL library.
>
> Then please consider the curl-library mailing list. I'm cc'ing my reply over to
> that list (as well as to the original curl-users list where you posted this).

OK, dropping off the curl-users.

> Also, are you using the CVS HEAD libcurl version when you experience these
> problems?

No, it was 7.16.1. Will try HEAD today or tomorrow.

> >First problem: when two easy connections are using the same physical
> >connection (and thus the same 'struct connectdata *')
>
> You're then implying Pipelining, right? I wasn't aware that git enabled
> pipelining.

No, it does not enable the pipelining. At least I've not found it.
Then may be it is the Git's own error, but I am not sure. Will try
to write the small tests for these errors. But for the first one,
I am clearly seeing the two easy's in one multi that are sharing
the same connection pointer. The second one is just a another face
of the problem of freeing the connection that belongs to a multiple easy's.
But you're right: if there will be pipelining, then the second error will
not be provoked -- the ConnectionExists will not check for the dead
ones. BTW, why it behaves so? I've always thought that the
pipelining implies keep-alive connections. But if the physical
connection is dropped the keep-alive will not help. Am I getting
the idea of pipelining wrong?

The ElectricFence tells me that I am really hitting the already
freed memory. May be the problem is that Git opens many connections
to the same server and things are getting broken. Will see...

> >The patch is attached. I was working at FreeBSD, so there is an additional
> >patch stanza for the lib/url.c -- it comes from the FreeBSD ports patch.
> >Perhaps it can be integrated into the mainstream CURL too.
>
> Not until someone can tell me why it is needed, and why only for FreeBSD. I've
> actually tried to get that information from the FreeBSD people several times
> over the years, but failed.

The original commit message at
http://www.freebsd.org/cgi/cvsweb.cgi/ports/ftp/curl/files/patch-lib%3a%3aurl.c
says 'Update to 7.10.2, which fixes a signals/threads problem in DNS resolving.'
I will try to understand why it is needed.

Thank you!

-- 
Eygene
Received on 2007-03-01