Skip to content

Assertion failed ../deps/uv/src/unix/stream.c, line 1563 #8258

Closed
@mhhf

Description

@mhhf

I cannot really provide reproducible code since this error happens in a non deterministically but here some details:

$ node app.js
Assertion failed: (handle->type == UV_TCP || handle->type == UV_TTY || handle->type == UV_NAMED_PIPE), function uv___stream_fd, file ../deps/uv/src/unix/stream.c, line 1563.
$ uname -a
Darwin Deniss-MacBook-Pro.local 15.6.0 Darwin Kernel Version 15.6.0: Thu Jun 23 18:25:34 PDT 2016; root:xnu-3248.60.10~1/RELEASE_X86_64 x86_64

Tested on node v6.4.0/ 6.3.1/ 6.2.2

$ lldb node app.js
(lldb) target create "node"
Current executable set to 'node' (x86_64).
(lldb) settings set -- target.run-args  "app.js"
(lldb) run
Process 68530 launched: '/usr/local/bin/node' (x86_64)

Assertion failed: (handle->type == UV_TCP || handle->type == UV_TTY || handle->type == UV_NAMED_PIPE), function uv___stream_fd, file ../deps/uv/src/unix/stream.c, line 1563.
Process 68530 stopped
* thread #1: tid = 0x6c1407, 0x00007fff8d388f06 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
    frame #0: 0x00007fff8d388f06 libsystem_kernel.dylib`__pthread_kill + 10
libsystem_kernel.dylib`__pthread_kill:
->  0x7fff8d388f06 <+10>: jae    0x7fff8d388f10            ; <+20>
    0x7fff8d388f08 <+12>: movq   %rax, %rdi
    0x7fff8d388f0b <+15>: jmp    0x7fff8d3837cd            ; cerror_nocancel
    0x7fff8d388f10 <+20>: retq
(lldb) bt
* thread #1: tid = 0x6c1407, 0x00007fff8d388f06 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
  * frame #0: 0x00007fff8d388f06 libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x00007fff8b08d4ec libsystem_pthread.dylib`pthread_kill + 90
    frame #2: 0x00007fff914cf6df libsystem_c.dylib`abort + 129
    frame #3: 0x00007fff91496dd8 libsystem_c.dylib`__assert_rtn + 321
    frame #4: 0x0000000100978b81 node`uv___stream_fd + 85
    frame #5: 0x0000000100977bba node`uv__stream_io + 1655
    frame #6: 0x000000010097f198 node`uv__io_poll + 1621
    frame #7: 0x0000000100970277 node`uv_run + 321
    frame #8: 0x00000001007e97ba node`node::Start(int, char**) + 642
    frame #9: 0x0000000100001034 node`start + 52
(lldb) bt all
* thread #1: tid = 0x6c1407, 0x00007fff8d388f06 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
  * frame #0: 0x00007fff8d388f06 libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x00007fff8b08d4ec libsystem_pthread.dylib`pthread_kill + 90
    frame #2: 0x00007fff914cf6df libsystem_c.dylib`abort + 129
    frame #3: 0x00007fff91496dd8 libsystem_c.dylib`__assert_rtn + 321
    frame #4: 0x0000000100978b81 node`uv___stream_fd + 85
    frame #5: 0x0000000100977bba node`uv__stream_io + 1655
    frame #6: 0x000000010097f198 node`uv__io_poll + 1621
    frame #7: 0x0000000100970277 node`uv_run + 321
    frame #8: 0x00000001007e97ba node`node::Start(int, char**) + 642
    frame #9: 0x0000000100001034 node`start + 52

  thread #2: tid = 0x6c141d, 0x00007fff8d382fae libsystem_kernel.dylib`semaphore_wait_trap + 10
    frame #0: 0x00007fff8d382fae libsystem_kernel.dylib`semaphore_wait_trap + 10
    frame #1: 0x000000010097a709 node`uv_sem_wait + 16
    frame #2: 0x00000001007ea17a node`node::DebugSignalThreadMain(void*) + 49
    frame #3: 0x00007fff8b08a99d libsystem_pthread.dylib`_pthread_body + 131
    frame #4: 0x00007fff8b08a91a libsystem_pthread.dylib`_pthread_start + 168
    frame #5: 0x00007fff8b088351 libsystem_pthread.dylib`thread_start + 13

  thread #3: tid = 0x6c141e, 0x00007fff8d382fae libsystem_kernel.dylib`semaphore_wait_trap + 10, name = 'V8 WorkerThread'
    frame #0: 0x00007fff8d382fae libsystem_kernel.dylib`semaphore_wait_trap + 10
    frame #1: 0x00000001009828d7 node`v8::base::Semaphore::Wait() + 23
    frame #2: 0x00000001008484a9 node`v8::platform::TaskQueue::GetNext() + 57
    frame #3: 0x00000001008486ab node`v8::platform::WorkerThread::Run() + 43
    frame #4: 0x00000001009845d7 node`v8::base::ThreadEntry(void*) + 87
    frame #5: 0x00007fff8b08a99d libsystem_pthread.dylib`_pthread_body + 131
    frame #6: 0x00007fff8b08a91a libsystem_pthread.dylib`_pthread_start + 168
    frame #7: 0x00007fff8b088351 libsystem_pthread.dylib`thread_start + 13

  thread #4: tid = 0x6c141f, 0x00007fff8d382fae libsystem_kernel.dylib`semaphore_wait_trap + 10, name = 'V8 WorkerThread'
    frame #0: 0x00007fff8d382fae libsystem_kernel.dylib`semaphore_wait_trap + 10
    frame #1: 0x00000001009828d7 node`v8::base::Semaphore::Wait() + 23
    frame #2: 0x00000001008484a9 node`v8::platform::TaskQueue::GetNext() + 57
    frame #3: 0x00000001008486ab node`v8::platform::WorkerThread::Run() + 43
    frame #4: 0x00000001009845d7 node`v8::base::ThreadEntry(void*) + 87
    frame #5: 0x00007fff8b08a99d libsystem_pthread.dylib`_pthread_body + 131
    frame #6: 0x00007fff8b08a91a libsystem_pthread.dylib`_pthread_start + 168
    frame #7: 0x00007fff8b088351 libsystem_pthread.dylib`thread_start + 13

  thread #5: tid = 0x6c1420, 0x00007fff8d382fae libsystem_kernel.dylib`semaphore_wait_trap + 10, name = 'V8 WorkerThread'
    frame #0: 0x00007fff8d382fae libsystem_kernel.dylib`semaphore_wait_trap + 10
    frame #1: 0x00000001009828d7 node`v8::base::Semaphore::Wait() + 23
    frame #2: 0x00000001008484a9 node`v8::platform::TaskQueue::GetNext() + 57
    frame #3: 0x00000001008486ab node`v8::platform::WorkerThread::Run() + 43
    frame #4: 0x00000001009845d7 node`v8::base::ThreadEntry(void*) + 87
    frame #5: 0x00007fff8b08a99d libsystem_pthread.dylib`_pthread_body + 131
    frame #6: 0x00007fff8b08a91a libsystem_pthread.dylib`_pthread_start + 168
    frame #7: 0x00007fff8b088351 libsystem_pthread.dylib`thread_start + 13

  thread #6: tid = 0x6c1421, 0x00007fff8d382fae libsystem_kernel.dylib`semaphore_wait_trap + 10, name = 'V8 WorkerThread'
    frame #0: 0x00007fff8d382fae libsystem_kernel.dylib`semaphore_wait_trap + 10
    frame #1: 0x00000001009828d7 node`v8::base::Semaphore::Wait() + 23
    frame #2: 0x00000001008484a9 node`v8::platform::TaskQueue::GetNext() + 57
    frame #3: 0x00000001008486ab node`v8::platform::WorkerThread::Run() + 43
    frame #4: 0x00000001009845d7 node`v8::base::ThreadEntry(void*) + 87
    frame #5: 0x00007fff8b08a99d libsystem_pthread.dylib`_pthread_body + 131
    frame #6: 0x00007fff8b08a91a libsystem_pthread.dylib`_pthread_start + 168
    frame #7: 0x00007fff8b088351 libsystem_pthread.dylib`thread_start + 13

  thread #7: tid = 0x6c1436, 0x00007fff8d388db6 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #0: 0x00007fff8d388db6 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff8b08b728 libsystem_pthread.dylib`_pthread_cond_wait + 767
    frame #2: 0x000000010097a82b node`uv_cond_wait + 9
    frame #3: 0x000000010096e313 node`worker + 227
    frame #4: 0x000000010097a494 node`uv__thread_start + 25
    frame #5: 0x00007fff8b08a99d libsystem_pthread.dylib`_pthread_body + 131
    frame #6: 0x00007fff8b08a91a libsystem_pthread.dylib`_pthread_start + 168
    frame #7: 0x00007fff8b088351 libsystem_pthread.dylib`thread_start + 13

  thread #8: tid = 0x6c1437, 0x00007fff8d388db6 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #0: 0x00007fff8d388db6 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff8b08b728 libsystem_pthread.dylib`_pthread_cond_wait + 767
    frame #2: 0x000000010097a82b node`uv_cond_wait + 9
    frame #3: 0x000000010096e313 node`worker + 227
    frame #4: 0x000000010097a494 node`uv__thread_start + 25
    frame #5: 0x00007fff8b08a99d libsystem_pthread.dylib`_pthread_body + 131
    frame #6: 0x00007fff8b08a91a libsystem_pthread.dylib`_pthread_start + 168
    frame #7: 0x00007fff8b088351 libsystem_pthread.dylib`thread_start + 13

  thread #9: tid = 0x6c1438, 0x00007fff8d388db6 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #0: 0x00007fff8d388db6 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff8b08b728 libsystem_pthread.dylib`_pthread_cond_wait + 767
    frame #2: 0x000000010097a82b node`uv_cond_wait + 9
    frame #3: 0x000000010096e313 node`worker + 227
    frame #4: 0x000000010097a494 node`uv__thread_start + 25
    frame #5: 0x00007fff8b08a99d libsystem_pthread.dylib`_pthread_body + 131
    frame #6: 0x00007fff8b08a91a libsystem_pthread.dylib`_pthread_start + 168
    frame #7: 0x00007fff8b088351 libsystem_pthread.dylib`thread_start + 13

  thread #10: tid = 0x6c1439, 0x00007fff8d388db6 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #0: 0x00007fff8d388db6 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007fff8b08b728 libsystem_pthread.dylib`_pthread_cond_wait + 767
    frame #2: 0x000000010097a82b node`uv_cond_wait + 9
    frame #3: 0x000000010096e313 node`worker + 227
    frame #4: 0x000000010097a494 node`uv__thread_start + 25
    frame #5: 0x00007fff8b08a99d libsystem_pthread.dylib`_pthread_body + 131
    frame #6: 0x00007fff8b08a91a libsystem_pthread.dylib`_pthread_start + 168
    frame #7: 0x00007fff8b088351 libsystem_pthread.dylib`thread_start + 13

On Linux machines the same code is causing the message "segmentation fault" (also not deterministically).

I'm using https://github.com/Level/leveldown package which might cause this error since it sometimes happens on reading/writing from the db, but also on totally unrelated function calls.
Also this error could be caused by other packages.

How to debug this further, since I have no Idea which package/ code-fragment is causing this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    c++Issues and PRs that require attention from people who are familiar with C++.libuvIssues and PRs related to the libuv dependency or the uv binding.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions