Closed
Description
Version
v16.14.2
Platform
Darwin home.home 21.1.0 Darwin Kernel Version 21.1.0: Wed Oct 13 17:33:23 PDT 2021; root:xnu-8019.41.5~1/RELEASE_X86_64 x86_64
Subsystem
No response
What steps will reproduce the bug?
in the REPL:
> var buf = Buffer.from({length:200e6},(_,i) => i%256)
undefined
> console.time("doit"); var ss = buf.toString("binary"); console.timeEnd("doit")
doit: 102.707ms
undefine
> ss.
How often does it reproduce? Is there a required condition?
always
What is the expected behavior?
One of two possibilities:
A) early error ("out of memory") in toString
during the second line
B) no error
What do you see instead?
Error is triggered after typing ss.
:
FATAL ERROR: v8::ToLocalChecked Empty MaybeLocal.
1: 0x10303ca25 node::Abort() (.cold.1) [/usr/local/bin/node]
2: 0x101d320f9 node::Abort() [/usr/local/bin/node]
3: 0x101d3226f node::OnFatalError(char const*, char const*) [/usr/local/bin/node]
4: 0x101eb55e0 v8::V8::ToLocalEmpty() [/usr/local/bin/node]
5: 0x101e1a757 node::inspector::(anonymous namespace)::JSBindingsConnection<node::inspector::(anonymous namespace)::LocalConnection>::JSBindingsSessionDelegate::SendMessageToFrontend(v8_inspector::StringView const&) [/usr/local/bin/node]
6: 0x101e104db node::inspector::(anonymous namespace)::ChannelImpl::sendResponse(int, std::__1::unique_ptr<v8_inspector::StringBuffer, std::__1::default_delete<v8_inspector::StringBuffer> >) [/usr/local/bin/node]
7: 0x10249a607 non-virtual thunk to v8_inspector::V8InspectorSessionImpl::SendProtocolResponse(int, std::__1::unique_ptr<v8_crdtp::Serializable, std::__1::default_delete<v8_crdtp::Serializable> >) [/usr/local/bin/node]
8: 0x1024c80d5 v8_crdtp::DomainDispatcher::sendResponse(int, v8_crdtp::DispatchResponse const&, std::__1::unique_ptr<v8_crdtp::Serializable, std::__1::default_delete<v8_crdtp::Serializable> >) [/usr/local/bin/node]
9: 0x1024c7f7b v8_crdtp::DomainDispatcher::Callback::sendIfActive(std::__1::unique_ptr<v8_crdtp::Serializable, std::__1::default_delete<v8_crdtp::Serializable> >, v8_crdtp::DispatchResponse const&) [/usr/local/bin/node]
10: 0x1026e6947 v8_inspector::protocol::Runtime::EvaluateCallbackImpl::sendSuccess(std::__1::unique_ptr<v8_inspector::protocol::Runtime::RemoteObject, std::__1::default_delete<v8_inspector::protocol::Runtime::RemoteObject> >, v8_crdtp::detail::PtrMaybe<v8_inspector::protocol::Runtime::ExceptionDetails>) [/usr/local/bin/node]
11: 0x1024a3dbd v8_inspector::V8RuntimeAgentImpl::evaluate(v8_inspector::String16 const&, v8_crdtp::detail::ValueMaybe<v8_inspector::String16>, v8_crdtp::detail::ValueMaybe<bool>, v8_crdtp::detail::ValueMaybe<bool>, v8_crdtp::detail::ValueMaybe<int>, v8_crdtp::detail::ValueMaybe<bool>, v8_crdtp::detail::ValueMaybe<bool>, v8_crdtp::detail::ValueMaybe<bool>, v8_crdtp::detail::ValueMaybe<bool>, v8_crdtp::detail::ValueMaybe<bool>, v8_crdtp::detail::ValueMaybe<double>, v8_crdtp::detail::ValueMaybe<bool>, v8_crdtp::detail::ValueMaybe<bool>, v8_crdtp::detail::ValueMaybe<bool>, v8_crdtp::detail::ValueMaybe<v8_inspector::String16>, std::__1::unique_ptr<v8_inspector::protocol::Runtime::Backend::EvaluateCallback, std::__1::default_delete<v8_inspector::protocol::Runtime::Backend::EvaluateCallback> >) [/usr/local/bin/node]
12: 0x1026df64c v8_inspector::protocol::Runtime::DomainDispatcherImpl::evaluate(v8_crdtp::Dispatchable const&) [/usr/local/bin/node]
13: 0x1024c8a38 v8_crdtp::UberDispatcher::DispatchResult::Run() [/usr/local/bin/node]
14: 0x10249b652 v8_inspector::V8InspectorSessionImpl::dispatchProtocolMessage(v8_inspector::StringView) [/usr/local/bin/node]
15: 0x101e10eee node::inspector::NodeInspectorClient::dispatchMessageFromFrontend(int, v8_inspector::StringView const&) [/usr/local/bin/node]
16: 0x101e10b3a node::inspector::(anonymous namespace)::SameThreadInspectorSession::Dispatch(v8_inspector::StringView const&) [/usr/local/bin/node]
17: 0x101e1968f node::inspector::(anonymous namespace)::JSBindingsConnection<node::inspector::(anonymous namespace)::LocalConnection>::Dispatch(v8::FunctionCallbackInfo<v8::Value> const&) [/usr/local/bin/node]
18: 0x101f1c219 v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) [/usr/local/bin/node]
19: 0x101f1bce6 v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) [/usr/local/bin/node]
20: 0x101f1b45f v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*) [/usr/local/bin/node]
21: 0x10278e959 Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExit [/usr/local/bin/node]
22: 0x10cc9e4a1
Additional information
NodeJS will handle general ASCII strings of at least double that length in the REPL:
> var ss = "a".repeat(400e6)
undefined
> ss.length
400000000
The timing suggests an early failure under the hood that is not properly percolated to the JS layer.
Metadata
Metadata
Assignees
Labels
No labels