Skip to content

Out-of-memory error introduced in 5.8.0 #2366

@marktran

Description

@marktran

Package + Version

  • @sentry/browser
  • @sentry/node
  • raven-js
  • raven-node (raven for node)
  • other:

Version:

5.10.2

Running Sentry in a NestJS/Express app.

Description

We're seeing an out-of-memory error and we've traced it to the change in PR #2305 that was released with 5.8.0. Not entirely sure why but it looks like the walk function in utils/src/object.ts is recursing infinitely.

Any ideas? I'll try to push a small app to reproduce.

Cannot find module 'pg-native'

<--- Last few GCs --->

[48493:0x102b00000]   134204 ms: Mark-sweep 4069.5 (4190.4) -> 4060.8 (4193.9) MB, 5840.1 / 0.0 ms  (average mu = 0.110, current mu = 0.052) allocation failure scavenge might not succeed
[48493:0x102b00000]   137809 ms: Mark-sweep 4073.0 (4193.9) -> 4064.2 (4197.9) MB, 3430.3 / 0.0 ms  (average mu = 0.087, current mu = 0.048) allocation failure scavenge might not succeed


<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 0x27f7d375be3d]
Security context: 0x38b19fe9e6e9 <JSObject>
    1: walk [0x38b1fcb6b229] [/Users/mark/src/workos/workos/packages/api/node_modules/@sentry/utils/dist/object.js:~208] [pc=0x27f7d39e7043](this=0x38b16f10d481 <JSGlobal Object>,key=0x38b1da57a3c9 <String[16]: relationMetadata>,value=0x38b17d826a11 <RelationMetadata map = 0x38b11322aaa9>,depth=0x38b18926bcf1 <Number inf>,memo=0x38b1f0482201 <Memo map = 0x38...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 0x10003d041 node::Abort() [/Users/mark/.volta/tools/image/node/10.17.0/6.11.3/bin/node]
 2: 0x10003d24b node::OnFatalError(char const*, char const*) [/Users/mark/.volta/tools/image/node/10.17.0/6.11.3/bin/node]
 3: 0x1001b8e25 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/Users/mark/.volta/tools/image/node/10.17.0/6.11.3/bin/node]
 4: 0x100586d82 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/Users/mark/.volta/tools/image/node/10.17.0/6.11.3/bin/node]
 5: 0x100589855 v8::internal::Heap::CheckIneffectiveMarkCompact(unsigned long, double) [/Users/mark/.volta/tools/image/node/10.17.0/6.11.3/bin/node]
 6: 0x1005856ff v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/Users/mark/.volta/tools/image/node/10.17.0/6.11.3/bin/node]
 7: 0x1005838d4 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/Users/mark/.volta/tools/image/node/10.17.0/6.11.3/bin/node]
 8: 0x10059016c v8::internal::Heap::AllocateRawWithLigthRetry(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/Users/mark/.volta/tools/image/node/10.17.0/6.11.3/bin/node]
 9: 0x1005901ef v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/Users/mark/.volta/tools/image/node/10.17.0/6.11.3/bin/node]
10: 0x10055f586 v8::internal::Factory::NewFixedArrayWithFiller(v8::internal::Heap::RootListIndex, int, v8::internal::Object*, v8::internal::PretenureFlag) [/Users/mark/.volta/tools/image/node/10.17.0/6.11.3/bin/node]
11: 0x1006f2852 v8::internal::OrderedHashTable<v8::internal::OrderedHashSet, 1>::Allocate(v8::internal::Isolate*, int, v8::internal::PretenureFlag) [/Users/mark/.volta/tools/image/node/10.17.0/6.11.3/bin/node]
12: 0x100667da9 v8::internal::KeyAccumulator::AddKey(v8::internal::Handle<v8::internal::Object>, v8::internal::AddKeyConversion) [/Users/mark/.volta/tools/image/node/10.17.0/6.11.3/bin/node]
13: 0x10066aa73 v8::internal::KeyAccumulator::CollectOwnPropertyNames(v8::internal::Handle<v8::internal::JSReceiver>, v8::internal::Handle<v8::internal::JSObject>) [/Users/mark/.volta/tools/image/node/10.17.0/6.11.3/bin/node]
14: 0x1006690a0 v8::internal::KeyAccumulator::CollectOwnKeys(v8::internal::Handle<v8::internal::JSReceiver>, v8::internal::Handle<v8::internal::JSObject>) [/Users/mark/.volta/tools/image/node/10.17.0/6.11.3/bin/node]
15: 0x10066852b v8::internal::KeyAccumulator::CollectKeys(v8::internal::Handle<v8::internal::JSReceiver>, v8::internal::Handle<v8::internal::JSReceiver>) [/Users/mark/.volta/tools/image/node/10.17.0/6.11.3/bin/node]
16: 0x1006695ce v8::internal::FastKeyAccumulator::GetKeysSlow(v8::internal::GetKeysConversion) [/Users/mark/.volta/tools/image/node/10.17.0/6.11.3/bin/node]
17: 0x1007db77e v8::internal::Runtime_ForInEnumerate(int, v8::internal::Object**, v8::internal::Isolate*) [/Users/mark/.volta/tools/image/node/10.17.0/6.11.3/bin/node]
18: 0x27f7d375be3d
19: 0x27f7d39e7043
20: 0x27f7d39e73cf
21: 0x27f7d39e73cf
22: 0x27f7d39e73cf
23: 0x27f7d39e73cf
24: 0x27f7d39e73cf
25: 0x27f7d39e73cf
26: 0x27f7d39e73cf
27: 0x27f7d39e73cf
28: 0x27f7d39e73cf
29: 0x27f7d39e73cf
30: 0x27f7d39e720d
31: 0x27f7d39e73cf
32: 0x27f7d39e73cf
33: 0x27f7d37118d5
34: 0x27f7d37118d5
35: 0x27f7d37118d5
36: 0x27f7d37118d5
37: 0x27f7d37118d5
38: 0x27f7d37118d5
39: 0x27f7d37118d5
40: 0x27f7d37118d5
41: 0x27f7d37118d5
42: 0x27f7d37118d5
43: 0x27f7d37118d5
44: 0x27f7d37118d5
45: 0x27f7d37118d5
46: 0x27f7d37118d5
47: 0x27f7d37118d5
48: 0x27f7d37118d5
49: 0x27f7d37118d5
50: 0x27f7d37118d5
51: 0x27f7d37118d5
52: 0x27f7d37118d5
53: 0x27f7d37118d5
54: 0x27f7d37118d5
55: 0x27f7d37118d5
56: 0x27f7d37118d5
57: 0x27f7d37118d5
58: 0x27f7d37118d5
59: 0x27f7d37118d5
60: 0x27f7d37118d5
61: 0x27f7d37118d5
62: 0x27f7d370a5c3
error Command failed with signal "SIGABRT".

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions