Skip to content

threaded resolver memory-leak at OOM #17507

Closed
@bagder

Description

@bagder

I did this

Because we run torture tests in CI mostly without valgrind due to it slowing them down so much, they do not test the threaded-resolver parts proper because the internal memory-tracking is disabled when using the threaded-resolver.

Thus: running a manual torture test with valgrind on test 2102 with a debug build runs a something that is not done in CI.

./runtests.pl -t104 2102
...
 valgrind ERROR ==453851== 611 (75 direct, 536 indirect) bytes in 1 blocks are definitely lost in loss record 2 of 2
==453851==    at 0x484BBA3: calloc (vg_replace_malloc.c:1675)
==453851==    by 0x15B0C8: curl_dbg_calloc (memdebug.c:175)
==453851==    by 0x155EC4: Curl_dnscache_mk_entry (hostip.c:513)
==453851==    by 0x1AB287: Curl_async_is_resolved (asyn-thrdd.c:586)
==453851==    by 0x157D22: Curl_resolv_check (hostip.c:1508)
==453851==    by 0x166D31: state_resolving (multi.c:2160)
==453851==    by 0x167331: multi_runsingle (multi.c:2339)
==453851==    by 0x168014: curl_multi_perform (multi.c:2687)
==453851==    by 0x150155: easy_transfer (easy.c:710)
==453851==    by 0x150453: easy_perform (easy.c:818)
==453851==    by 0x15049D: curl_easy_perform (easy.c:837)
==453851==    by 0x140449: serial_transfers (tool_operate.c:1962)
==453851==    by 0x140A09: run_all_transfers (tool_operate.c:2186)
==453851==    by 0x140DFB: operate (tool_operate.c:2326)
==453851==    by 0x13BEA4: main (tool_main.c:284)
==453851== 

I expected the following

The test should run clean

curl/libcurl version

current git master June 1, 2025

operating system

Linux, but is mostly independent.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions