Skip to content
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

[BUG] Spec testing for GET /_mapping runs out of memory #384

Open
dblock opened this issue Jul 8, 2024 · 0 comments
Open

[BUG] Spec testing for GET /_mapping runs out of memory #384

dblock opened this issue Jul 8, 2024 · 0 comments
Labels
bug Something isn't working

Comments

@dblock
Copy link
Member

dblock commented Jul 8, 2024

What is the bug?

The following test produces an OOM on my local machine.

$schema: ../../json_schemas/test_story.schema.yaml

description: Test mappings endpoints.
chapters:
  - synopsis: Get all mappings.
    path: /_mapping
    method: GET
    response:
      status: 200

How can one reproduce the bug?

Create and run the test YML above.

npm run test:spec--insecure -- --tests tests/_core/mapping.yaml

<--- Last few GCs --->

[98127:0x120040000]    19381 ms: Mark-sweep 4043.2 (4136.5) -> 4042.1 (4136.5) MB, 620.1 / 0.0 ms  (average mu = 0.561, current mu = 0.128) allocation failure; scavenge might not succeed
[98127:0x120040000]    20406 ms: Mark-sweep 4051.1 (4136.5) -> 4050.0 (4168.5) MB, 1018.6 / 0.0 ms  (average mu = 0.325, current mu = 0.006) allocation failure; scavenge might not succeed


<--- JS stacktrace --->

FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
 1: 0x1027ea200 node::Abort() [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
 2: 0x1027ea3f0 node::ModifyCodeGenerationFromStrings(v8::Local<v8::Context>, v8::Local<v8::Value>, bool) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
 3: 0x1029308ec v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
 4: 0x102adb654 v8::internal::EmbedderStackStateScope::EmbedderStackStateScope(v8::internal::Heap*, v8::internal::EmbedderStackStateScope::Origin, cppgc::EmbedderStackState) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
 5: 0x102ada138 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
 6: 0x102ace3e0 v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
 7: 0x102acec10 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
 8: 0x102ab4328 v8::internal::Factory::AllocateRaw(int, v8::internal::AllocationType, v8::internal::AllocationAlignment) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
 9: 0x102aadfd0 v8::internal::MaybeHandle<v8::internal::SeqTwoByteString> v8::internal::FactoryBase<v8::internal::Factory>::NewRawStringWithMap<v8::internal::SeqTwoByteString>(int, v8::internal::Map, v8::internal::AllocationType) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
10: 0x102e8c338 v8::internal::IncrementalStringBuilder::Extend() [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
11: 0x102bdfcd0 v8::internal::JsonStringifier::SerializeString(v8::internal::Handle<v8::internal::String>) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
12: 0x102be3f7c v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<true>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
13: 0x102be27cc v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<false>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
14: 0x102be2210 v8::internal::JsonStringifier::Result v8::internal::JsonStringifier::Serialize_<false>(v8::internal::Handle<v8::internal::Object>, bool, v8::internal::Handle<v8::internal::Object>) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
15: 0x102bdc2e4 v8::internal::JsonStringify(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
16: 0x1029bee68 v8::internal::Builtin_JsonStringify(int, unsigned long*, v8::internal::Isolate*) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
17: 0x10319118c Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExit [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
18: 0x10311c198 Builtins_InterpreterEntryTrampoline [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
19: 0x10311c198 Builtins_InterpreterEntryTrampoline [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
20: 0x10311c198 Builtins_InterpreterEntryTrampoline [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
21: 0x10311c198 Builtins_InterpreterEntryTrampoline [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
22: 0x10314def4 Builtins_AsyncFunctionAwaitResolveClosure [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
23: 0x1031dc6f8 Builtins_PromiseFulfillReactionJob [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
24: 0x10313fc4c Builtins_RunMicrotasks [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
25: 0x10311a3a4 Builtins_JSRunMicrotasksEntry [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
26: 0x102a5ce7c v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
27: 0x102a5d36c v8::internal::(anonymous namespace)::InvokeWithTryCatch(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
28: 0x102a5d548 v8::internal::Execution::TryRunMicrotasks(v8::internal::Isolate*, v8::internal::MicrotaskQueue*, v8::internal::MaybeHandle<v8::internal::Object>*) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
29: 0x102a83c18 v8::internal::MicrotaskQueue::RunMicrotasks(v8::internal::Isolate*) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
30: 0x102a844b0 v8::internal::MicrotaskQueue::PerformCheckpoint(v8::Isolate*) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
31: 0x1029a120c v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
32: 0x1029a0d08 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) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
33: 0x1029a0534 v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
34: 0x10319118c Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExit [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
35: 0x138ad1f68 
36: 0x10311a4d0 Builtins_JSEntryTrampoline [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
37: 0x10311a164 Builtins_JSEntry [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
38: 0x102a5ceac v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
39: 0x102a5c3e0 v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
40: 0x10294c914 v8::Function::Call(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
41: 0x102734d00 node::InternalCallbackScope::Close() [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
42: 0x102734fc8 node::InternalMakeCallback(node::Environment*, v8::Local<v8::Object>, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*, node::async_context) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
43: 0x1027498ec node::AsyncWrap::MakeCallback(v8::Local<v8::Function>, int, v8::Local<v8::Value>*) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
44: 0x1028930d0 node::StreamBase::CallJSOnreadMethod(long, v8::Local<v8::ArrayBuffer>, unsigned long, node::StreamBase::StreamBaseJSChecks) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
45: 0x102894780 node::EmitToJSStreamListener::OnStreamRead(long, uv_buf_t const&) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
46: 0x102903de0 node::crypto::TLSWrap::ClearOut() [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
47: 0x102905a80 node::crypto::TLSWrap::OnStreamRead(long, uv_buf_t const&) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
48: 0x1028986c8 node::LibuvStreamWrap::OnUvRead(long, uv_buf_t const*) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
49: 0x102898e2c node::LibuvStreamWrap::ReadStart()::$_1::__invoke(uv_stream_s*, long, uv_buf_t const*) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
50: 0x103106108 uv__stream_io [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
51: 0x10310e210 uv__io_poll [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
52: 0x1030fc954 uv_run [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
53: 0x1027356d4 node::SpinEventLoop(node::Environment*) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
54: 0x102825128 node::NodeMainInstance::Run() [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
55: 0x1027b8ec8 node::LoadSnapshotDataAndRun(node::SnapshotData const**, node::InitializationResult const*) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
56: 0x1027b9190 node::Start(int, char**) [/Users/dblock/.nvm/versions/node/v18.12.1/bin/node]
57: 0x1968e20e0 start [/usr/lib/dyld]
Abort trap: 6

What is the expected behavior?

No crash.

What is your host/environment?

MacOS arm64.

@dblock dblock added bug Something isn't working untriaged and removed untriaged labels Jul 8, 2024
@dblock dblock removed the untriaged label Jul 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant