-
Notifications
You must be signed in to change notification settings - Fork 29.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Flaky or bugged async-hooks/test-zlib.zlib-binding.deflate #20907
Comments
cc @nodejs/zlib @nodejs/async_hooks |
I think this is going to be nearly impossible to debug without having access to a machine on which this is reproducible. /cc @nodejs/build Locally everything seems fine to me. As always with these kinds of issues, it would be great to have |
Yeah... I tried running my own machine with a similar setup but couldn't reproduce the crash or find anything with valgrind. Sounds like we will definitely need access. |
Maybe somebody like @Trott can ssh into one of these machines and run that command? That might be a huge help for finding a point to start. (Maybe first share the output privately though, if there is any, since memory corruption bugs sometimes can have security implications…) |
@apapirovski @addaleax What would be the best way for build to help debug this? To run valgrind and then share the output privately? |
@maclover7 That is at least worth the attempt, yes |
I'm doing a bisect to find the commit that caused this. https://ci.nodejs.org/job/node-test-commit-linux/19012/ shows that 4f0ab76 is good. So it's a commit that landed after that. |
Here's an interesting thing I found in Jenkins, not sure if helpful or not: https://ci.nodejs.org/job/node-test-commit-linuxone/1556/nodes=rhel72-s390x/testReport/(root)/test/async_hooks_test_zlib_zlib_binding_deflate/ |
OK, then, back to bisecting! 3654cd4 is good, so whatever caused this issue landed after that. https://ci.nodejs.org/job/node-test-commit-linux/19017/ |
@Trott then that's definitely not the bug I'm talking about. |
a5aad24 was green so it is a commit that landed after that. |
23a56e0 is bad so it was either that commit or else 6f6f7f7. https://ci.nodejs.org/job/node-test-commit-linux/19021/ |
It's 23a56e0. 6f6f7f7 came up clean at: https://ci.nodejs.org/job/node-test-commit-linux/19023/ |
PR to revert the commit that seems to cause (or merely expose or whatever) the issue: #20919 |
Ok, maybe not tracing but certainly related code... looks like maybe threads? |
Also if someone wants to volunteer to run valgrind that would still be helpful. My progress is coming along but it's slow and painful. |
Ok, so at least on one system it segfaults when it's calling Lines 55 to 60 in 531b4be
Anyone have any ideas? Perhaps @bnoordhuis? Edit: There's not a predictable thread that it segfaults on. Sometimes it's the 2nd, sometimes 3rd. |
An issue with the |
test-zlib.zlib-binding.deflate is failing continuously in our CI, leaving us with 1% successful builds during the last 100 runs. This commit marks the test as flaky while the issue is not resolved. Ref: nodejs#20907
@addaleax FWIW I still think trace events could be the culprit. We occasionally see a segfault on our Windows machines in the |
Nope. Found the cause, I think? Working on a fix. Edit: nope, just changed the GC timing again... :| |
Taking a break from this today. If anyone from @nodejs/build or otherwise can get access to run valgrind, I would be ecstatic. Otherwise debugging resumes at some point this weekend... |
@apapirovski You can request temporary access to one of the hosts if you'd like to be able to SSH in and run valgrind yourself. To request temporary access, open an issue in the build repo explaining what host you want access to and why. I suspect your request would be approved quickly. Alternatively, I can take a host out of the Jenkins pool and run valgrind on it for you. Do you need any CLI flags set (like |
@Trott I’d first run it without, and if it suggests something near the end of the output (in particular |
I can reproduce this using |
The test fails with [iojs@test-rackspace-fedora27-x64-1 fedora-latest-x64]$ tools/test.py test/async-hooks/test-zlib.zlib-binding.deflate.js
=== release test-zlib.zlib-binding.deflate ===
Path: async-hooks/test-zlib.zlib-binding.deflate
Command: out/Release/node /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/test/async-hooks/test-zlib.zlib-binding.deflate.js
--- CRASHED (Signal: 11) ---
[00:00|% 100|+ 0|- 1]: Done
[iojs@test-rackspace-fedora27-x64-1 fedora-latest-x64]$ tools/test.py --valgrind test/async-hooks/test-zlib.zlib-binding.deflate.js
[00:14|% 100|+ 1|- 0]: Done
[iojs@test-rackspace-fedora27-x64-1 fedora-latest-x64]$ |
At @addaleax's suggestion, I was able to get it to fail using iojs@test-rackspace-fedora27-x64-1 fedora-latest-x64]$ tools/test.py --valgrind test/async-hooks/test-zlib.zlib-binding.deflate.js
=== release test-zlib.zlib-binding.deflate ===
Path: async-hooks/test-zlib.zlib-binding.deflate
==32152== Helgrind, a thread error detector
==32152== Copyright (C) 2007-2017, and GNU GPL'd, by OpenWorks LLP et al.
==32152== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==32152== Command: /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/test/async-hooks/test-zlib.zlib-binding.deflate.js
==32152==
==32152== ---Thread-Announcement------------------------------------------
==32152==
==32152== Thread #3 was created
==32152== at 0x5E4615E: clone (in /usr/lib64/libc-2.26.so)
==32152== by 0x5B39281: create_thread (in /usr/lib64/libpthread-2.26.so)
==32152== by 0x5B3ACDF: pthread_create@@GLIBC_2.2.5 (in /usr/lib64/libpthread-2.26.so)
==32152== by 0x4C337ED: pthread_create_WRK (hg_intercepts.c:427)
==32152== by 0x4C348DF: pthread_create@* (hg_intercepts.c:460)
==32152== by 0x9AC4DE: uv_thread_create (thread.c:202)
==32152== by 0x8DBEEC: node::BackgroundTaskRunner::BackgroundTaskRunner(int) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x8DC062: node::NodePlatform::NodePlatform(int, v8::TracingController*) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x883ED7: node::Start(int, char**) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x5D71F29: (below main) (in /usr/lib64/libc-2.26.so)
==32152==
==32152== ---Thread-Announcement------------------------------------------
==32152==
==32152== Thread #2 was created
==32152== at 0x5E4615E: clone (in /usr/lib64/libc-2.26.so)
==32152== by 0x5B39281: create_thread (in /usr/lib64/libpthread-2.26.so)
==32152== by 0x5B3ACDF: pthread_create@@GLIBC_2.2.5 (in /usr/lib64/libpthread-2.26.so)
==32152== by 0x4C337ED: pthread_create_WRK (hg_intercepts.c:427)
==32152== by 0x4C348DF: pthread_create@* (hg_intercepts.c:460)
==32152== by 0x9AC4DE: uv_thread_create (thread.c:202)
==32152== by 0x8DBEEC: node::BackgroundTaskRunner::BackgroundTaskRunner(int) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x8DC062: node::NodePlatform::NodePlatform(int, v8::TracingController*) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x883ED7: node::Start(int, char**) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x5D71F29: (below main) (in /usr/lib64/libc-2.26.so)
==32152==
==32152== ----------------------------------------------------------------
==32152==
==32152== Possible data race during read of size 8 at 0x238BF68 by thread #3
==32152== Locks held: none
==32152== at 0x8D9970: node::BackgroundRunner(void*) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x4C339E1: mythread_wrapper (hg_intercepts.c:389)
==32152== by 0x5B3A50A: start_thread (in /usr/lib64/libpthread-2.26.so)
==32152== by 0x5E4616E: clone (in /usr/lib64/libc-2.26.so)
==32152==
==32152== This conflicts with a previous write of size 8 by thread #2
==32152== Locks held: none
==32152== at 0x8D9B46: node::BackgroundRunner(void*) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x4C339E1: mythread_wrapper (hg_intercepts.c:389)
==32152== by 0x5B3A50A: start_thread (in /usr/lib64/libpthread-2.26.so)
==32152== by 0x5E4616E: clone (in /usr/lib64/libc-2.26.so)
==32152== Address 0x238bf68 is 0 bytes inside data symbol "_ZZN4nodeL16BackgroundRunnerEPvE27trace_event_unique_atomic21"
==32152==
==32152== ---Thread-Announcement------------------------------------------
==32152==
==32152== Thread #1 is the program's root thread
==32152==
==32152== ---Thread-Announcement------------------------------------------
==32152==
==32152== Thread #4 was created
==32152== at 0x5E4615E: clone (in /usr/lib64/libc-2.26.so)
==32152== by 0x5B39281: create_thread (in /usr/lib64/libpthread-2.26.so)
==32152== by 0x5B3ACDF: pthread_create@@GLIBC_2.2.5 (in /usr/lib64/libpthread-2.26.so)
==32152== by 0x4C337ED: pthread_create_WRK (hg_intercepts.c:427)
==32152== by 0x4C348DF: pthread_create@* (hg_intercepts.c:460)
==32152== by 0x9AC4DE: uv_thread_create (thread.c:202)
==32152== by 0x8DBEEC: node::BackgroundTaskRunner::BackgroundTaskRunner(int) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x8DC062: node::NodePlatform::NodePlatform(int, v8::TracingController*) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x883ED7: node::Start(int, char**) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x5D71F29: (below main) (in /usr/lib64/libc-2.26.so)
==32152==
==32152== ----------------------------------------------------------------
==32152==
==32152== Lock at 0x611FB38 was first observed
==32152== at 0x4C34CA3: pthread_mutex_init (hg_intercepts.c:787)
==32152== by 0xE6263B: v8::internal::Heap::Heap() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xF36C0E: v8::internal::Isolate::Isolate(bool) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xA7B170: v8::Isolate::New(v8::Isolate::CreateParams const&) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x883F99: node::Start(int, char**) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x5D71F29: (below main) (in /usr/lib64/libc-2.26.so)
==32152== Address 0x611fb38 is 6,680 bytes inside a block of size 24,328 alloc'd
==32152== at 0x4C2E5DA: operator new(unsigned long) (vg_replace_malloc.c:334)
==32152== by 0xA7B163: v8::Isolate::New(v8::Isolate::CreateParams const&) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x883F99: node::Start(int, char**) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x5D71F29: (below main) (in /usr/lib64/libc-2.26.so)
==32152== Block was alloc'd by thread #1
==32152==
==32152== Lock at 0x6124E20 was first observed
==32152== at 0x4C34CA3: pthread_mutex_init (hg_intercepts.c:787)
==32152== by 0x119DA88: v8::internal::ThreadManager::ThreadManager() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xF3744A: v8::internal::Isolate::Isolate(bool) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xA7B170: v8::Isolate::New(v8::Isolate::CreateParams const&) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x883F99: node::Start(int, char**) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x5D71F29: (below main) (in /usr/lib64/libc-2.26.so)
==32152== Address 0x6124e20 is 0 bytes inside a block of size 80 alloc'd
==32152== at 0x4C2E5DA: operator new(unsigned long) (vg_replace_malloc.c:334)
==32152== by 0xF3743F: v8::internal::Isolate::Isolate(bool) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xA7B170: v8::Isolate::New(v8::Isolate::CreateParams const&) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x883F99: node::Start(int, char**) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x5D71F29: (below main) (in /usr/lib64/libc-2.26.so)
==32152== Block was alloc'd by thread #1
==32152==
==32152== Lock at 0x1FFEFFE020 was first observed
==32152== at 0x4C34CA3: pthread_mutex_init (hg_intercepts.c:787)
==32152== by 0xE76766: v8::internal::Heap::Scavenge() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE7B5BF: v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE7BD03: v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE2DC28: v8::internal::Handle<v8::internal::ConsString> v8::internal::Factory::New<v8::internal::ConsString>(v8::internal::Handle<v8::internal::Map>, v8::internal::AllocationSpace) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE2DEBD: v8::internal::Factory::NewConsString(v8::internal::Handle<v8::internal::String>, v8::internal::Handle<v8::internal::String>, int, bool) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE2E5B5: v8::internal::Factory::NewConsString(v8::internal::Handle<v8::internal::String>, v8::internal::Handle<v8::internal::String>) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x118D24A: v8::internal::IncrementalStringBuilder::AppendString(v8::internal::Handle<v8::internal::String>) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xF756FA: v8::internal::(anonymous namespace)::AppendFileLocation(v8::internal::Isolate*, v8::internal::StackFrameBase*, v8::internal::IncrementalStringBuilder*) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xF75F7D: v8::internal::JSStackFrame::ToString() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xF79053: v8::internal::ErrorUtils::FormatStackTrace(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSObject>, v8::internal::Handle<v8::internal::Object>) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xA4D970: v8::internal::Accessors::ErrorStackGetter(v8::Local<v8::Name>, v8::PropertyCallbackInfo<v8::Value> const&) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== Address 0x1ffeffe020 is on thread #1's stack
==32152== in frame #4, created by v8::internal::Heap::Scavenge() (???:)
==32152==
==32152== Possible data race during read of size 8 at 0x1FFEFFE048 by thread #1
==32152== Locks held: 2, at addresses 0x611FB38 0x6124E20
==32152== at 0xEC1725: v8::internal::Scavenger::Process(v8::internal::OneshotBarrier*) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE6140E: v8::internal::ScavengingTask::RunInParallel() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE8A89E: v8::internal::ItemParallelJob::Task::RunInternal() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE8B53C: v8::internal::ItemParallelJob::Run(std::shared_ptr<v8::internal::Counters>) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE762DD: v8::internal::Heap::Scavenge() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE7B5BF: v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE7BD03: v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE2DC28: v8::internal::Handle<v8::internal::ConsString> v8::internal::Factory::New<v8::internal::ConsString>(v8::internal::Handle<v8::internal::Map>, v8::internal::AllocationSpace) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE2DEBD: v8::internal::Factory::NewConsString(v8::internal::Handle<v8::internal::String>, v8::internal::Handle<v8::internal::String>, int, bool) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE2E5B5: v8::internal::Factory::NewConsString(v8::internal::Handle<v8::internal::String>, v8::internal::Handle<v8::internal::String>) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x118D24A: v8::internal::IncrementalStringBuilder::AppendString(v8::internal::Handle<v8::internal::String>) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xF756FA: v8::internal::(anonymous namespace)::AppendFileLocation(v8::internal::Isolate*, v8::internal::StackFrameBase*, v8::internal::IncrementalStringBuilder*) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152==
==32152== This conflicts with a previous write of size 8 by thread #4
==32152== Locks held: 1, at address 0x1FFEFFE020
==32152== at 0xEC2A86: v8::internal::Scavenger::Process(v8::internal::OneshotBarrier*) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE6140E: v8::internal::ScavengingTask::RunInParallel() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE8A89E: v8::internal::ItemParallelJob::Task::RunInternal() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x8D9A34: node::BackgroundRunner(void*) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x4C339E1: mythread_wrapper (hg_intercepts.c:389)
==32152== by 0x5B3A50A: start_thread (in /usr/lib64/libpthread-2.26.so)
==32152== by 0x5E4616E: clone (in /usr/lib64/libc-2.26.so)
==32152== Address 0x1ffeffe048 is on thread #1's stack
==32152== in frame #4, created by v8::internal::Heap::Scavenge() (???:)
==32152==
==32152== ----------------------------------------------------------------
==32152==
==32152== Lock at 0x611FB38 was first observed
==32152== at 0x4C34CA3: pthread_mutex_init (hg_intercepts.c:787)
==32152== by 0xE6263B: v8::internal::Heap::Heap() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xF36C0E: v8::internal::Isolate::Isolate(bool) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xA7B170: v8::Isolate::New(v8::Isolate::CreateParams const&) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x883F99: node::Start(int, char**) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x5D71F29: (below main) (in /usr/lib64/libc-2.26.so)
==32152== Address 0x611fb38 is 6,680 bytes inside a block of size 24,328 alloc'd
==32152== at 0x4C2E5DA: operator new(unsigned long) (vg_replace_malloc.c:334)
==32152== by 0xA7B163: v8::Isolate::New(v8::Isolate::CreateParams const&) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x883F99: node::Start(int, char**) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x5D71F29: (below main) (in /usr/lib64/libc-2.26.so)
==32152== Block was alloc'd by thread #1
==32152==
==32152== Lock at 0x6124E20 was first observed
==32152== at 0x4C34CA3: pthread_mutex_init (hg_intercepts.c:787)
==32152== by 0x119DA88: v8::internal::ThreadManager::ThreadManager() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xF3744A: v8::internal::Isolate::Isolate(bool) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xA7B170: v8::Isolate::New(v8::Isolate::CreateParams const&) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x883F99: node::Start(int, char**) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x5D71F29: (below main) (in /usr/lib64/libc-2.26.so)
==32152== Address 0x6124e20 is 0 bytes inside a block of size 80 alloc'd
==32152== at 0x4C2E5DA: operator new(unsigned long) (vg_replace_malloc.c:334)
==32152== by 0xF3743F: v8::internal::Isolate::Isolate(bool) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xA7B170: v8::Isolate::New(v8::Isolate::CreateParams const&) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x883F99: node::Start(int, char**) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x5D71F29: (below main) (in /usr/lib64/libc-2.26.so)
==32152== Block was alloc'd by thread #1
==32152==
==32152== Lock at 0x1FFEFFE020 was first observed
==32152== at 0x4C34CA3: pthread_mutex_init (hg_intercepts.c:787)
==32152== by 0xE76766: v8::internal::Heap::Scavenge() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE7B5BF: v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE7BD03: v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE2DC28: v8::internal::Handle<v8::internal::ConsString> v8::internal::Factory::New<v8::internal::ConsString>(v8::internal::Handle<v8::internal::Map>, v8::internal::AllocationSpace) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE2DEBD: v8::internal::Factory::NewConsString(v8::internal::Handle<v8::internal::String>, v8::internal::Handle<v8::internal::String>, int, bool) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE2E5B5: v8::internal::Factory::NewConsString(v8::internal::Handle<v8::internal::String>, v8::internal::Handle<v8::internal::String>) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x118D24A: v8::internal::IncrementalStringBuilder::AppendString(v8::internal::Handle<v8::internal::String>) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xF756FA: v8::internal::(anonymous namespace)::AppendFileLocation(v8::internal::Isolate*, v8::internal::StackFrameBase*, v8::internal::IncrementalStringBuilder*) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xF75F7D: v8::internal::JSStackFrame::ToString() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xF79053: v8::internal::ErrorUtils::FormatStackTrace(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSObject>, v8::internal::Handle<v8::internal::Object>) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xA4D970: v8::internal::Accessors::ErrorStackGetter(v8::Local<v8::Name>, v8::PropertyCallbackInfo<v8::Value> const&) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== Address 0x1ffeffe020 is on thread #1's stack
==32152== in frame #4, created by v8::internal::Heap::Scavenge() (???:)
==32152==
==32152== Possible data race during read of size 8 at 0x1FFEFFE048 by thread #1
==32152== Locks held: 2, at addresses 0x611FB38 0x6124E20
==32152== at 0xEC2A30: v8::internal::Scavenger::Process(v8::internal::OneshotBarrier*) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE6140E: v8::internal::ScavengingTask::RunInParallel() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE8A89E: v8::internal::ItemParallelJob::Task::RunInternal() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE8B53C: v8::internal::ItemParallelJob::Run(std::shared_ptr<v8::internal::Counters>) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE762DD: v8::internal::Heap::Scavenge() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE7B5BF: v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE7BD03: v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE2DC28: v8::internal::Handle<v8::internal::ConsString> v8::internal::Factory::New<v8::internal::ConsString>(v8::internal::Handle<v8::internal::Map>, v8::internal::AllocationSpace) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE2DEBD: v8::internal::Factory::NewConsString(v8::internal::Handle<v8::internal::String>, v8::internal::Handle<v8::internal::String>, int, bool) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE2E5B5: v8::internal::Factory::NewConsString(v8::internal::Handle<v8::internal::String>, v8::internal::Handle<v8::internal::String>) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x118D24A: v8::internal::IncrementalStringBuilder::AppendString(v8::internal::Handle<v8::internal::String>) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xF756FA: v8::internal::(anonymous namespace)::AppendFileLocation(v8::internal::Isolate*, v8::internal::StackFrameBase*, v8::internal::IncrementalStringBuilder*) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152==
==32152== This conflicts with a previous write of size 8 by thread #4
==32152== Locks held: 1, at address 0x1FFEFFE020
==32152== at 0xEC2A86: v8::internal::Scavenger::Process(v8::internal::OneshotBarrier*) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE6140E: v8::internal::ScavengingTask::RunInParallel() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE8A89E: v8::internal::ItemParallelJob::Task::RunInternal() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x8D9A34: node::BackgroundRunner(void*) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x4C339E1: mythread_wrapper (hg_intercepts.c:389)
==32152== by 0x5B3A50A: start_thread (in /usr/lib64/libpthread-2.26.so)
==32152== by 0x5E4616E: clone (in /usr/lib64/libc-2.26.so)
==32152== Address 0x1ffeffe048 is on thread #1's stack
==32152== in frame #4, created by v8::internal::Heap::Scavenge() (???:)
==32152==
==32152== ----------------------------------------------------------------
==32152==
==32152== Lock at 0x611FB38 was first observed
==32152== at 0x4C34CA3: pthread_mutex_init (hg_intercepts.c:787)
==32152== by 0xE6263B: v8::internal::Heap::Heap() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xF36C0E: v8::internal::Isolate::Isolate(bool) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xA7B170: v8::Isolate::New(v8::Isolate::CreateParams const&) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x883F99: node::Start(int, char**) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x5D71F29: (below main) (in /usr/lib64/libc-2.26.so)
==32152== Address 0x611fb38 is 6,680 bytes inside a block of size 24,328 alloc'd
==32152== at 0x4C2E5DA: operator new(unsigned long) (vg_replace_malloc.c:334)
==32152== by 0xA7B163: v8::Isolate::New(v8::Isolate::CreateParams const&) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x883F99: node::Start(int, char**) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x5D71F29: (below main) (in /usr/lib64/libc-2.26.so)
==32152== Block was alloc'd by thread #1
==32152==
==32152== Lock at 0x6124E20 was first observed
==32152== at 0x4C34CA3: pthread_mutex_init (hg_intercepts.c:787)
==32152== by 0x119DA88: v8::internal::ThreadManager::ThreadManager() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xF3744A: v8::internal::Isolate::Isolate(bool) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xA7B170: v8::Isolate::New(v8::Isolate::CreateParams const&) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x883F99: node::Start(int, char**) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x5D71F29: (below main) (in /usr/lib64/libc-2.26.so)
==32152== Address 0x6124e20 is 0 bytes inside a block of size 80 alloc'd
==32152== at 0x4C2E5DA: operator new(unsigned long) (vg_replace_malloc.c:334)
==32152== by 0xF3743F: v8::internal::Isolate::Isolate(bool) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xA7B170: v8::Isolate::New(v8::Isolate::CreateParams const&) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x883F99: node::Start(int, char**) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x5D71F29: (below main) (in /usr/lib64/libc-2.26.so)
==32152== Block was alloc'd by thread #1
==32152==
==32152== Lock at 0x1FFEFFE2E0 was first observed
==32152== at 0x4C34CA3: pthread_mutex_init (hg_intercepts.c:787)
==32152== by 0xE74C8A: v8::internal::Heap::Scavenge() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE7B5BF: v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE7BD03: v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE2DC28: v8::internal::Handle<v8::internal::ConsString> v8::internal::Factory::New<v8::internal::ConsString>(v8::internal::Handle<v8::internal::Map>, v8::internal::AllocationSpace) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE2DEBD: v8::internal::Factory::NewConsString(v8::internal::Handle<v8::internal::String>, v8::internal::Handle<v8::internal::String>, int, bool) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE2E5B5: v8::internal::Factory::NewConsString(v8::internal::Handle<v8::internal::String>, v8::internal::Handle<v8::internal::String>) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x118D24A: v8::internal::IncrementalStringBuilder::AppendString(v8::internal::Handle<v8::internal::String>) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xF756FA: v8::internal::(anonymous namespace)::AppendFileLocation(v8::internal::Isolate*, v8::internal::StackFrameBase*, v8::internal::IncrementalStringBuilder*) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xF75F7D: v8::internal::JSStackFrame::ToString() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xF79053: v8::internal::ErrorUtils::FormatStackTrace(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSObject>, v8::internal::Handle<v8::internal::Object>) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xA4D970: v8::internal::Accessors::ErrorStackGetter(v8::Local<v8::Name>, v8::PropertyCallbackInfo<v8::Value> const&) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== Address 0x1ffeffe2e0 is on thread #1's stack
==32152== in frame #6, created by v8::internal::Heap::Scavenge() (???:)
==32152==
==32152== Possible data race during read of size 8 at 0x1FFEFFE308 by thread #4
==32152== Locks held: none
==32152== at 0xEC2B80: v8::internal::Scavenger::Process(v8::internal::OneshotBarrier*) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE6140E: v8::internal::ScavengingTask::RunInParallel() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE8A89E: v8::internal::ItemParallelJob::Task::RunInternal() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x8D9A34: node::BackgroundRunner(void*) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0x4C339E1: mythread_wrapper (hg_intercepts.c:389)
==32152== by 0x5B3A50A: start_thread (in /usr/lib64/libpthread-2.26.so)
==32152== by 0x5E4616E: clone (in /usr/lib64/libc-2.26.so)
==32152==
==32152== This conflicts with a previous write of size 8 by thread #1
==32152== Locks held: 3, at addresses 0x611FB38 0x6124E20 0x1FFEFFE2E0
==32152== at 0xEC2C3D: v8::internal::Scavenger::Process(v8::internal::OneshotBarrier*) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE6140E: v8::internal::ScavengingTask::RunInParallel() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE8A89E: v8::internal::ItemParallelJob::Task::RunInternal() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE8B53C: v8::internal::ItemParallelJob::Run(std::shared_ptr<v8::internal::Counters>) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE762DD: v8::internal::Heap::Scavenge() (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE7B5BF: v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE7BD03: v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== by 0xE2DC28: v8::internal::Handle<v8::internal::ConsString> v8::internal::Factory::New<v8::internal::ConsString>(v8::internal::Handle<v8::internal::Map>, v8::internal::AllocationSpace) (in /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/out/Release/node)
==32152== Address 0x1ffeffe308 is on thread #1's stack
==32152== in frame #6, created by v8::internal::Heap::Scavenge() (???:)
==32152==
==32152==
==32152== For counts of detected and suppressed errors, rerun with: -v
==32152== Use --history-level=approx or =none to gain increased speed, at
==32152== the cost of reduced accuracy of conflicting-access information
==32152== ERROR SUMMARY: 7 errors from 4 contexts (suppressed: 977 from 111)
Command: python -u /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/tools/run-valgrind.py out/Release/node /home/iojs/build/workspace/node-test-commit-linux/nodes/fedora-latest-x64/test/async-hooks/test-zlib.zlib-binding.deflate.js
[00:17|% 100|+ 0|- 1]: Done
[iojs@test-rackspace-fedora27-x64-1 fedora-latest-x64]$ |
@Trott Thank you so much! I personally can’t tell whether that’s a real issue or not, and we probably need somebody from @nodejs/v8 (/@ulan?) who is familiar with their GC code to take a look. @Trott We might get bonus points for helping if we can get that output for a debug build of Node – that would give us concrete line numbers as an additional niceness… :) |
[+@mlippautz] Unfortunately the report doesn't contain enough data to be actionable. It would help if we knew what variable is stored at I looked through @Trott, any chance to get a coredump of the crash in debug mode (without helgrind)? |
@ulan The stack trace is only thrown on our LinuxONE system and it's not 100% reliable. The only 100% reliable reproduction is on the Fedora 27 system and those happen consistently when the created threads for And to clarify, those just fail with a segfault and no stack trace. |
Regarding getting coredumps and/or helgrind output on debug builds: pinging @nodejs/build! Anyone available to help out with this? I'm tied up with travel the next couple days and unlikely to start up on this again in that time. |
@apapirovski @addaleax Feel free to open an issue in the nodejs/build repo requesting SSH access to one or more of the relevant hosts if you'd like to be able to do the debug build and valgrind running yourself! |
I think maybe getting access to linuxone is actually better. It's the only system that has failed with a stacktrace. Maybe debugging there will yield something different / more helpful. I'll post in nodejs/build. |
Previously, the typed arrays used in this test would not automatically be kept alive by the native handle when it’s using them, so the V8 garbage collector could collect them while they are still in use by the zlib module, leading to memory corruption. Fixes: nodejs#20907
Previously, the typed arrays used in this test would not automatically be kept alive by the native handle when it’s using them, so the V8 garbage collector could collect them while they are still in use by the zlib module, leading to memory corruption. Fixes: #20907 PR-URL: #21077 Reviewed-By: Anatoli Papirovski <[email protected]> Reviewed-By: Jeremiah Senkpiel <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Ruben Bridgewater <[email protected]> Reviewed-By: Joyee Cheung <[email protected]> Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Yang Guo <[email protected]> Reviewed-By: James M Snell <[email protected]>
For a good while now, this test has been flaky or perhaps broken on a number of the Linux platforms. Example failure:
but also the more thorough:
The text was updated successfully, but these errors were encountered: