cURL
Haxx ad
libcurl

curl's project page on SourceForge.net

Sponsors:
Haxx

cURL > Mailing List > Monthly Index > Single Mail

curl-tracker Archives

[ curl-Bugs-3370249 ] [curl 7.21.7 and older] mem leak in DNS lookup

From: SourceForge.net <noreply_at_sourceforge.net>
Date: Thu, 28 Jul 2011 20:09:53 +0200

Bugs item #3370249, was opened at 2011-07-18 14:55
Message generated for change (Comment added) made by bagder
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=100976&aid=3370249&group_id=976

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: libcurl
Group: bad behaviour
Status: Open
>Resolution: Works For Me
Priority: 5
Private: No
Submitted By: Stephan Rudlof (rudlof)
Assigned to: Daniel Stenberg (bagder)
Summary: [curl 7.21.7 and older] mem leak in DNS lookup

Initial Comment:
In a server app polling permanently once per second, there is a mem leak: it is about 5MB per day.
- Upgrading to curl 7.21.7 (by installing manually) has not helped.
- Looking into the problem with valgrind (see below) has supported the guess cURL being the suspect; moreover it has suggested that DNS lookup is part of the problem.
- Looking into cURL source code, DNS seems to be cached somehow: possibly there is the problem. Probably Curl_freeaddrinfo() won't be called enough, at least.
  - A further clue could be, that reiniting the connection for each poll - curl_easy_cleanup(), curl_easy_init(), ... - has not helped!

After all that a workaround has been found: just giving the numeric IP instead of an unresolved server name as part of the URL *avoids* the leak, obviously no DNS is needed then.

Regards,
Stephan

Version
------------
curl 7.21.7 (x86_64-unknown-linux-gnu) libcurl/7.21.7 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.15 libssh2/1.2.6
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: IDN IPv6 Largefile NTLM SSL libz

valgrind output
------------------------
==3618== HEAP SUMMARY:
==3618== in use at exit: 3,974 bytes in 65 blocks
==3618== total heap usage: 302,914 allocs, 302,849 frees, 535,873,612 bytes allocated
==3618==
==3618== 16 bytes in 1 blocks are possibly lost in loss record 1 of 16
==3618== at 0x4C244E8: malloc (vg_replace_malloc.c:236)
==3618== by 0x5912C31: __nss_lookup_function (nsswitch.c:356)
==3618== by 0x58DF3F3: gaih_inet (getaddrinfo.c:707)
==3618== by 0x58E1781: getaddrinfo (getaddrinfo.c:2153)
==3618== by 0x4E6F291: Curl_getaddrinfo_ex (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E6652C: Curl_getaddrinfo (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3ABA8: Curl_resolv (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3AE67: Curl_resolv_timeout (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4A031: resolve_server (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4C0E0: create_conn (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4CC18: Curl_connect (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E5B5E7: Curl_do_perform (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x41C1FC: HTTPConnection::doPOST(std::string const&, std::vector<std::string, std::allocator<std::string> > const*) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x41D200: ECSConnection::pollFifo(unsigned int) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x454DCD: CC_Controller::getSolutionPostResult() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x457ECA: CC_Controller::clientLoop() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x40BA96: clientLoop() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x40D68C: main (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618==
==3618== 21 bytes in 1 blocks are still reachable in loss record 2 of 16
==3618== at 0x4C244E8: malloc (vg_replace_malloc.c:236)
==3618== by 0x4005C7D: open_path (dl-load.c:1912)
==3618== by 0x400791C: _dl_map_object (dl-load.c:2164)
==3618== by 0x4011BC8: dl_open_worker (dl-open.c:225)
==3618== by 0x400D5E5: _dl_catch_error (dl-error.c:178)
==3618== by 0x4011609: _dl_open (dl-open.c:554)
==3618== by 0x593948F: do_dlopen (dl-libc.c:86)
==3618== by 0x400D5E5: _dl_catch_error (dl-error.c:178)
==3618== by 0x593952E: dlerror_run (dl-libc.c:47)
==3618== by 0x5939626: __libc_dlopen_mode (dl-libc.c:160)
==3618== by 0x5912E33: __nss_lookup_function (nsswitch.c:405)
==3618== by 0x58DF3F3: gaih_inet (getaddrinfo.c:707)
==3618== by 0x58E1781: getaddrinfo (getaddrinfo.c:2153)
==3618== by 0x4E6F291: Curl_getaddrinfo_ex (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E6652C: Curl_getaddrinfo (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3ABA8: Curl_resolv (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3AE67: Curl_resolv_timeout (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4A031: resolve_server (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4C0E0: create_conn (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4CC18: Curl_connect (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E5B5E7: Curl_do_perform (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x41C1FC: HTTPConnection::doPOST(std::string const&, std::vector<std::string, std::allocator<std::string> > const*) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x41D200: ECSConnection::pollFifo(unsigned int) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x454DCD: CC_Controller::getSolutionPostResult() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618==
==3618== 21 bytes in 1 blocks are still reachable in loss record 3 of 16
==3618== at 0x4C244E8: malloc (vg_replace_malloc.c:236)
==3618== by 0x400A7C5: _dl_new_object (dl-object.c:150)
==3618== by 0x4005F35: _dl_map_object_from_fd (dl-load.c:969)
==3618== by 0x4007617: _dl_map_object (dl-load.c:2240)
==3618== by 0x4011BC8: dl_open_worker (dl-open.c:225)
==3618== by 0x400D5E5: _dl_catch_error (dl-error.c:178)
==3618== by 0x4011609: _dl_open (dl-open.c:554)
==3618== by 0x593948F: do_dlopen (dl-libc.c:86)
==3618== by 0x400D5E5: _dl_catch_error (dl-error.c:178)
==3618== by 0x593952E: dlerror_run (dl-libc.c:47)
==3618== by 0x5939626: __libc_dlopen_mode (dl-libc.c:160)
==3618== by 0x5912E33: __nss_lookup_function (nsswitch.c:405)
==3618== by 0x58DF3F3: gaih_inet (getaddrinfo.c:707)
==3618== by 0x58E1781: getaddrinfo (getaddrinfo.c:2153)
==3618== by 0x4E6F291: Curl_getaddrinfo_ex (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E6652C: Curl_getaddrinfo (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3ABA8: Curl_resolv (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3AE67: Curl_resolv_timeout (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4A031: resolve_server (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4C0E0: create_conn (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4CC18: Curl_connect (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E5B5E7: Curl_do_perform (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x41C1FC: HTTPConnection::doPOST(std::string const&, std::vector<std::string, std::allocator<std::string> > const*) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x41D200: ECSConnection::pollFifo(unsigned int) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618==
==3618== 24 bytes in 1 blocks are still reachable in loss record 4 of 16
==3618== at 0x4C244E8: malloc (vg_replace_malloc.c:236)
==3618== by 0x692A961: CRYPTO_malloc (in /usr/lib/libcrypto.so.0.9.8)
==3618== by 0x669667B: ??? (in /usr/lib/libssl.so.0.9.8)
==3618== by 0x6696868: SSL_COMP_get_compression_methods (in /usr/lib/libssl.so.0.9.8)
==3618== by 0x669CFE3: SSL_library_init (in /usr/lib/libssl.so.0.9.8)
==3618== by 0x4E53C02: Curl_ossl_init (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E5C668: curl_global_init (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x6251E6: CurlGlobalEnv::CurlGlobalEnv() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x40BB9F: main (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618==
==3618== 24 bytes in 1 blocks are still reachable in loss record 5 of 16
==3618== at 0x4C244E8: malloc (vg_replace_malloc.c:236)
==3618== by 0x5912D8C: __nss_lookup_function (nsswitch.c:796)
==3618== by 0x58DF3F3: gaih_inet (getaddrinfo.c:707)
==3618== by 0x58E1781: getaddrinfo (getaddrinfo.c:2153)
==3618== by 0x4E6F291: Curl_getaddrinfo_ex (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E6652C: Curl_getaddrinfo (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3ABA8: Curl_resolv (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3AE67: Curl_resolv_timeout (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4A031: resolve_server (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4C0E0: create_conn (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4CC18: Curl_connect (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E5B5E7: Curl_do_perform (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x41C1FC: HTTPConnection::doPOST(std::string const&, std::vector<std::string, std::allocator<std::string> > const*) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x41D200: ECSConnection::pollFifo(unsigned int) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x454DCD: CC_Controller::getSolutionPostResult() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x457ECA: CC_Controller::clientLoop() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x40BA96: clientLoop() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x40D68C: main (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618==
==3618== 32 bytes in 1 blocks are still reachable in loss record 6 of 16
==3618== at 0x4C244E8: malloc (vg_replace_malloc.c:236)
==3618== by 0x692A961: CRYPTO_malloc (in /usr/lib/libcrypto.so.0.9.8)
==3618== by 0x6988D2E: sk_new (in /usr/lib/libcrypto.so.0.9.8)
==3618== by 0x6696659: ??? (in /usr/lib/libssl.so.0.9.8)
==3618== by 0x6696868: SSL_COMP_get_compression_methods (in /usr/lib/libssl.so.0.9.8)
==3618== by 0x669CFE3: SSL_library_init (in /usr/lib/libssl.so.0.9.8)
==3618== by 0x4E53C02: Curl_ossl_init (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E5C668: curl_global_init (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x6251E6: CurlGlobalEnv::CurlGlobalEnv() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x40BB9F: main (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618==
==3618== 32 bytes in 1 blocks are still reachable in loss record 7 of 16
==3618== at 0x4C244E8: malloc (vg_replace_malloc.c:236)
==3618== by 0x692A961: CRYPTO_malloc (in /usr/lib/libcrypto.so.0.9.8)
==3618== by 0x6988D4C: sk_new (in /usr/lib/libcrypto.so.0.9.8)
==3618== by 0x6696659: ??? (in /usr/lib/libssl.so.0.9.8)
==3618== by 0x6696868: SSL_COMP_get_compression_methods (in /usr/lib/libssl.so.0.9.8)
==3618== by 0x669CFE3: SSL_library_init (in /usr/lib/libssl.so.0.9.8)
==3618== by 0x4E53C02: Curl_ossl_init (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E5C668: curl_global_init (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x6251E6: CurlGlobalEnv::CurlGlobalEnv() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x40BB9F: main (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618==
==3618== 32 bytes in 1 blocks are possibly lost in loss record 8 of 16
==3618== at 0x4C244E8: malloc (vg_replace_malloc.c:236)
==3618== by 0x5900777: tsearch (tsearch.c:281)
==3618== by 0x5912BC9: __nss_lookup_function (nsswitch.c:342)
==3618== by 0x58DF3F3: gaih_inet (getaddrinfo.c:707)
==3618== by 0x58E1781: getaddrinfo (getaddrinfo.c:2153)
==3618== by 0x4E6F291: Curl_getaddrinfo_ex (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E6652C: Curl_getaddrinfo (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3ABA8: Curl_resolv (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3AE67: Curl_resolv_timeout (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4A031: resolve_server (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4C0E0: create_conn (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4CC18: Curl_connect (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E5B5E7: Curl_do_perform (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x41C1FC: HTTPConnection::doPOST(std::string const&, std::vector<std::string, std::allocator<std::string> > const*) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x41D200: ECSConnection::pollFifo(unsigned int) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x454DCD: CC_Controller::getSolutionPostResult() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x457ECA: CC_Controller::clientLoop() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x40BA96: clientLoop() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x40D68C: main (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618==
==3618== 72 bytes in 1 blocks are still reachable in loss record 9 of 16
==3618== at 0x4C244E8: malloc (vg_replace_malloc.c:236)
==3618== by 0x400BF54: _dl_map_object_deps (dl-deps.c:506)
==3618== by 0x4011C25: dl_open_worker (dl-open.c:262)
==3618== by 0x400D5E5: _dl_catch_error (dl-error.c:178)
==3618== by 0x4011609: _dl_open (dl-open.c:554)
==3618== by 0x593948F: do_dlopen (dl-libc.c:86)
==3618== by 0x400D5E5: _dl_catch_error (dl-error.c:178)
==3618== by 0x593952E: dlerror_run (dl-libc.c:47)
==3618== by 0x5939626: __libc_dlopen_mode (dl-libc.c:160)
==3618== by 0x5912E33: __nss_lookup_function (nsswitch.c:405)
==3618== by 0x58DF3F3: gaih_inet (getaddrinfo.c:707)
==3618== by 0x58E1781: getaddrinfo (getaddrinfo.c:2153)
==3618== by 0x4E6F291: Curl_getaddrinfo_ex (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E6652C: Curl_getaddrinfo (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3ABA8: Curl_resolv (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3AE67: Curl_resolv_timeout (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4A031: resolve_server (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4C0E0: create_conn (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4CC18: Curl_connect (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E5B5E7: Curl_do_perform (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x41C1FC: HTTPConnection::doPOST(std::string const&, std::vector<std::string, std::allocator<std::string> > const*) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x41D200: ECSConnection::pollFifo(unsigned int) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x454DCD: CC_Controller::getSolutionPostResult() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x457ECA: CC_Controller::clientLoop() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618==
==3618== 122 bytes in 2 blocks are possibly lost in loss record 10 of 16
==3618== at 0x4C244E8: malloc (vg_replace_malloc.c:236)
==3618== by 0x591305C: nss_parse_service_list (nsswitch.c:622)
==3618== by 0x591384D: __nss_database_lookup (nsswitch.c:164)
==3618== by 0x58E00FB: gaih_inet (getaddrinfo.c:683)
==3618== by 0x58E1781: getaddrinfo (getaddrinfo.c:2153)
==3618== by 0x4E6F291: Curl_getaddrinfo_ex (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E6652C: Curl_getaddrinfo (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3ABA8: Curl_resolv (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3AE67: Curl_resolv_timeout (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4A031: resolve_server (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4C0E0: create_conn (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4CC18: Curl_connect (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E5B5E7: Curl_do_perform (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x41C1FC: HTTPConnection::doPOST(std::string const&, std::vector<std::string, std::allocator<std::string> > const*) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x41D200: ECSConnection::pollFifo(unsigned int) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x454DCD: CC_Controller::getSolutionPostResult() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x457ECA: CC_Controller::clientLoop() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x40BA96: clientLoop() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x40D68C: main (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618==
==3618== 192 bytes in 1 blocks are still reachable in loss record 11 of 16
==3618== at 0x4C2380C: calloc (vg_replace_malloc.c:467)
==3618== by 0x400F233: _dl_check_map_versions (dl-version.c:299)
==3618== by 0x4011E78: dl_open_worker (dl-open.c:268)
==3618== by 0x400D5E5: _dl_catch_error (dl-error.c:178)
==3618== by 0x4011609: _dl_open (dl-open.c:554)
==3618== by 0x593948F: do_dlopen (dl-libc.c:86)
==3618== by 0x400D5E5: _dl_catch_error (dl-error.c:178)
==3618== by 0x593952E: dlerror_run (dl-libc.c:47)
==3618== by 0x5939626: __libc_dlopen_mode (dl-libc.c:160)
==3618== by 0x5912E33: __nss_lookup_function (nsswitch.c:405)
==3618== by 0x58DF3F3: gaih_inet (getaddrinfo.c:707)
==3618== by 0x58E1781: getaddrinfo (getaddrinfo.c:2153)
==3618== by 0x4E6F291: Curl_getaddrinfo_ex (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E6652C: Curl_getaddrinfo (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3ABA8: Curl_resolv (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3AE67: Curl_resolv_timeout (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4A031: resolve_server (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4C0E0: create_conn (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4CC18: Curl_connect (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E5B5E7: Curl_do_perform (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x41C1FC: HTTPConnection::doPOST(std::string const&, std::vector<std::string, std::allocator<std::string> > const*) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x41D200: ECSConnection::pollFifo(unsigned int) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x454DCD: CC_Controller::getSolutionPostResult() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x457ECA: CC_Controller::clientLoop() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618==
==3618== 208 bytes in 13 blocks are indirectly lost in loss record 12 of 16
==3618== at 0x4C244E8: malloc (vg_replace_malloc.c:236)
==3618== by 0x5912C31: __nss_lookup_function (nsswitch.c:356)
==3618== by 0x58DF3F3: gaih_inet (getaddrinfo.c:707)
==3618== by 0x58E1781: getaddrinfo (getaddrinfo.c:2153)
==3618== by 0x4E6F291: Curl_getaddrinfo_ex (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E6652C: Curl_getaddrinfo (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3ABA8: Curl_resolv (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3AE67: Curl_resolv_timeout (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4A031: resolve_server (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4C0E0: create_conn (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4CC18: Curl_connect (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E5B5E7: Curl_do_perform (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x41C1FC: HTTPConnection::doPOST(std::string const&, std::vector<std::string, std::allocator<std::string> > const*) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x41D200: ECSConnection::pollFifo(unsigned int) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x454DCD: CC_Controller::getSolutionPostResult() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x457ECA: CC_Controller::clientLoop() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x40BA96: clientLoop() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x40D68C: main (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618==
==3618== 416 bytes in 13 blocks are indirectly lost in loss record 13 of 16
==3618== at 0x4C244E8: malloc (vg_replace_malloc.c:236)
==3618== by 0x5900777: tsearch (tsearch.c:281)
==3618== by 0x5912BC9: __nss_lookup_function (nsswitch.c:342)
==3618== by 0x58DF3F3: gaih_inet (getaddrinfo.c:707)
==3618== by 0x58E1781: getaddrinfo (getaddrinfo.c:2153)
==3618== by 0x4E6F291: Curl_getaddrinfo_ex (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E6652C: Curl_getaddrinfo (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3ABA8: Curl_resolv (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3AE67: Curl_resolv_timeout (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4A031: resolve_server (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4C0E0: create_conn (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4CC18: Curl_connect (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E5B5E7: Curl_do_perform (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x41C1FC: HTTPConnection::doPOST(std::string const&, std::vector<std::string, std::allocator<std::string> > const*) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x41D200: ECSConnection::pollFifo(unsigned int) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x454DCD: CC_Controller::getSolutionPostResult() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x457ECA: CC_Controller::clientLoop() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x40BA96: clientLoop() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x40D68C: main (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618==
==3618== 806 bytes in 13 blocks are indirectly lost in loss record 14 of 16
==3618== at 0x4C244E8: malloc (vg_replace_malloc.c:236)
==3618== by 0x591305C: nss_parse_service_list (nsswitch.c:622)
==3618== by 0x591384D: __nss_database_lookup (nsswitch.c:164)
==3618== by 0x58E00FB: gaih_inet (getaddrinfo.c:683)
==3618== by 0x58E1781: getaddrinfo (getaddrinfo.c:2153)
==3618== by 0x4E6F291: Curl_getaddrinfo_ex (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E6652C: Curl_getaddrinfo (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3ABA8: Curl_resolv (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3AE67: Curl_resolv_timeout (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4A031: resolve_server (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4C0E0: create_conn (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4CC18: Curl_connect (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E5B5E7: Curl_do_perform (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x41C1FC: HTTPConnection::doPOST(std::string const&, std::vector<std::string, std::allocator<std::string> > const*) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x41D200: ECSConnection::pollFifo(unsigned int) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x454DCD: CC_Controller::getSolutionPostResult() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x457ECA: CC_Controller::clientLoop() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x40BA96: clientLoop() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x40D68C: main (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618==
==3618== 1,176 bytes in 1 blocks are still reachable in loss record 15 of 16
==3618== at 0x4C2380C: calloc (vg_replace_malloc.c:467)
==3618== by 0x400A4DE: _dl_new_object (dl-object.c:52)
==3618== by 0x4005F35: _dl_map_object_from_fd (dl-load.c:969)
==3618== by 0x4007617: _dl_map_object (dl-load.c:2240)
==3618== by 0x4011BC8: dl_open_worker (dl-open.c:225)
==3618== by 0x400D5E5: _dl_catch_error (dl-error.c:178)
==3618== by 0x4011609: _dl_open (dl-open.c:554)
==3618== by 0x593948F: do_dlopen (dl-libc.c:86)
==3618== by 0x400D5E5: _dl_catch_error (dl-error.c:178)
==3618== by 0x593952E: dlerror_run (dl-libc.c:47)
==3618== by 0x5939626: __libc_dlopen_mode (dl-libc.c:160)
==3618== by 0x5912E33: __nss_lookup_function (nsswitch.c:405)
==3618== by 0x58DF3F3: gaih_inet (getaddrinfo.c:707)
==3618== by 0x58E1781: getaddrinfo (getaddrinfo.c:2153)
==3618== by 0x4E6F291: Curl_getaddrinfo_ex (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E6652C: Curl_getaddrinfo (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3ABA8: Curl_resolv (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3AE67: Curl_resolv_timeout (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4A031: resolve_server (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4C0E0: create_conn (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4CC18: Curl_connect (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E5B5E7: Curl_do_perform (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x41C1FC: HTTPConnection::doPOST(std::string const&, std::vector<std::string, std::allocator<std::string> > const*) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x41D200: ECSConnection::pollFifo(unsigned int) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618==
==3618== 2,210 (780 direct, 1,430 indirect) bytes in 13 blocks are definitely lost in loss record 16 of 16
==3618== at 0x4C244E8: malloc (vg_replace_malloc.c:236)
==3618== by 0x591305C: nss_parse_service_list (nsswitch.c:622)
==3618== by 0x591384D: __nss_database_lookup (nsswitch.c:164)
==3618== by 0x58E00FB: gaih_inet (getaddrinfo.c:683)
==3618== by 0x58E1781: getaddrinfo (getaddrinfo.c:2153)
==3618== by 0x4E6F291: Curl_getaddrinfo_ex (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E6652C: Curl_getaddrinfo (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3ABA8: Curl_resolv (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E3AE67: Curl_resolv_timeout (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4A031: resolve_server (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4C0E0: create_conn (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E4CC18: Curl_connect (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x4E5B5E7: Curl_do_perform (in /home/sr/Projects/NumLab/trunk/Backend/local/lib/libcurl.so.4.2.0)
==3618== by 0x41C1FC: HTTPConnection::doPOST(std::string const&, std::vector<std::string, std::allocator<std::string> > const*) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x41D200: ECSConnection::pollFifo(unsigned int) (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x454DCD: CC_Controller::getSolutionPostResult() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x457ECA: CC_Controller::clientLoop() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x40BA96: clientLoop() (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618== by 0x40D68C: main (in /home/sr/Projects/NumLab/trunk/Backend/bin/vip_cc_memLeak)
==3618==
==3618== LEAK SUMMARY:
==3618== definitely lost: 780 bytes in 13 blocks
==3618== indirectly lost: 1,430 bytes in 39 blocks
==3618== possibly lost: 170 bytes in 4 blocks
==3618== still reachable: 1,594 bytes in 9 blocks
==3618== suppressed: 0 bytes in 0 blocks
==3618==
==3618== For counts of detected and suppressed errors, rerun with: -v
==3618== ERROR SUMMARY: 20 errors from 14 contexts (suppressed: 4 from 4)

----------------------------------------------------------------------

>Comment By: Daniel Stenberg (bagder)
Date: 2011-07-28 20:09

Message:
Perhaps, but as long as you can't provide a way to repeat the problem then
I will suspect that the problem is rather in your end and not libcurl.
After all we do check for memory leaks (using two different ways, including
valgrind) in the test suite and we've not seen this leak in our tests.

The fact that you get paid to work with libcurl and you use that as an
argument with us who work on it as unpaid volunteers is a very funny
argument...

If we do indeed have a memory leak in the host name name resolving area, I
cannot see why it would need a large or complex program to repeat it and I
would think that even a small program that does some of your larger
program's logic would repeat the leak.

Therefore, if you cannot provide a way for me to see the leak occur I will
lean towards not considering this a real bug.

----------------------------------------------------------------------

Comment By: Stephan Rudlof (rudlof)
Date: 2011-07-26 17:57

Message:
I'm sorry: I don't have the time for building a small stand-alone app out
of quiet specific sources (I'm at work here).
And it's questionable, if a small stand-alone app would easily trigger the
same error, because the system config as a whole is specific: certificates,
https.

But I can give you the sources for handling libcurl communication to give
you an idea, about libcurl settings used (see ECSConnection.*pp,
Constants.hpp).

----------------------------------------------------------------------

Comment By: Daniel Stenberg (bagder)
Date: 2011-07-18 19:43

Message:
Can you please show us the source code for a small stand-alone app that
triggers this memory leak?

----------------------------------------------------------------------

You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=100976&aid=3370249&group_id=976
Received on 2011-07-28

These mail archives are generated by hypermail.

donate! Page updated November 12, 2010.
web site info

File upload with ASP.NET