cURL / Mailing Lists / curl-library / Single Mail

curl-library

"easy handled already used in multi handle"

From: Chris Johnson <cxjohnson_at_gmail.com>
Date: Thu, 1 May 2014 16:11:02 -0500

I'm looking for advice on how to solve a core dump resulting from a libcurl
error, which issues the message "easy handled already used in multi handle".

I have 6 C++ application servers which use libcurl to communicate with
trading partners. They all use a common library which in turn uses
libcurl. The common library has been in use for years without trouble, nor
have we seen any trouble with libcurl.

Today, one of the servers gave me a core dump on an unhandled exception
which was generated because of the above error from libcurl. To be clear:
 libcurl did not throw the exception, nor cause it directly. It's my own
code which treats the unexpected return condition from libcurl this way.

However, I'm perplexed. The code only uses the libcurl-easy interface, for
the most part. It calls the following libcurl functions:

 * curl_easy_setopt()
 * curl_easy_getinfo()
 * curl_easy_perform()
 * curl_formadd()
 * curl_formfree()

So how is it ending up in the libcurl-multi interface?

My stack looks like this;

(gdb) where
#0 0x0000000802572317 in strlen () from /lib/libc.so.7
#1 0x00000008009c4aeb in curl_formfree () from /usr/local/lib/libcurl.so.7
#2 0x00000008009c4eaf in curl_formfree () from /usr/local/lib/libcurl.so.7
#3 0x00000008009ca671 in curl_formadd () from /usr/local/lib/libcurl.so.7
#4 0x00000008009d30c0 in curl_formadd () from /usr/local/lib/libcurl.so.7
#5 0x00000008009ea2e1 in curl_multi_fdset () from
/usr/local/lib/libcurl.so.7
#6 0x00000008009eaed5 in curl_multi_perform () from
/usr/local/lib/libcurl.so.7
#7 0x00000008009e2aa6 in curl_easy_perform () from
/usr/local/lib/libcurl.so.7
#8 0x000000000052788f in CORE::sendRequest (this=0x804567300) at
CORE.cpp:195

CORE.cpp is my wrapper library, wherein I make calls to the above 5 libcurl
functions.

Is this condition even a real error? Perhaps my code should just ignore
the specific condition associated with the message "easy handled already
used in multi handle"?

I'm using libcurl 7.35.0 on FreeBSD 9.2-RELEASE-p3.

Thanks much,
..chris

-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2014-05-02