Skip to content

'worker_threads.receiveMessageOnPort' results in an abort #32742

Description

@zyscoder
  • Version:v12.16.0
  • Platform:Linux vul337 4.15.0-91-generic new design of error handling #92-Ubuntu SMP Fri Feb 28 11:09:48 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
  • Subsystem: process

What steps will reproduce the bug?

Directly run the following code snippet using node:

require('worker_threads').receiveMessageOnPort(0)

How often does it reproduce? Is there a required condition?

No. This potential bug can always be reproduced.

What is the expected behavior?

The argument to 'worker_threads.receiveMessageOnPort' should be a 'MessagePort' object, but we passed an integer value into it. The function should throw an exception or other similar error-reporting stuff rather than crash the whole nodejs process.

What do you see instead?

This is the stack dump produced during abort:

./node[17081]: ../src/node_messaging.cc:878:static void node::worker::MessagePort::ReceiveMessage(const FunctionCallbackInfo<v8::Value> &): Assertion `args[0]->IsObject()' failed.
 1: 0x13f9b30 node::Abort() [./node]
 2: 0x13f9709  [./node]
 3: 0x148b6c0 node::worker::MessagePort::ReceiveMessage(v8::FunctionCallbackInfo<v8::Value> const&) [./node]
 4: 0x17b379c v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) [./node]
 5: 0x17b23d5  [./node]
 6: 0x17b1092  [./node]
 7: 0x2717a59  [./node]
[1]    17081 abort      ./node

Additional information

Activity

  1. added
    confirmed-bugIssues and PRs for confirmed bugs.
    workerIssues and PRs related to the worker_threads module and Worker API.
    on Apr 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    confirmed-bugIssues and PRs for confirmed bugs.workerIssues and PRs related to the worker_threads module and Worker API.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions