Skip to content

Embedding: Creating Multiple Environments #41870

Open
@alvarolb

Description

@alvarolb

Version

17.4.0

Platform

Linux

Subsystem

Inspector

What steps will reproduce the bug?

Try to initialize more than one evnrionment via:
std::unique_ptr setup = CommonEnvironmentSetup::Create(platform, &errors, args, exec_args);

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

Always

What is the expected behavior?

Two or more environments are correctly initialized

What do you see instead?

/tmp/tmp.qZuFIGXaVJ/cmake-nodejs/NodeJS[441671]: ../src/inspector_agent.cc:677:bool node::inspector::Agent::Start(const string&, const node::DebugOptions&, std::shared_ptr<node::ExclusiveAccess<node::HostPort> >, bool): Assertion `(start_io_thread_async_initialized.exchange(true)) == (false)' failed.
 1: 0x55d3d21ba434 node::Abort() [/tmp/tmp.qZuFIGXaVJ/cmake-nodejs/NodeJS]
 2: 0x55d3d21ba4c8  [/tmp/tmp.qZuFIGXaVJ/cmake-nodejs/NodeJS]
 3: 0x55d3d21cf85c node::inspector::Agent::Start(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, node::DebugOptions const&, std::shared_ptr<node::ExclusiveAccess<node::HostPort, node::MutexBase<node::LibuvMutexTraits> > >, bool) [/tmp/tmp.qZuFIGXaVJ/cmake-nodejs/NodeJS]
 4: 0x55d3d1fbc409 node::Environment::InitializeInspector(std::unique_ptr<node::inspector::ParentInspectorHandle, std::default_delete<node::inspector::ParentInspectorHandle> >) [/tmp/tmp.qZuFIGXaVJ/cmake-nodejs/NodeJS]
 5: 0x55d3d224205e node::CreateEnvironment(node::IsolateData*, v8::Local<v8::Context>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, node::EnvironmentFlags::Flags, node::ThreadId, std::unique_ptr<node::InspectorParentHandle, std::default_delete<node::InspectorParentHandle> >) [/tmp/tmp.qZuFIGXaVJ/cmake-nodejs/NodeJS]
 6: 0x55d3d1c56c58 node::CommonEnvironmentSetup::Create<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, node::EnvironmentFlags::Flags>(node::MultiIsolatePlatform*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, node::EnvironmentFlags::Flags&&)::{lambda(node::CommonEnvironmentSetup const*)#1}::operator()(node::CommonEnvironmentSetup const*) const [/tmp/tmp.qZuFIGXaVJ/cmake-nodejs/NodeJS]
 7: 0x55d3d1c5bcce std::_Function_handler<node::Environment* (node::CommonEnvironmentSetup const*), node::CommonEnvironmentSetup::Create<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, node::EnvironmentFlags::Flags>(node::MultiIsolatePlatform*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, node::EnvironmentFlags::Flags&&)::{lambda(node::CommonEnvironmentSetup const*)#1}>::_M_invoke(std::_Any_data const&, node::CommonEnvironmentSetup const*&&) [/tmp/tmp.qZuFIGXaVJ/cmake-nodejs/NodeJS]
 8: 0x55d3d2247295 node::CommonEnvironmentSetup::CommonEnvironmentSetup(node::MultiIsolatePlatform*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::function<node::Environment* (node::CommonEnvironmentSetup const*)>) [/tmp/tmp.qZuFIGXaVJ/cmake-nodejs/NodeJS]
 9: 0x55d3d1c56d75 std::unique_ptr<node::CommonEnvironmentSetup, std::default_delete<node::CommonEnvironmentSetup> > node::CommonEnvironmentSetup::Create<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, node::EnvironmentFlags::Flags>(node::MultiIsolatePlatform*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, node::EnvironmentFlags::Flags&&) [/tmp/tmp.qZuFIGXaVJ/cmake-nodejs/NodeJS]
10: 0x55d3d1c52bf9 RunNodeInstance(node::MultiIsolatePlatform*) [/tmp/tmp.qZuFIGXaVJ/cmake-nodejs/NodeJS]
11: 0x55d3d1c531af main [/tmp/tmp.qZuFIGXaVJ/cmake-nodejs/NodeJS]
12: 0x7f4b41f680b3 __libc_start_main [/lib/x86_64-linux-gnu/libc.so.6]
13: 0x55d3d1c526ae _start [/tmp/tmp.qZuFIGXaVJ/cmake-nodejs/NodeJS]

Additional information

Is it possible to have two or more environments initialized at the same time for the same process?

Metadata

Metadata

Assignees

No one assigned

    Labels

    inspectorIssues and PRs related to the V8 inspector protocol

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions