cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: Intermittent write errors while doing a PUT operation in 7.27.0

From: Daniel Stenberg <daniel_at_haxx.se>
Date: Thu, 18 Oct 2012 19:51:03 +0200 (CEST)

On Thu, 18 Oct 2012, Gautam Gopinadhan wrote:

> When linked with any version of libcurl until and including 7.23.1, our test
> code functions exactly as expected - it sends data to the server
> successfully on every attempt. However from version 7.24.0 onwards, we
> notice that intermittently one odd connection errors out (after a 60 second
> timeout due to a setopt) waiting for a 200OK response from the server.

This is plain HTTP?

I guess it could be intersting to bisect your way all the way to the exact
commit that changed the behavior for you...

> When viewing the backtrace for a specific failed connection, it seems to
> wait forever with this backtrace signature. (The line number correspond to
> 7.27.0)
>
> (gdb) bt
> #0  0x0000003dca8dc053 in poll () from /lib64/libc.so.6
> #1  0x0000000000585fc0 in Curl_socket_check (readfd0=315, readfd1=-1, writefd=-1, timeout_ms=1000) at select.c:216

It gets stuck forever in a check that is supposed to time-out after 1000 ms?
Are you sure?

> #2  0x00000000005b9316 in Transfer (conn=0x7fadb40012c8) at transfer.c:1384
> #3  0x00000000005ba2f6 in Curl_do_perform (data=0x7fadb00008e8) at transfer.c:2109
> #4  0x00000000005ba5ac in Curl_perform (data=0x7fadb00008e8) at transfer.c:2233
> #5  0x000000000057c355 in curl_easy_perform (curl=0x7fadb00008e8) at easy.c:536
>
> This seems to indicate that the thread is waiting for a 200OK from the
> server after having performed a write. 

... and you're saying that the data is coming without libcurl noticing it?

> An interesting observation is that I'm able to recreate this error very
> consistently and the error happens at the exact same index in the pseudo
> code while loop above. As mentioned, this is never seen on libcurl 7.23.1
> and lower, but it is always seen on all version 7.24.0 and above.

I've never seen a report like this before. Between 7.23.1 and 7.24.0 we did
205 commits...

-- 
  / daniel.haxx.se

-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2012-10-18