cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: curl-library Digest, Vol 47, Issue 35

From: Nick Gerner <nick_at_seomoz.org>
Date: Sat, 18 Jul 2009 17:15:40 -0700

> Message: 6
> Date: Fri, 17 Jul 2009 17:30:11 -0700
> From: johansen_at_sun.com
> Subject: debugging a crash in Curl_pgrsTime/checkPendPipeline?
> To: libcurl development <curl-library_at_cool.haxx.se>
> Message-ID: <20090718003011.GF109185_at_eng.sun.com>
> Content-Type: text/plain; charset=us-ascii
>
> Folks,
> The OpenSolaris packaging project recently switched to using PyCurl as
> the framework for performing network operations.  In general, the
> transition has gone well; however, I've recently run across a segfault
> that a few users are seeing.
>
> It's with libcurl-7.19.4 and PyCurl-7.19.0.  A couple of patches have
> been applied to PyCurl so that a reset() of an easy handle works
> properly.
>
> I've yet to reproduce the crash myself, but it appears to occur while
> performing downloads with a large number of files.
>

This feels similar to a set of issues we ran into with curl 7.18.x
This went away with 7.19 and I haven't seen again in 7.19.3 (which is
what we currently run). Somehow I feel like we ran into a similar
issue again if we tried to go past 7.19.3

We never investigated enough to get to the bottom of it, but yes,
Curl_pgrsTime/checkPendPipeline sounds right. So does downloading a
ton of files. Our repro was to download millions of files in the same
process. And even then it was a one in 100 million shot :(

Here's a relevant stacktrace (probably from a 7.18 version, but I've
seen a similar one from a build after 7.19.3):

Program terminated with signal 11, Segmentation fault.
[New process 21235]
#0 0x00007f5eb050f2fb in Curl_pgrsTime (data=0xbab1e,
    timer=<value optimized out>) at progress.c:172
172 data->progress.t_connect =
(gdb) bt
#0 0x00007f5eb050f2fb in Curl_pgrsTime (data=0xbab1e,
    timer=<value optimized out>) at progress.c:172
#1 0x00007f5eb052e0d2 in checkPendPipeline (conn=0x60dfa30) at multi.c:1983
#2 0x00007f5eb052e838 in multi_runsingle (multi=0x59005f0, easy=0x6e05ed0)
    at multi.c:1337
#3 0x00007f5eb052f1e6 in multi_socket (multi=0x59005f0,
    checkall=<value optimized out>, s=1919, ev_bitmask=0,
    running_handles=0x7fffb9698314) at multi.c:1782
#4 0x00007f5eb052f32f in curl_multi_socket_action (multi_handle=0xb3690e,
    s=3943, ev_bitmask=0, running_handles=0x7fffb9698190) at multi.c:1872

We have a note in our issue tracker:
"This is fixed in curl 7.19 but it looks like there was a regression
in a later version of curl. There are a couple of email messages
around something suspiciously similar in the curl-lib mailing list
between March and May."

Sorry I don't have more help for you.

--Nick
Received on 2009-07-19