Open
Description
While I can't reproduce the assertion failure with valgrind (#730), running the exact commands as the CI always fails locally for me.
I noticed that the outcome depends on which tests are executed. The commented-out tests reliably cause valgrind errors:
local matches = {
-- ["async"] = true, -- test-async.lua
-- ["callbacks"] = true, -- test-callbacks.lua
["conversions"] = true, -- test-conversions.lua
["coroutines"] = true, -- test-coroutines.lua
-- ["dns"] = true, -- test-dns.lua
-- ["fs"] = true, -- test-fs.lua
["handle"] = true, -- test-handle.lua
["loop"] = true, -- test-loop.lua
["metrics"] = true, -- test-metrics.lua
-- ["misc"] = true, -- test-misc.lua
["pipe"] = true, -- test-pipe.lua
["prepare-check-idle-async"] = true, -- test-prepare-check-idle-async.lua
["process"] = true, -- test-process.lua
-- ["req"] = true, -- test-req.lua
-- ["signal"] = true, -- test-signal.lua
["tcp"] = true, -- test-tcp.lua
-- ["thread"] = true, -- test-thread.lua
["timer"] = true, -- test-timer.lua
["tty"] = true, -- test-tty.lua
["udp"] = true, -- test-udp.lua
-- ["work"] = true, -- test-work.lua
}
For quick-and-dirty testing I modified run.lua
so that it's easier to run a subset of the tests:
-- Replaces: if match then ...
if matches[match] then
This is on Linux. As soon as I enable one of the other tests, individually or in combination, valgrind fails. Enabling all tests:
==92871== HEAP SUMMARY:
==92871== in use at exit: 6,390 bytes in 17 blocks
==92871== total heap usage: 55,609 allocs, 55,592 frees, 58,973,245 bytes allocated
==92871==
==92871== 272 bytes in 1 blocks are possibly lost in loss record 6 of 11
==92871== at 0x483DD99: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==92871== by 0x40149DA: allocate_dtv (dl-tls.c:286)
==92871== by 0x40149DA: _dl_allocate_tls (dl-tls.c:532)
==92871== by 0x5036322: allocate_stack (allocatestack.c:622)
==92871== by 0x5036322: pthread_create@@GLIBC_2.2.5 (pthread_create.c:660)
==92871== by 0x5008187: uv_thread_create_ex (thread.c:172)
==92871== by 0x4FE2646: luv_new_thread (thread.c:382)
==92871== by 0x12CC91: precallC (ldo.c:529)
==92871== by 0x12CFBC: luaD_precall (ldo.c:595)
==92871== by 0x1384F8: luaV_execute (lvm.c:1682)
==92871== by 0x12D220: ccall (ldo.c:637)
==92871== by 0x12D29D: luaD_callnoyield (ldo.c:655)
==92871== by 0x13C517: f_call (lapi.c:1038)
==92871== by 0x12BBBD: luaD_rawrunprotected (ldo.c:144)
==92871==
==92871== 816 bytes in 3 blocks are possibly lost in loss record 9 of 11
==92871== at 0x483DD99: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==92871== by 0x40149DA: allocate_dtv (dl-tls.c:286)
==92871== by 0x40149DA: _dl_allocate_tls (dl-tls.c:532)
==92871== by 0x5036322: allocate_stack (allocatestack.c:622)
==92871== by 0x5036322: pthread_create@@GLIBC_2.2.5 (pthread_create.c:660)
==92871== by 0x5008187: uv_thread_create_ex (thread.c:172)
==92871== by 0x4FEC5ED: init_threads (threadpool.c:234)
==92871== by 0x4FEC6BD: init_once (threadpool.c:261)
==92871== by 0x503E4DE: __pthread_once_slow (pthread_once.c:116)
==92871== by 0x50088A0: uv_once (thread.c:433)
==92871== by 0x4FEC6F8: uv__work_submit (threadpool.c:270)
==92871== by 0x4FFB845: uv_fs_stat (fs.c:2177)
==92871== by 0x4FD1EB3: luv_fs_stat (fs.c:678)
==92871== by 0x12CC91: precallC (ldo.c:529)
==92871==
==92871== LEAK SUMMARY:
==92871== definitely lost: 0 bytes in 0 blocks
==92871== indirectly lost: 0 bytes in 0 blocks
==92871== possibly lost: 1,088 bytes in 4 blocks
==92871== still reachable: 5,302 bytes in 13 blocks
==92871== suppressed: 0 bytes in 0 blocks
==92871== Reachable blocks (those to which a pointer was found) are not shown.
==92871== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==92871==
==92871== For lists of detected and suppressed errors, rerun with: -s
==92871== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
I don't have time to investigate right now, but maybe someone can reproduce the error? Not sure if related to the assertion failure.
Metadata
Metadata
Assignees
Labels
No labels