opensearch-api-specification
opensearch-api-specification copied to clipboard
[BUG] Spec testing for GET /_mapping runs out of memory
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.