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

Debug error in node_mksnapshot #175

Closed
targos opened this issue Sep 14, 2020 · 32 comments
Closed

Debug error in node_mksnapshot #175

targos opened this issue Sep 14, 2020 · 32 comments

Comments

@targos
Copy link
Member

targos commented Sep 14, 2020

https://ci.nodejs.org/job/node-test-commit-linux-containered/22283/nodes=ubuntu1804_sharedlibs_debug_x64/console

09:49:51   LD_LIBRARY_PATH=/home/iojs/build/workspace/node-test-commit-linux-containered/out/Debug/lib.host:/home/iojs/build/workspace/node-test-commit-linux-containered/out/Debug/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../.; mkdir -p /home/iojs/build/workspace/node-test-commit-linux-containered/out/Debug/obj/gen; "/home/iojs/build/workspace/node-test-commit-linux-containered/out/Debug/mkcodecache" "/home/iojs/build/workspace/node-test-commit-linux-containered/out/Debug/obj/gen/node_code_cache.cc"
09:49:51   LD_LIBRARY_PATH=/home/iojs/build/workspace/node-test-commit-linux-containered/out/Debug/lib.host:/home/iojs/build/workspace/node-test-commit-linux-containered/out/Debug/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../.; mkdir -p /home/iojs/build/workspace/node-test-commit-linux-containered/out/Debug/obj/gen; "/home/iojs/build/workspace/node-test-commit-linux-containered/out/Debug/node_mksnapshot" "/home/iojs/build/workspace/node-test-commit-linux-containered/out/Debug/obj/gen/node_snapshot.cc"
09:49:51 
09:49:51 
09:49:51 #
09:49:51 # Fatal error in ../deps/v8/src/snapshot/context-serializer.cc, line 271
09:49:51 # Debug check failed: reference.is_back_reference().
09:49:51 #
09:49:51 #
09:49:51 #
09:49:51 #FailureMessage Object: 0x7ffea6dd20b0
09:49:51  1: 0x5642b9226cd1 node::DumpBacktrace(_IO_FILE*) [/home/iojs/build/workspace/node-test-commit-linux-containered/out/Debug/node_mksnapshot]
09:49:51  2: 0x5642b9396af9  [/home/iojs/build/workspace/node-test-commit-linux-containered/out/Debug/node_mksnapshot]
09:49:51  3: 0x5642b9396b19  [/home/iojs/build/workspace/node-test-commit-linux-containered/out/Debug/node_mksnapshot]
09:49:51  4: 0x5642ba57be86 V8_Fatal(char const*, int, char const*, ...) [/home/iojs/build/workspace/node-test-commit-linux-containered/out/Debug/node_mksnapshot]
09:49:51  5: 0x5642ba57beb5  [/home/iojs/build/workspace/node-test-commit-linux-containered/out/Debug/node_mksnapshot]
09:49:51  6: 0x5642ba3c5671 v8::internal::ContextSerializer::SerializeJSObjectWithEmbedderFields(v8::internal::Object) [/home/iojs/build/workspace/node-test-commit-linux-containered/out/Debug/node_mksnapshot]
09:49:51  7: 0x5642ba3c6a82 v8::internal::ContextSerializer::SerializeObject(v8::internal::HeapObject) [/home/iojs/build/workspace/node-test-commit-linux-containered/out/Debug/node_mksnapshot]
09:49:51  8: 0x5642b9f54fd2 v8::internal::Serializer::ObjectSerializer::VisitPointers(v8::internal::HeapObject, v8::internal::FullMaybeObjectSlot, v8::internal::FullMaybeObjectSlot) [/home/iojs/build/workspace/node-test-commit-linux-containered/out/Debug/node_mksnapshot]
...
@targos
Copy link
Member Author

targos commented Sep 14, 2020

/cc @joyeecheung ? Do we have a team to ping for these kind of issues?

@joyeecheung
Copy link
Member

No, we don't have a team for this, from a glance I am guessing this is a V8 issue, I will try to reproduce locally and see what object this is. Also cc @nodejs/v8

@joyeecheung
Copy link
Member

joyeecheung commented Oct 1, 2020

It looks like one of the typed arrays (async_hook_fields I think) in the global uncaught exception handler closure cannot be properly serialized, which might be related to this comment which I still have not figured out yet. I will see if I can give it another try..

https://github.com/nodejs/node/blob/423490423264d1b7624d578a421a1bedecbc5d2e/lib/internal/process/execution.js#L119-L126

See reference stack
Reference stack:
0xfc42315cf99: [NativeContext] in OldSpace
 - map: 0x0fc474305ba1 <Map>
 - length: 243
 - scope_info: 0x0fc4c5ec3299 <ScopeInfo SCRIPT_SCOPE [5]>
 - previous: 0
 - native_context: 0x0fc42315cf99 <NativeContext[243]>
           0: 0x0fc4c5ec3299 <ScopeInfo SCRIPT_SCOPE [5]>
           1: 0
           2: 0x0fc423176259 <JSObject>
           3: 0x0fc42315cf79 <JSGlobal Object>
           4: 0x0fc4222475d9 <Other heap object (EMBEDDER_DATA_ARRAY_TYPE)>
           5: 0x0fc4c5ec1599 <undefined>
           6: 0x0fc42316e121 <JSFunction next (sfi = 0xfc48aa58b81)>
           7: 0x0fc42316e159 <JSFunction next (sfi = 0xfc48aa58bc1)>
           8: 0x0fc42315e199 <JSFunction create (sfi = 0xfc48aa4df91)>
           9: 0x0fc42316c731 <JSFunction apply (sfi = 0xfc48aa57919)>
          10: 0x0fc42316c491 <JSFunction construct (sfi = 0xfc48aa57619)>
          11: 0x0fc42316d321 <JSFunction floor (sfi = 0xfc48aa58161)>
          12: 0x0fc42316d551 <JSFunction pow (sfi = 0xfc48aa583e1)>
          13: 0x0fc4c5ec1599 <undefined>
          14: 0x0fc423165c49 <JSFunction then (sfi = 0xfc48aa54221)>
          15: 0x0fc474308781 <Map(HOLEY_ELEMENTS)>
          16: 0x0fc4c5ec1599 <undefined>
          17: 0x0fc42316ded9 <JSFunction ArrayBuffer (sfi = 0xfc48aa58aa1)>
          18: 0x0fc4743086f1 <Map(HOLEY_ELEMENTS)>
          19: 0x0fc42316e209 <JSFunction arrayBufferConstructor_DoNotInitialize (sfi = 0xfc48aa58c01)>
          20: 0x0fc423167061 <JSFunction Array (sfi = 0xfc48aa54d59)>
          21: 0x0fc4c5ec1599 <undefined>
          22: 0x0fc4743087c9 <Map(HOLEY_ELEMENTS)>
          23: 0x0fc42316e499 <JSFunction AsyncFunction (sfi = 0xfc48aa58dc9)>
          24: 0x0fc474308979 <Map(HOLEY_ELEMENTS)>
          25: 0x0fc42316e651 <JSFunction AsyncGeneratorFunction (sfi = 0xfc48aa58e29)>
          26: 0x0fc42316eab9 <Object map = 0xfc474308ae1>
          27: 0x0fc423166639 <JSFunction BigInt (sfi = 0xfc48aa54781)>
          28: 0x0fc42316c139 <JSFunction BigInt64Array (sfi = 0xfc48aa575c1)>
          29: 0x0fc423165d71 <JSFunction BigUint64Array (sfi = 0xfc48aa542a1)>
          30: 0x0fc42316dc39 <JSFunction Boolean (sfi = 0xfc48aa58921)>
          31: 0x0fc474308b29 <Map(HOLEY_ELEMENTS)>
          32: 0x0fc474308b71 <Map(HOLEY_ELEMENTS)>
          33: 0x0fc42316ee79 <JSFunction (sfi = 0xfc48aa59371)>
          34: 0x0fc42316eeb1 <JSFunction (sfi = 0xfc48aa593b1)>
          35: 0x0fc42316eee9 <JSFunction (sfi = 0xfc48aa593f1)>
          36: 0x0fc42316ef21 <JSFunction (sfi = 0xfc48aa59431)>
          37: 0x0fc42316f001 <JSFunction CallSite (sfi = 0xfc48aa59471)>
          38: 0x0fc42316f771 <JSFunction (sfi = 0xfc48aa59bb1)>
          39: 0x0fc474308d21 <Map(HOLEY_ELEMENTS)>
          40: 0x0fc4231623a1 <JSFunction DataView (sfi = 0xfc48aa51441)>
          41: 0x0fc423162dc1 <JSFunction Date (sfi = 0xfc48aa51dd1)>
          42: 0x0fc4c5ec1599 <undefined>
          43: 0x0fc42315d941 <JSFunction (sfi = 0xfc48aa4d8a1)>
          44: 0x0fc4c5ec1599 <undefined>
          45: 0
          46: 0x0fc42316f911 <Object map = 0xfc474308d69>
          47: 0x0fc474308db1 <Map(FAST_SLOPPY_ARGUMENTS_ELEMENTS)>
          48: 0x0fc42316fab9 <FixedArray[1024]>
          49: 0x0fc423161f19 <JSFunction Float32Array (sfi = 0xfc48aa512e9)>
          50: 0x0fc423165529 <JSFunction Float64Array (sfi = 0xfc48aa53f59)>
          51: 0x0fc42315da31 <JSFunction Function (sfi = 0xfc48aa4da51)>
          52: 0x0fc423171b41 <JSFunction GeneratorFunction (sfi = 0xfc48aa59cd9)>
          53: 0x0fc474308fa9 <Map(HOLEY_ELEMENTS)>
          54: 0x0fc474308ff1 <Map(HOLEY_ELEMENTS)>
          55: 0x0fc474309039 <Map(HOLEY_ELEMENTS)>
          56: 0x0fc423171fc9 <Object map = 0xfc474309081>
          57: 0x0fc423167521 <JSArray[0]>
          58: 0x0fc423160e51 <Object map = 0xfc4743061d1>
          59: 0x0fc423171de1 <Object map = 0xfc474308f19>
          60: 0x0fc42316e271 <Object map = 0xfc474308859>
          61: 0x0fc42316e819 <Object map = 0xfc474308a99>
          62: 0x0fc423171ce1 <Object map = 0xfc474308f61>
          63: 0x0fc4231720f9 <Object map = 0xfc4743090c9>
          64: 0x0fc474306e79 <Map(HOLEY_ELEMENTS)>
          65: 0x0fc42315e669 <Object map = 0xfc474305c79>
          66: 0x0fc4231721e9 <Object map = 0xfc474309111>
          67: 0x0fc4231661c1 <Object map = 0xfc474306c81>
          68: 0x0fc474306c81 <Map(HOLEY_ELEMENTS)>
          69: 0x0fc474309159 <Map(HOLEY_ELEMENTS)>
          70: 0x0fc4231722d9 <Object map = 0xfc4743091a1>
          71: 0x0fc423164869 <Object map = 0xfc474306849 value = 0x0fc4c5ec17b1 <String[0]: #>>
          72: 0x0fc474307ec9 <Map(HOLEY_ELEMENTS)>
          73: 0x0fc474308589 <Map(HOLEY_ELEMENTS)>
          74: 0x0fc423168541 <JSFunction Int16Array (sfi = 0xfc48aa55681)>
          75: 0x0fc423165701 <JSFunction Int32Array (sfi = 0xfc48aa53f99)>
          76: 0x0fc423168719 <JSFunction Int8Array (sfi = 0xfc48aa556c1)>
          77: 0x0fc4231691d9 <JSFunction Collator (sfi = 0xfc48aa55c29)>
          78: 0x0fc42316aaa9 <JSFunction DateTimeFormat (sfi = 0xfc48aa56ac1)>
          79: 0x0fc42316a7e9 <JSFunction DisplayNames (sfi = 0xfc48aa56959)>
          80: 0x0fc42316ae61 <JSFunction NumberFormat (sfi = 0xfc48aa56d11)>
          81: 0x0fc42316a111 <JSFunction Locale (sfi = 0xfc48aa56401)>
          82: 0x0fc423169e29 <JSFunction ListFormat (sfi = 0xfc48aa562e1)>
          83: 0x0fc4231698a1 <JSFunction PluralRules (sfi = 0xfc48aa56021)>
          84: 0x0fc423169b29 <JSFunction RelativeTimeFormat (sfi = 0xfc48aa56159)>
       85-87: 0x0fc4c5ec1599 <undefined>
          88: 0x0fc4743091e9 <Map(HOLEY_ELEMENTS)>
          89: 0x0fc474306f09 <Map(PACKED_SMI_ELEMENTS)>
          90: 0x0fc474306fe1 <Map(HOLEY_SMI_ELEMENTS)>
          91: 0x0fc4743070b9 <Map(PACKED_ELEMENTS)>
          92: 0x0fc474307101 <Map(HOLEY_ELEMENTS)>
          93: 0x0fc474307029 <Map(PACKED_DOUBLE_ELEMENTS)>
          94: 0x0fc474307071 <Map(HOLEY_DOUBLE_ELEMENTS)>
          95: 0x0fc4231669e9 <JSFunction Map (sfi = 0xfc48aa548e9)>
          96: 0x0fc474306e31 <Map(HOLEY_ELEMENTS)>
          97: 0x0fc4743092c1 <Map(HOLEY_ELEMENTS)>
          98: 0x0fc423165f99 <JSFunction Set (sfi = 0xfc48aa54349)>
          99: 0x0fc474306c39 <Map(HOLEY_ELEMENTS)>
         100: 0x0fc42316b161 <JSFunction WeakMap (sfi = 0xfc48aa56e59)>
         101: 0x0fc42316d961 <JSFunction WeakSet (sfi = 0xfc48aa58821)>
     102-103: 0x0fc4c5ec1599 <undefined>
         104: 0x0fc474305ba1 <Map>
         105: 0x0fc474309309 <Map>
         106: 0x0fc474309351 <Map>
         107: 0x0fc474309399 <Map>
         108: 0x0fc4743093e1 <Map>
         109: 0x0fc474309429 <Map>
         110: 0x0fc474309471 <Map>
         111: 0x0fc4743094b9 <Map>
         112: 0x0fc474309501 <Map>
         113: 0x0fc474309549 <Map>
         114: 0x0fc423172401 <Other heap object (WEAK_FIXED_ARRAY_TYPE)>
         115: 0x0fc474309591 <Map(HOLEY_ELEMENTS)>
         116: 0x0fc4743095d9 <Map(HOLEY_ELEMENTS)>
         117: 0x0fc474309621 <Map(HOLEY_ELEMENTS)>
         118: 0
         119: 0x0fc423172851 <ByteArray[16]>
         120: 0x0fc423172871 <FixedDoubleArray[64]>
         121: 0x0fc423172a81 <FixedArray[1]>
         122: 0x0fc423172a99 <Other heap object (WEAK_FIXED_ARRAY_TYPE)>
         123: 0x0fc42316b7b1 <JSFunction Number (sfi = 0xfc48aa572d1)>
         124: 0x0fc42315dee1 <JSFunction Object (sfi = 0xfc48aa4e2d1)>
         125: 0x0fc474305c79 <Map(HOLEY_ELEMENTS)>
         126: 0x0fc474309669 <Map[32]>
         127: 0x0fc4743096b1 <Map[32]>
         128: 0x0fc42316c9c9 <JSFunction Proxy (sfi = 0xfc48aa579f9)>
         129: 0x0fc4743096f9 <Map[32]>
         130: 0x0fc474309741 <Map(HOLEY_ELEMENTS)>
         131: 0x0fc423165bb1 <Object map = 0xfc474306ad1>
         132: 0x0fc4c5ec1599 <undefined>
         133: 0x0fc423160b71 <JSFunction exec (sfi = 0xfc48aa50559)>
         134: 0x0fc4231604c1 <JSFunction RegExp (sfi = 0xfc48aa4ffc1)>
         135: 0x0fc423172cf1 <FixedArray[5]>
         136: 0x0fc423160a91 <JSFunction [Symbol.matchAll] (sfi = 0xfc48aa503d1)>
         137: 0x0fc423160a59 <JSFunction [Symbol.match] (sfi = 0xfc48aa50371)>
         138: 0x0fc4231609a9 <Object map = 0xfc4743060b1>
         139: 0x0fc4743060b1 <Map(HOLEY_ELEMENTS)>
         140: 0x0fc423160ac9 <JSFunction [Symbol.replace] (sfi = 0xfc48aa50439)>
         141: 0x0fc474309789 <Map(HOLEY_ELEMENTS)>
         142: 0x0fc4743097d1 <Map(HOLEY_ELEMENTS)>
         143: 0x0fc423160b01 <JSFunction [Symbol.search] (sfi = 0xfc48aa50499)>
         144: 0x0fc423160b39 <JSFunction [Symbol.split] (sfi = 0xfc48aa504f9)>
         145: 0x0fc474309819 <Map(HOLEY_ELEMENTS)>
         146: 0x0fc423172f79 <ScriptContextTable[2]>
         147: 0x0fc4c5ec1599 <undefined>
         148: 0x0fc423176259 <JSObject>
         149: 0x0fc4a181ea61 <FixedArray[35]>
         150: 0x0fc4743098a9 <Map(HOLEY_ELEMENTS)>
         151: 0x0fc4743098f1 <Map(HOLEY_ELEMENTS)>
         152: 0x0fc4231730e1 <JSFunction SharedArrayBuffer (sfi = 0xfc48aa5a1f9)>
         153: 0x0fc474308df9 <Map(PACKED_ELEMENTS)>
         154: 0x0fc474309a11 <Map(SLOW_SLOPPY_ARGUMENTS_ELEMENTS)>
         155: 0x0fc474309a59 <Map(PACKED_ELEMENTS)>
         156: 0x0fc474309aa1 <Map(HOLEY_ELEMENTS)>
         157: 0x0fc474309ae9 <Map(HOLEY_ELEMENTS)>
         158: 0x0fc423173391 <SimpleNumberDictionary[1027]>
         159: 0x0fc4231753b9 <OrderedHashSet[13]>
         160: 0x0fc423175431 <PropertyCell name=0x0fc4c5ec17b1 <String[0]: #> value=1>
         161: 0x0fc474305de1 <Map(HOLEY_ELEMENTS)>
         162: 0x0fc474309b31 <Map(HOLEY_ELEMENTS)>
         163: 0x0fc474309b79 <Map(HOLEY_ELEMENTS)>
         164: 0x0fc474309bc1 <Map(HOLEY_ELEMENTS)>
         165: 0x0fc474305eb9 <Map(HOLEY_ELEMENTS)>
         166: 0x0fc474309c09 <Map(HOLEY_ELEMENTS)>
         167: 0x0fc474308bb9 <Map(HOLEY_ELEMENTS)>
         168: 0x0fc474305e29 <Map(HOLEY_ELEMENTS)>
         169: 0x0fc474309c51 <Map(HOLEY_ELEMENTS)>
         170: 0x0fc474309c99 <Map(HOLEY_ELEMENTS)>
         171: 0x0fc474309ce1 <Map(HOLEY_ELEMENTS)>
         172: 0x0fc474309d29 <Map(HOLEY_ELEMENTS)>
         173: 0x0fc474309d71 <Map(HOLEY_ELEMENTS)>
         174: 0x0fc474309db9 <Map(HOLEY_ELEMENTS)>
         175: 0x0fc474309e01 <Map(HOLEY_ELEMENTS)>
         176: 0x0fc474308e89 <Map(HOLEY_ELEMENTS)>
         177: 0x0fc474309e49 <Map(HOLEY_ELEMENTS)>
         178: 0x0fc474309e91 <Map(HOLEY_ELEMENTS)>
         179: 0x0fc474309ed9 <Map(HOLEY_ELEMENTS)>
         180: 0x0fc474308a09 <Map(HOLEY_ELEMENTS)>
         181: 0x0fc474309f21 <Map(HOLEY_ELEMENTS)>
         182: 0x0fc474309f69 <Map(HOLEY_ELEMENTS)>
         183: 0x0fc474309fb1 <Map(HOLEY_ELEMENTS)>
         184: 0x0fc474309ff9 <Map(HOLEY_ELEMENTS)>
         185: 0x0fc423164291 <JSFunction String (sfi = 0xfc48aa53009)>
         186: 0x0fc474306849 <Map(FAST_STRING_WRAPPER_ELEMENTS)>
         187: 0x0fc423168a29 <JSFunction Symbol (sfi = 0xfc48aa558a9)>
     188-195: 0x0fc4c5ec1599 <undefined>
         196: 0x0fc423161251 <JSFunction TypedArray (sfi = 0xfc48aa50889)>
         197: 0x0fc423161809 <Object map = 0xfc474306381>
         198: 0x0fc423168e51 <JSFunction Uint16Array (sfi = 0xfc48aa55a29)>
         199: 0x0fc42316c821 <JSFunction Uint32Array (sfi = 0xfc48aa57959)>
         200: 0x0fc42316b4a1 <JSFunction Uint8Array (sfi = 0xfc48aa56f99)>
         201: 0x0fc42316bf61 <JSFunction Uint8ClampedArray (sfi = 0xfc48aa57581)>
         202: 0x0fc423167a61 <JSFunction entries (sfi = 0xfc48aa552c1)>
         203: 0x0fc423167ad1 <JSFunction forEach (sfi = 0xfc48aa55341)>
         204: 0x0fc423167a29 <JSFunction keys (sfi = 0xfc48aa55281)>
         205: 0x0fc423167a99 <JSFunction values (sfi = 0xfc48aa55301)>
         206: 0x0fc423160d01 <JSFunction Error (sfi = 0xfc48aa50681)>
         207: 0x0fc423160e89 <JSFunction toString (sfi = 0xfc48aa506c1)>
         208: 0x0fc423164019 <JSFunction EvalError (sfi = 0xfc48aa52ec9)>
         209: 0x0fc4c5ec1599 <undefined>
         210: 0x0fc423168451 <JSFunction eval (sfi = 0xfc48aa55641)>
         211: 0x0fc4231762c1 <JSFunction (sfi = 0xfc423176281)>
         212: 0x0fc423166cf1 <JSFunction delete (sfi = 0xfc48aa549c1)>
         213: 0x0fc423166e41 <JSFunction get (sfi = 0xfc48aa54b41)>
         214: 0x0fc423166cb9 <JSFunction has (sfi = 0xfc48aa54981)>
         215: 0x0fc423166e79 <JSFunction set (sfi = 0xfc48aa54b81)>
         216: 0x0fc4c5ec1599 <undefined>
         217: 0x0fc42315dc51 <JSFunction [Symbol.hasInstance] (sfi = 0xfc48aa4db91)>
         218: 0x0fc42315e7d9 <JSFunction toString (sfi = 0xfc48aa4e5b9)>
         219: 0x0fc42315e811 <JSFunction valueOf (sfi = 0xfc48aa4e5f9)>
         220: 0x0fc423165a09 <JSFunction all (sfi = 0xfc48aa54071)>
         221: 0x0fc4c5ec1599 <undefined>
         222: 0x0fc423165c81 <JSFunction catch (sfi = 0xfc48aa54261)>
         223: 0x0fc423165989 <JSFunction Promise (sfi = 0xfc48aa54171)>
         224: 0x0fc42316bce1 <JSFunction RangeError (sfi = 0xfc48aa574e9)>
         225: 0x0fc423160f69 <JSFunction ReferenceError (sfi = 0xfc48aa50701)>
         226: 0x0fc4231663a1 <JSFunction add (sfi = 0xfc48aa54579)>
         227: 0x0fc423166251 <JSFunction delete (sfi = 0xfc48aa543f9)>
         228: 0x0fc423166369 <JSFunction has (sfi = 0xfc48aa54539)>
         229: 0x0fc423162199 <JSFunction SyntaxError (sfi = 0xfc48aa513e9)>
         230: 0x0fc423168069 <JSFunction TypeError (sfi = 0xfc48aa555c1)>
         231: 0x0fc423168271 <JSFunction URIError (sfi = 0xfc48aa55601)>
         232: 0x0fc423175cb1 <JSFunction CompileError (sfi = 0xfc48aa5a319)>
         233: 0x0fc423175e91 <JSFunction LinkError (sfi = 0xfc48aa5a359)>
         234: 0x0fc423176071 <JSFunction RuntimeError (sfi = 0xfc48aa5a399)>
         235: 0x0fc42316b3b1 <JSFunction set (sfi = 0xfc48aa56f59)>
         236: 0x0fc42316b379 <JSFunction get (sfi = 0xfc48aa56f19)>
         237: 0x0fc42316db61 <JSFunction add (sfi = 0xfc48aa588e1)>
         238: 0x0fc4c5ec3099 <Other heap object (WEAK_ARRAY_LIST_TYPE)>
         239: 0x0fc4c5ec1239 <Other heap object (WEAK_FIXED_ARRAY_TYPE)>
     240-242: 0x0fc4c5ec1599 <undefined>
 - microtask_queue: 0x0

0xfc423176259: [JSGlobalObject] in OldSpace
 - map: 0x0fc47430a431 <Map(HOLEY_ELEMENTS)> [DictionaryProperties]
 - prototype: 0x0fc422246d79 <Object map = 0xfc47430a3e9>
 - elements: 0x0fc4c5ec1309 <FixedArray[0]> [HOLEY_ELEMENTS]
 - native context: 0x0fc42315cf99 <NativeContext[243]>
 - global proxy: 0x0fc42315cf79 <JSGlobal Object>
 - properties: 0x0fc422246709 <GlobalDictionary[133]> {
   Math: 0x0fc42316cf21 <Object map = 0xfc4743084b1> (data, dict_index: 25, attrs: [W_C])
   decodeURI: 0x0fc42316ca89 <JSFunction decodeURI (sfi = 0xfc48aa57a59)> (data, dict_index: 48, attrs: [W_C])
   encodeURI: 0x0fc4231610f9 <JSFunction encodeURI (sfi = 0xfc48aa50761)> (data, dict_index: 50, attrs: [W_C])
   clearTimeout: 0x0fc4a1818a39 <JSFunction clearTimeout (sfi = 0xfc4d23e7a99)> (data, dict_index: 69, attrs: [WEC])
   globalThis: 0x0fc42315cf79 <JSGlobal Object> (data, dict_index: 23, attrs: [W_C])
   escape: 0x0fc42316be71 <JSFunction escape (sfi = 0xfc48aa57541)> (data, dict_index: 52, attrs: [W_C])
   0x0fc423176c39 <Symbol: node:per_context_binding_exports>: 0x0fc422246b41 <Object map = 0xfc47430e5b9> (data, dict_index: 57, attrs: [W_C])
   ArrayBuffer: 0x0fc42316ded9 <JSFunction ArrayBuffer (sfi = 0xfc48aa58aa1)> (data, dict_index: 28, attrs: [W_C])
   isFinite: 0x0fc4231620c1 <JSFunction isFinite (sfi = 0xfc48aa513a9)> (data, dict_index: 55, attrs: [W_C])
   clearInterval: 0x0fc4a1818ab9 <JSFunction clearInterval (sfi = 0xfc4d23e7b49)> (data, dict_index: 68, attrs: [WEC])
   Proxy: 0x0fc42316c9c9 <JSFunction Proxy (sfi = 0xfc48aa579f9)> (data, dict_index: 46, attrs: [W_C])
   Symbol: 0x0fc423168a29 <JSFunction Symbol (sfi = 0xfc48aa558a9)> (data, dict_index: 12, attrs: [W_C])
   decodeURIComponent: 0x0fc42315eeb9 <JSFunction decodeURIComponent (sfi = 0xfc48aa4e7a1)> (data, dict_index: 49, attrs: [W_C])
   clearImmediate: 0x0fc4a1818b39 <JSFunction clearImmediate (sfi = 0xfc4d23e7bf9)> (data, dict_index: 73, attrs: [WEC])
   Int16Array: 0x0fc423168541 <JSFunction Int16Array (sfi = 0xfc48aa55681)> (data, dict_index: 32, attrs: [W_C])
   NaN: 0x0fc4c5ec1611 <HeapNumber nan> (data, dict_index: 8, attrs: [___])
   global: 0x0fc42315cf79 <JSGlobal Object> (data, dict_index: 58, attrs: [WEC])
   Reflect: 0x0fc42316c3e9 <Object map = 0xfc474308349> (data, dict_index: 47, attrs: [W_C])
   Int32Array: 0x0fc423165701 <JSFunction Int32Array (sfi = 0xfc48aa53f99)> (data, dict_index: 34, attrs: [W_C])
   encodeURIComponent: 0x0fc423162061 <JSFunction encodeURIComponent (sfi = 0xfc48aa51351)> (data, dict_index: 51, attrs: [W_C])
   setTimeout: 0x0fc4a18189f9 <JSFunction setTimeout (sfi = 0xfc4d23e7a41)> (data, dict_index: 71, attrs: [WEC])
   SyntaxError: 0x0fc423162199 <JSFunction SyntaxError (sfi = 0xfc48aa513e9)> (data, dict_index: 20, attrs: [W_C])
   Map: 0x0fc4231669e9 <JSFunction Map (sfi = 0xfc48aa548e9)> (data, dict_index: 41, attrs: [W_C])
   parseFloat: 0x0fc423166401 <JSFunction parseFloat (sfi = 0xfc48aa545d9)> (data, dict_index: 5, attrs: [W_C])
   Date: 0x0fc423162dc1 <JSFunction Date (sfi = 0xfc48aa51dd1)> (data, dict_index: 13, attrs: [W_C])
   Promise: 0x0fc423165989 <JSFunction Promise (sfi = 0xfc48aa54171)> (data, dict_index: 14, attrs: [W_C])
   0x0fc4c5ec5af9 <Symbol: Symbol.toStringTag>: 0x0fc4c5ec4791 <String[6]: #global> (data, dict_index: 60, attrs: [__C])
   BigUint64Array: 0x0fc423165d71 <JSFunction BigUint64Array (sfi = 0xfc48aa542a1)> (data, dict_index: 38, attrs: [W_C])
   Uint8ClampedArray: 0x0fc42316bf61 <JSFunction Uint8ClampedArray (sfi = 0xfc48aa57581)> (data, dict_index: 37, attrs: [W_C])
   TypeError: 0x0fc423168069 <JSFunction TypeError (sfi = 0xfc48aa555c1)> (data, dict_index: 21, attrs: [W_C])
   Object: 0x0fc42315dee1 <JSFunction Object (sfi = 0xfc48aa4e2d1)> (data, dict_index: 1, attrs: [W_C])
   setImmediate: 0x0fc4a1818af9 <JSFunction setImmediate (sfi = 0xfc4d23e7ba1)> (data, dict_index: 74, attrs: [WEC])
   BigInt64Array: 0x0fc42316c139 <JSFunction BigInt64Array (sfi = 0xfc48aa575c1)> (data, dict_index: 39, attrs: [W_C])
   RegExp: 0x0fc4231604c1 <JSFunction RegExp (sfi = 0xfc48aa4ffc1)> (data, dict_index: 15, attrs: [W_C])
   Error: 0x0fc423160d01 <JSFunction Error (sfi = 0xfc48aa50681)> (data, dict_index: 16, attrs: [W_C])
   eval: 0x0fc423168451 <JSFunction eval (sfi = 0xfc48aa55641)> (data, dict_index: 54, attrs: [W_C])
   process: 0x0fc42224acd1 <process map = 0xfc474331dd9> (data, dict_index: 59, attrs: [W_C])
   Intl: 0x0fc4231690b9 <Object map = 0xfc474310221> (data, dict_index: 27, attrs: [W_C])
   Float64Array: 0x0fc423165529 <JSFunction Float64Array (sfi = 0xfc48aa53f59)> (data, dict_index: 36, attrs: [W_C])
   WeakSet: 0x0fc42316d961 <JSFunction WeakSet (sfi = 0xfc48aa58821)> (data, dict_index: 45, attrs: [W_C])
   ReferenceError: 0x0fc423160f69 <JSFunction ReferenceError (sfi = 0xfc48aa50701)> (data, dict_index: 19, attrs: [W_C])
   isNaN: 0x0fc42316d889 <JSFunction isNaN (sfi = 0xfc48aa587e1)> (data, dict_index: 56, attrs: [W_C])
   undefined: 0x0fc4c5ec1599 <undefined> (data, dict_index: 9, attrs: [___])
   setInterval: 0x0fc4a1818a79 <JSFunction setInterval (sfi = 0xfc4d23e7af1)> (data, dict_index: 70, attrs: [WEC])
   unescape: 0x0fc423166ed9 <JSFunction unescape (sfi = 0xfc48aa54bd9)> (data, dict_index: 53, attrs: [W_C])
   Number: 0x0fc42316b7b1 <JSFunction Number (sfi = 0xfc48aa572d1)> (data, dict_index: 4, attrs: [W_C])
   String: 0x0fc423164291 <JSFunction String (sfi = 0xfc48aa53009)> (data, dict_index: 11, attrs: [W_C])
   AbortSignal: 0x0fc4a1818191 <JSFunction AbortSignal (sfi = 0xfc4d23dee71)> (data, dict_index: 67, attrs: [W_C])
   RangeError: 0x0fc42316bce1 <JSFunction RangeError (sfi = 0xfc48aa574e9)> (data, dict_index: 18, attrs: [W_C])
   URIError: 0x0fc423168271 <JSFunction URIError (sfi = 0xfc48aa55601)> (data, dict_index: 22, attrs: [W_C])
   queueMicrotask: 0x0fc4d23d4489 <JSFunction queueMicrotask (sfi = 0xfc4d23ca0e1)> (data, dict_index: 72, attrs: [WEC])
   Buffer: 0x0fc4222581c9 <JSFunction Buffer (sfi = 0xfc4ab0c27c9)> (data, dict_index: 61, attrs: [W_C])
   AbortController: 0x0fc4a18183f9 <JSFunction AbortController (sfi = 0xfc4d23def99)> (data, dict_index: 66, attrs: [W_C])
   parseInt: 0x0fc42316b959 <JSFunction parseInt (sfi = 0xfc48aa57231)> (data, dict_index: 6, attrs: [W_C])
   Set: 0x0fc423165f99 <JSFunction Set (sfi = 0xfc48aa54349)> (data, dict_index: 43, attrs: [W_C])
   TextEncoder: 0x0fc4a18144b1 <JSFunction TextEncoder (sfi = 0xfc4d23dd421)> (data, dict_index: 64, attrs: [W_C])
   Uint8Array: 0x0fc42316b4a1 <JSFunction Uint8Array (sfi = 0xfc48aa56f99)> (data, dict_index: 29, attrs: [W_C])
   WeakMap: 0x0fc42316b161 <JSFunction WeakMap (sfi = 0xfc48aa56e59)> (data, dict_index: 44, attrs: [W_C])
   Infinity: 0x0fc4c5ec30b1 <HeapNumber inf> (data, dict_index: 7, attrs: [___])
   EvalError: 0x0fc423164019 <JSFunction EvalError (sfi = 0xfc48aa52ec9)> (data, dict_index: 17, attrs: [W_C])
   TextDecoder: 0x0fc4a18148d9 <JSFunction TextDecoder (sfi = 0xfc4d23de4e1)> (data, dict_index: 65, attrs: [W_C])
   Int8Array: 0x0fc423168719 <JSFunction Int8Array (sfi = 0xfc48aa556c1)> (data, dict_index: 30, attrs: [W_C])
   Function: 0x0fc42315da31 <JSFunction Function (sfi = 0xfc48aa4da51)> (data, dict_index: 2, attrs: [W_C])
   BigInt: 0x0fc423166639 <JSFunction BigInt (sfi = 0xfc48aa54781)> (data, dict_index: 42, attrs: [W_C])
   Uint32Array: 0x0fc42316c821 <JSFunction Uint32Array (sfi = 0xfc48aa57959)> (data, dict_index: 33, attrs: [W_C])
   URLSearchParams: 0x0fc4a1810121 <JSFunction URLSearchParams (sfi = 0xfc4d23d4fe9)> (data, dict_index: 63, attrs: [W_C])
   URL: 0x0fc4a18102e1 <JSFunction URL (sfi = 0xfc4d23d5099)> (data, dict_index: 62, attrs: [W_C])
   console: 0x0fc4a18071d1 <Object map = 0xfc47432a891> (data, dict_index: 26, attrs: [W_C])
   Uint16Array: 0x0fc423168e51 <JSFunction Uint16Array (sfi = 0xfc48aa55a29)> (data, dict_index: 31, attrs: [W_C])
   Array: 0x0fc423167061 <JSFunction Array (sfi = 0xfc48aa54d59)> (data, dict_index: 3, attrs: [W_C])
   DataView: 0x0fc4231623a1 <JSFunction DataView (sfi = 0xfc48aa51441)> (data, dict_index: 40, attrs: [W_C])
   Boolean: 0x0fc42316dc39 <JSFunction Boolean (sfi = 0xfc48aa58921)> (data, dict_index: 10, attrs: [W_C])
   JSON: 0x0fc4231664c1 <Object map = 0xfc474306cc9> (data, dict_index: 24, attrs: [W_C])
   Float32Array: 0x0fc423161f19 <JSFunction Float32Array (sfi = 0xfc48aa512e9)> (data, dict_index: 35, attrs: [W_C])
 }

0xfc47430a431: [Map]
 - type: JS_GLOBAL_OBJECT_TYPE
 - instance size: 40
 - inobject properties: 0
 - elements kind: HOLEY_ELEMENTS
 - unused property fields: 0
 - enum length: invalid
 - dictionary_map
 - may_have_interesting_symbols
 - prototype_map
 - prototype info: 0x0fc4231782b1 <PrototypeInfo>
 - prototype_validity cell: 0x0fc42317bc99 <Cell value= 1>
 - instance descriptors (own) #0: 0x0fc4c5ec1249 <DescriptorArray[0]>
 - prototype: 0x0fc422246d79 <Object map = 0xfc47430a3e9>
 - constructor: 0x0fc423176219 <JSFunction (sfi = 0xfc4231761d9)>
 - dependent code: 0x0fc4c5ec1239 <Other heap object (WEAK_FIXED_ARRAY_TYPE)>
 - construction counter: 0

0xfc422246d79: [JS_OBJECT_TYPE] in OldSpace
 - map: 0x0fc47430a3e9 <Map(HOLEY_ELEMENTS)> [FastProperties]
 - prototype: 0x0fc42315e669 <Object map = 0xfc474305c79>
 - elements: 0x0fc4c5ec1309 <FixedArray[0]> [HOLEY_ELEMENTS]
 - properties: 0x0fc4c5ec2e39 <PropertyArray[0]> {
    0xfc4c5ec42d1: [String] in ReadOnlySpace: #constructor: 0x0fc42315dee1 <JSFunction Object (sfi = 0xfc48aa4e2d1)> (data field 0)
 }

0xfc47430a3e9: [Map]
 - type: JS_OBJECT_TYPE
 - instance size: 56
 - inobject properties: 4
 - elements kind: HOLEY_ELEMENTS
 - unused property fields: 3
 - enum length: invalid
 - stable_map
 - prototype_map
 - prototype info: 0x0fc4231782e9 <PrototypeInfo>
 - prototype_validity cell: 0x0fc48aa41659 <Cell value= 1>
 - instance descriptors (own) #1: 0x0fc422246db1 <DescriptorArray[1]>
 - prototype: 0x0fc42315e669 <Object map = 0xfc474305c79>
 - constructor: 0x0fc42315dee1 <JSFunction Object (sfi = 0xfc48aa4e2d1)>
 - dependent code: 0x0fc4c5ec1239 <Other heap object (WEAK_FIXED_ARRAY_TYPE)>
 - construction counter: 0

0xfc42315e669: [JS_OBJECT_TYPE] in OldSpace
 - map: 0x0fc474305c79 <Map(HOLEY_ELEMENTS)> [FastProperties]
 - prototype: 0x0fc4c5ec1319 <null>
 - elements: 0x0fc4c5ec1309 <FixedArray[0]> [HOLEY_ELEMENTS]
 - properties: 0x0fc42315e6a1 <PropertyArray[9]> {
    0xfc4c5ec42d1: [String] in ReadOnlySpace: #constructor: 0x0fc42315dee1 <JSFunction Object (sfi = 0xfc48aa4e2d1)> (data field 0)
    0xfc48aa4e311: [String] in OldSpace: #__defineGetter__: 0x0fc42315e881 <JSFunction __defineGetter__ (sfi = 0xfc48aa4e679)> (const data field 1)
    0xfc48aa4e331: [String] in OldSpace: #__defineSetter__: 0x0fc42315e8b9 <JSFunction __defineSetter__ (sfi = 0xfc48aa4e6b9)> (const data field 2)
    0xfc48aa4e351: [String] in OldSpace: #hasOwnProperty: 0x0fc42315e8f1 <JSFunction hasOwnProperty (sfi = 0xfc48aa4e6f9)> (const data field 3)
    0xfc48aa4e371: [String] in OldSpace: #__lookupGetter__: 0x0fc42315e6f9 <JSFunction __lookupGetter__ (sfi = 0xfc48aa4e4b9)> (const data field 4) properties[0]
    0xfc48aa4e391: [String] in OldSpace: #__lookupSetter__: 0x0fc42315e731 <JSFunction __lookupSetter__ (sfi = 0xfc48aa4e4f9)> (const data field 5) properties[1]
    0xfc48aa4e3b1: [String] in OldSpace: #isPrototypeOf: 0x0fc42315e769 <JSFunction isPrototypeOf (sfi = 0xfc48aa4e539)> (const data field 6) properties[2]
    0xfc48aa4e3d1: [String] in OldSpace: #propertyIsEnumerable: 0x0fc42315e7a1 <JSFunction propertyIsEnumerable (sfi = 0xfc48aa4e579)> (const data field 7) properties[3]
    0xfc4c5ec52a1: [String] in ReadOnlySpace: #toString: 0x0fc42315e7d9 <JSFunction toString (sfi = 0xfc48aa4e5b9)> (const data field 8) properties[4]
    0xfc4c5ec53e9: [String] in ReadOnlySpace: #valueOf: 0x0fc42315e811 <JSFunction valueOf (sfi = 0xfc48aa4e5f9)> (const data field 9) properties[5]
    0xfc4c5ec4de9: [String] in ReadOnlySpace: #__proto__: 0x0fc42315e5a9 <AccessorPair> (const accessor descriptor)
    0xfc43ad152e9: [String] in ReadOnlySpace: #toLocaleString: 0x0fc42315e849 <JSFunction toLocaleString (sfi = 0xfc48aa4e639)> (const data field 10) properties[6]
 }

0xfc474305c79: [Map]
 - type: JS_OBJECT_TYPE
 - instance size: 56
 - inobject properties: 4
 - elements kind: HOLEY_ELEMENTS
 - unused property fields: 2
 - enum length: invalid
 - stable_map
 - prototype_map
 - prototype info: 0x0fc42315e631 <PrototypeInfo>
 - prototype_validity cell: 0x0fc423176cb9 <Cell value= 1>
 - instance descriptors (own) #12: 0x0fc42315e471 <DescriptorArray[12]>
 - prototype: 0x0fc4c5ec1319 <null>
 - constructor: 0x0fc42315dee1 <JSFunction Object (sfi = 0xfc48aa4e2d1)>
 - dependent code: 0x0fc4c5ec1239 <Other heap object (WEAK_FIXED_ARRAY_TYPE)>
 - construction counter: 0

0xfc42315dee1: [Function] in OldSpace
 - map: 0x0fc474305cc1 <Map(HOLEY_ELEMENTS)> [FastProperties]
 - prototype: 0x0fc42315d941 <JSFunction (sfi = 0xfc48aa4d8a1)>
 - elements: 0x0fc4c5ec1309 <FixedArray[0]> [HOLEY_ELEMENTS]
 - function prototype: 0x0fc42315e669 <Object map = 0xfc474305c79>
 - initial_map: 0x0fc474305e71 <Map(HOLEY_ELEMENTS)>
 - shared_info: 0x0fc48aa4e2d1 <SharedFunctionInfo Object>
 - name: 0x0fc4c5ec4ca9 <String[6]: #Object>
 - builtin: ObjectConstructor
 - formal_parameter_count: 65535
 - kind: NormalFunction
 - context: 0x0fc42315cf99 <NativeContext[243]>
 - code: 0x20e18df4fda1 <Code BUILTIN ObjectConstructor>
 - properties: 0x0fc42315df21 <PropertyArray[21]> {
    0xfc4c5ec49c9: [String] in ReadOnlySpace: #length: 0x0fc48aa41499 <AccessorInfo> (const accessor descriptor)
    0xfc4c5ec4b21: [String] in ReadOnlySpace: #name: 0x0fc48aa41429 <AccessorInfo> (const accessor descriptor)
    0xfc4c5ec4e09: [String] in ReadOnlySpace: #prototype: 0x0fc48aa41509 <AccessorInfo> (const accessor descriptor)
    0xfc48aa4dbf9: [String] in OldSpace: #assign: 0x0fc42315dfd9 <JSFunction assign (sfi = 0xfc48aa4dd91)> (data field 0) properties[0]
    0xfc4c5ec4749: [String] in ReadOnlySpace: #getOwnPropertyDescriptor: 0x0fc42315e011 <JSFunction getOwnPropertyDescriptor (sfi = 0xfc48aa4ddd1)> (data field 1) properties[1]
    0xfc48aa4dc11: [String] in OldSpace: #getOwnPropertyDescriptors: 0x0fc42315e049 <JSFunction getOwnPropertyDescriptors (sfi = 0xfc48aa4de11)> (data field 2) properties[2]
    0xfc48aa4dc41: [String] in OldSpace: #getOwnPropertyNames: 0x0fc42315e081 <JSFunction getOwnPropertyNames (sfi = 0xfc48aa4de51)> (data field 3) properties[3]
    0xfc48aa4dc69: [String] in OldSpace: #getOwnPropertySymbols: 0x0fc42315e0b9 <JSFunction getOwnPropertySymbols (sfi = 0xfc48aa4de91)> (data field 4) properties[4]
    0xfc48aa4dc91: [String] in OldSpace: #is: 0x0fc42315e0f1 <JSFunction is (sfi = 0xfc48aa4ded1)> (data field 5) properties[5]
    0xfc4c5ec4d89: [String] in ReadOnlySpace: #preventExtensions: 0x0fc42315e129 <JSFunction preventExtensions (sfi = 0xfc48aa4df11)> (data field 6) properties[6]
    0xfc48aa4dca9: [String] in OldSpace: #seal: 0x0fc42315e161 <JSFunction seal (sfi = 0xfc48aa4df51)> (data field 7) properties[7]
    0xfc48aa4dcc1: [String] in OldSpace: #create: 0x0fc42315e199 <JSFunction create (sfi = 0xfc48aa4df91)> (data field 8) properties[8]
    0xfc48aa4dcd9: [String] in OldSpace: #defineProperties: 0x0fc42315e1d1 <JSFunction defineProperties (sfi = 0xfc48aa4dfd1)> (data field 9) properties[9]
    0xfc4c5ec4359: [String] in ReadOnlySpace: #defineProperty: 0x0fc42315e209 <JSFunction defineProperty (sfi = 0xfc48aa4e011)> (data field 10) properties[10]
    0xfc48aa4dcf9: [String] in OldSpace: #freeze: 0x0fc42315e241 <JSFunction freeze (sfi = 0xfc48aa4e051)> (data field 11) properties[11]
    0xfc4c5ec4771: [String] in ReadOnlySpace: #getPrototypeOf: 0x0fc42315e279 <JSFunction getPrototypeOf (sfi = 0xfc48aa4e091)> (data field 12) properties[12]
    0xfc4c5ec5071: [String] in ReadOnlySpace: #setPrototypeOf: 0x0fc42315e2b1 <JSFunction setPrototypeOf (sfi = 0xfc48aa4e0d1)> (data field 13) properties[13]
    0xfc4c5ec4931: [String] in ReadOnlySpace: #isExtensible: 0x0fc42315e2e9 <JSFunction isExtensible (sfi = 0xfc48aa4e111)> (data field 14) properties[14]
    0xfc48aa4dd11: [String] in OldSpace: #isFrozen: 0x0fc42315e321 <JSFunction isFrozen (sfi = 0xfc48aa4e151)> (data field 15) properties[15]
    0xfc48aa4dd29: [String] in OldSpace: #isSealed: 0x0fc42315e359 <JSFunction isSealed (sfi = 0xfc48aa4e191)> (data field 16) properties[16]
    0xfc4c5ec4991: [String] in ReadOnlySpace: #keys: 0x0fc42315e391 <JSFunction keys (sfi = 0xfc48aa4e1d1)> (data field 17) properties[17]
    0xfc48aa4dd41: [String] in OldSpace: #entries: 0x0fc42315e3c9 <JSFunction entries (sfi = 0xfc48aa4e211)> (data field 18) properties[18]
    0xfc48aa4dd59: [String] in OldSpace: #fromEntries: 0x0fc42315e401 <JSFunction fromEntries (sfi = 0xfc48aa4e251)> (data field 19) properties[19]
    0xfc48aa4dd79: [String] in OldSpace: #values: 0x0fc42315e439 <JSFunction values (sfi = 0xfc48aa4e291)> (data field 20) properties[20]
 }
 - feedback vector: feedback metadata is not available in SFI

0xfc474305cc1: [Map]
 - type: JS_FUNCTION_TYPE
 - instance size: 64
 - inobject properties: 0
 - elements kind: HOLEY_ELEMENTS
 - unused property fields: 0
 - enum length: invalid
 - stable_map
 - callable
 - constructor
 - has_prototype_slot
 - back pointer: 0x0fc4c5ec1599 <undefined>
 - prototype_validity cell: 0x0fc48aa41659 <Cell value= 1>
 - instance descriptors (own) #24: 0x0fc42315dc89 <DescriptorArray[24]>
 - prototype: 0x0fc42315d941 <JSFunction (sfi = 0xfc48aa4d8a1)>
 - constructor: 0x0fc4c5ec1319 <null>
 - dependent code: 0x0fc4c5ec1239 <Other heap object (WEAK_FIXED_ARRAY_TYPE)>
 - construction counter: 0

0xfc42315d941: [Function] in OldSpace
 - map: 0x0fc474305d09 <Map(HOLEY_ELEMENTS)> [FastProperties]
 - prototype: 0x0fc42315e669 <Object map = 0xfc474305c79>
 - elements: 0x0fc4c5ec1309 <FixedArray[0]> [HOLEY_ELEMENTS]
 - function prototype: <no-prototype-slot>
 - shared_info: 0x0fc48aa4d8a1 <SharedFunctionInfo>
 - name: 0x0fc4c5ec17b1 <String[0]: #>
 - builtin: EmptyFunction
 - formal_parameter_count: 65535
 - kind: NormalFunction
 - context: 0x0fc42315cf99 <NativeContext[243]>
 - code: 0x20e18df44a21 <Code BUILTIN EmptyFunction>
 - source code: 
 - properties: 0x0fc42315d979 <PropertyArray[6]> {
    0xfc4c5ec49c9: [String] in ReadOnlySpace: #length: 0x0fc48aa41499 <AccessorInfo> (const accessor descriptor)
    0xfc4c5ec4b21: [String] in ReadOnlySpace: #name: 0x0fc48aa41429 <AccessorInfo> (const accessor descriptor)
    0xfc4c5ec3f41: [String] in ReadOnlySpace: #arguments: 0x0fc42315d851 <AccessorPair> (const accessor descriptor)
    0xfc4c5ec41c9: [String] in ReadOnlySpace: #caller: 0x0fc42315d851 <AccessorPair> (const accessor descriptor)
    0xfc4c5ec42d1: [String] in ReadOnlySpace: #constructor: 0x0fc42315da31 <JSFunction Function (sfi = 0xfc48aa4da51)> (const data field 0) properties[0]
    0xfc4c5ec3f09: [String] in ReadOnlySpace: #apply: 0x0fc42315db71 <JSFunction apply (sfi = 0xfc48aa4da91)> (const data field 1) properties[1]
    0xfc4c5ec40d1: [String] in ReadOnlySpace: #bind: 0x0fc42315dba9 <JSFunction bind (sfi = 0xfc48aa4dad1)> (const data field 2) properties[2]
    0xfc48aa4da39: [String] in OldSpace: #call: 0x0fc42315dbe1 <JSFunction call (sfi = 0xfc48aa4db11)> (const data field 3) properties[3]
    0xfc4c5ec52a1: [String] in ReadOnlySpace: #toString: 0x0fc42315dc19 <JSFunction toString (sfi = 0xfc48aa4db51)> (const data field 4) properties[4]
    0x0fc4c5ec5a71 <Symbol: Symbol.hasInstance>: 0x0fc42315dc51 <JSFunction [Symbol.hasInstance] (sfi = 0xfc48aa4db91)> (const data field 5) properties[5]
 }
 - feedback vector: feedback metadata is not available in SFI

0xfc474305d09: [Map]
 - type: JS_FUNCTION_TYPE
 - instance size: 56
 - inobject properties: 0
 - elements kind: HOLEY_ELEMENTS
 - unused property fields: 0
 - enum length: invalid
 - stable_map
 - callable
 - prototype_map
 - prototype info: 0x0fc42315d909 <PrototypeInfo>
 - prototype_validity cell: 0x0fc4a182e2f1 <Cell value= 0>
 - instance descriptors (own) #10: 0x0fc42315d749 <DescriptorArray[10]>
 - prototype: 0x0fc42315e669 <Object map = 0xfc474305c79>
 - constructor: 0x0fc4c5ec1319 <null>
 - dependent code: 0x0fc4c5ec1239 <Other heap object (WEAK_FIXED_ARRAY_TYPE)>
 - construction counter: 0

0xfc42315d909: [PrototypeInfo] in OldSpace
 - map: 0x0fc4c5ec61f9 <Map[56]>
 - module namespace: 0x0fc4c5ec1599 <undefined>
 - prototype users: 0x0fc42224a2c9 <Other heap object (WEAK_ARRAY_LIST_TYPE)>
 - registry slot: 9
 - object create map: 0x0fc4c5ec1599 <undefined>
 - should_be_fast_map: 1

0xfc42224a2c9: [WeakArrayList] in OldSpace
 - map: 0x0fc4c5ec2851 <Map>
 - capacity: 4
 - length: 2

           0: 0
           1: [weak] 0x0fc4743062f1 <Map(HOLEY_ELEMENTS)>

0xfc4743062f1: [Map]
 - type: JS_FUNCTION_TYPE
 - instance size: 64
 - inobject properties: 0
 - elements kind: HOLEY_ELEMENTS
 - unused property fields: 1
 - enum length: invalid
 - stable_map
 - callable
 - constructor
 - has_prototype_slot
 - prototype_map
 - prototype info: 0x0fc42317dc19 <PrototypeInfo>
 - prototype_validity cell: 0x0fc48aa41659 <Cell value= 1>
 - instance descriptors (own) #6: 0x0fc423161159 <DescriptorArray[6]>
 - prototype: 0x0fc42315d941 <JSFunction (sfi = 0xfc48aa4d8a1)>
 - constructor: 0x0fc42315dee1 <JSFunction Object (sfi = 0xfc48aa4e2d1)>
 - dependent code: 0x0fc4c5ec1239 <Other heap object (WEAK_FIXED_ARRAY_TYPE)>
 - construction counter: 0

0xfc423161159: [DescriptorArray] in OldSpace
 - map: 0x0fc4c5ec11a9 <Map>
 - enum_cache: empty
 - nof slack descriptors: 0
 - nof descriptors: 6
 - raw marked descriptors: mc epoch 1, marked 6
  [0]: 0xfc4c5ec49c9: [String] in ReadOnlySpace: #length (const accessor descriptor, p: 1, attrs: [__C]) @ 0x0fc48aa41499 <AccessorInfo>
  [1]: 0xfc4c5ec4b21: [String] in ReadOnlySpace: #name (const accessor descriptor, p: 5, attrs: [__C]) @ 0x0fc48aa41429 <AccessorInfo>
  [2]: 0xfc4c5ec4e09: [String] in ReadOnlySpace: #prototype (const accessor descriptor, p: 0, attrs: [___]) @ 0x0fc48aa41509 <AccessorInfo>
  [3]: 0x0fc4c5ec5981 <Symbol: Symbol.species> (const accessor descriptor, p: 2, attrs: [W_C]) @ 0x0fc423161201 <AccessorPair>(get: 0x0fc423161219 <JSFunction get [Symbol.species] (sfi = 0xfc48aa507a1)>, set: 0x0fc4c5ec1599 <undefined>)
  [4]: 0xfc4c5ec4ce1: [String] in ReadOnlySpace: #of (data field 0:t, p: 3, attrs: [W_C]) @ Any
  [5]: 0xfc4c5ec4659: [String] in ReadOnlySpace: #from (data field 1:t, p: 4, attrs: [W_C]) @ Any

0xfc423161201: [AccessorPair] in OldSpace
 - map: 0x0fc4c5ec5dc1 <Map[24]>
 - getter: 0x0fc423161219 <JSFunction get [Symbol.species] (sfi = 0xfc48aa507a1)>
 - setter: 0x0fc4c5ec1599 <undefined>

0xfc423161219: [Function] in OldSpace
 - map: 0x0fc474305e29 <Map(HOLEY_ELEMENTS)> [FastProperties]
 - prototype: 0x0fc42315d941 <JSFunction (sfi = 0xfc48aa4d8a1)>
 - elements: 0x0fc4c5ec1309 <FixedArray[0]> [HOLEY_ELEMENTS]
 - function prototype: <no-prototype-slot>
 - shared_info: 0x0fc48aa507a1 <SharedFunctionInfo get [Symbol.species]>
 - name: 0x0fc48aa507e1 <String[20]: "get [Symbol.species]">
 - builtin: ReturnReceiver
 - formal_parameter_count: 0
 - kind: NormalFunction
 - context: 0x0fc42315cf99 <NativeContext[243]>
 - code: 0x20e18df44c21 <Code BUILTIN ReturnReceiver>
 - properties: 0x0fc4c5ec1309 <FixedArray[0]> {
    0xfc4c5ec49c9: [String] in ReadOnlySpace: #length: 0x0fc48aa41499 <AccessorInfo> (const accessor descriptor)
    0xfc4c5ec4b21: [String] in ReadOnlySpace: #name: 0x0fc48aa41429 <AccessorInfo> (const accessor descriptor)
 }
 - feedback vector: feedback metadata is not available in SFI

0xfc474305e29: [Map]
 - type: JS_FUNCTION_TYPE
 - instance size: 56
 - inobject properties: 0
 - elements kind: HOLEY_ELEMENTS
 - unused property fields: 0
 - enum length: invalid
 - callable
 - back pointer: 0x0fc4c5ec1599 <undefined>
 - prototype_validity cell: 0x0fc48aa41659 <Cell value= 1>
 - instance descriptors (own) #2: 0x0fc42315db29 <DescriptorArray[2]>
 - transitions #1: 0x0fc47432f289 <Map(HOLEY_ELEMENTS)>
     0xfc4d23e5c09: [String] in OldSpace: #enabled: (transition to (const accessor descriptor, attrs: [WEC]) @ 0x0fc422243239 <AccessorPair>(get: 0x0fc4a181a061 <JSFunction get (sfi = 0xfc422242f59)>, set: 0x0fc4c5ec1319 <null>)) -> 0x0fc47432f289 <Map(HOLEY_ELEMENTS)>
 - prototype: 0x0fc42315d941 <JSFunction (sfi = 0xfc48aa4d8a1)>
 - constructor: 0x0fc4c5ec1319 <null>
 - dependent code: 0x0fc4c5ec1239 <Other heap object (WEAK_FIXED_ARRAY_TYPE)>
 - construction counter: 0

0xfc47432f289: [Map]
 - type: JS_FUNCTION_TYPE
 - instance size: 56
 - inobject properties: 0
 - elements kind: HOLEY_ELEMENTS
 - unused property fields: 0
 - enum length: invalid
 - stable_map
 - callable
 - back pointer: 0x0fc474305e29 <Map(HOLEY_ELEMENTS)>
 - prototype_validity cell: 0x0fc48aa41659 <Cell value= 1>
 - instance descriptors (own) #3: 0x0fc4a181a099 <DescriptorArray[3]>
 - prototype: 0x0fc42315d941 <JSFunction (sfi = 0xfc48aa4d8a1)>
 - constructor: 0x0fc4c5ec1319 <null>
 - dependent code: 0x0fc4c5ec1239 <Other heap object (WEAK_FIXED_ARRAY_TYPE)>
 - construction counter: 0

0xfc4a181a099: [DescriptorArray] in OldSpace
 - map: 0x0fc4c5ec11a9 <Map>
 - enum_cache: empty
 - nof slack descriptors: 0
 - nof descriptors: 3
 - raw marked descriptors: mc epoch 1, marked 3
  [0]: 0xfc4c5ec49c9: [String] in ReadOnlySpace: #length (const accessor descriptor, p: 1, attrs: [__C]) @ 0x0fc48aa41499 <AccessorInfo>
  [1]: 0xfc4c5ec4b21: [String] in ReadOnlySpace: #name (const accessor descriptor, p: 0, attrs: [__C]) @ 0x0fc48aa41429 <AccessorInfo>
  [2]: 0xfc4d23e5c09: [String] in OldSpace: #enabled (const accessor descriptor, p: 2, attrs: [WEC]) @ 0x0fc422243239 <AccessorPair>(get: 0x0fc4a181a061 <JSFunction get (sfi = 0xfc422242f59)>, set: 0x0fc4c5ec1319 <null>)

0xfc422243239: [AccessorPair] in OldSpace
 - map: 0x0fc4c5ec5dc1 <Map[24]>
 - getter: 0x0fc4a181a061 <JSFunction get (sfi = 0xfc422242f59)>
 - setter: 0x0fc4c5ec1319 <null>

0xfc4a181a061: [Function] in OldSpace
 - map: 0x0fc474305e29 <Map(HOLEY_ELEMENTS)> [FastProperties]
 - prototype: 0x0fc42315d941 <JSFunction (sfi = 0xfc48aa4d8a1)>
 - elements: 0x0fc4c5ec1309 <FixedArray[0]> [HOLEY_ELEMENTS]
 - function prototype: <no-prototype-slot>
 - shared_info: 0x0fc422242f59 <SharedFunctionInfo get>
 - name: 0x0fc4c5ec4731 <String[3]: #get>
 - builtin: CompileLazy
 - formal_parameter_count: 0
 - kind: ConciseMethod
 - context: 0x0fc4a1819f29 <FunctionContext[8]>
 - code: 0x20e18df446a1 <Code BUILTIN CompileLazy>
 - source code: () {
      return test();
    }
 - properties: 0x0fc4c5ec1309 <FixedArray[0]> {
    0xfc4c5ec49c9: [String] in ReadOnlySpace: #length: 0x0fc48aa41499 <AccessorInfo> (const accessor descriptor)
    0xfc4c5ec4b21: [String] in ReadOnlySpace: #name: 0x0fc48aa41429 <AccessorInfo> (const accessor descriptor)
 }
 - feedback vector: feedback metadata is not available in SFI

0xfc4a1819f29: [Context] in OldSpace
 - map: 0x0fc474309309 <Map>
 - length: 8
 - scope_info: 0x0fc422242d41 <ScopeInfo FUNCTION_SCOPE [21]>
 - previous: 0x0fc4a1815bf1 <FunctionContext[18]>
 - native_context: 0x0fc42315cf99 <NativeContext[243]>
           0: 0x0fc422242d41 <ScopeInfo FUNCTION_SCOPE [21]>
           1: 0x0fc4a1815bf1 <FunctionContext[18]>
           2: 0x0fc4a1819ef1 <JSFunction (sfi = 0xfc4d23ea4c1)>
           3: 0x0fc4d23e72c9 <String[5]: #timer>
           4: 0x0fc4a1819f79 <JSFunction init (sfi = 0xfc422242df9)>
           5: 0x0fc4a1819fb9 <JSFunction debug (sfi = 0xfc422242e51)>
           6: 0x0fc4c5ec1599 <undefined>
           7: 0x0fc4a1819ff1 <JSFunction test (sfi = 0xfc422242ea9)>

0xfc4a1815bf1: [Context] in OldSpace
 - map: 0x0fc474309309 <Map>
 - length: 18
 - scope_info: 0x0fc4d23e5d11 <ScopeInfo FUNCTION_SCOPE [40]>
 - previous: 0x0fc42315cf99 <NativeContext[243]>
 - native_context: 0x0fc42315cf99 <NativeContext[243]>
           0: 0x0fc4d23e5d11 <ScopeInfo FUNCTION_SCOPE [40]>
           1: 0x0fc42315cf99 <NativeContext[243]>
           2: 0x0fc42224acd1 <process map = 0xfc474331dd9>
           3: 0x0fc42226d6a9 <JSFunction (sfi = 0xfc4a18200d9)>
           4: 0x0fc42315e199 <JSFunction create (sfi = 0xfc48aa4df91)>
           5: 0x0fc42315e209 <JSFunction defineProperty (sfi = 0xfc48aa4e011)>
           6: 0x0fc4231604c1 <JSFunction RegExp (sfi = 0xfc48aa4ffc1)>
           7: 0x0fc42226b781 <JSFunction (sfi = 0xfc4a18200d9)>
           8: 0x0fc42226d159 <JSFunction (sfi = 0xfc4a18200d9)>
           9: 0x0fc42224b1a1 <JSFunction inspect (sfi = 0xfc4a183b2b9)>
          10: 0x0fc42227db49 <JSFunction format (sfi = 0xfc4a183c1d9)>
          11: 0x0fc42227db89 <JSFunction formatWithOptions (sfi = 0xfc4a183c231)>
          12: 0x0fc4c5ec1599 <undefined>
          13: 0x0fc4a1815dd1 <JSRegExp <String[2]: #^$>>
          14: 0x0fc4c5ec1599 <undefined>
          15: 0x0fc4a1815cd1 <JSFunction emitWarningIfNeeded (sfi = 0xfc4d23e5fc9)>
          16: 0x0fc4a1815d11 <JSFunction noop (sfi = 0xfc4d23e6021)>
          17: 0x0fc4a1815d51 <JSFunction debuglogImpl (sfi = 0xfc4d23e6079)>

0xfc42224acd1: [JS_API_OBJECT_TYPE] in OldSpace
 - map: 0x0fc474331dd9 <Map(HOLEY_ELEMENTS)> [FastProperties]
 - prototype: 0x0fc4222504a1 <Object map = 0xfc47431dee9>
 - elements: 0x0fc4c5ec1309 <FixedArray[0]> [HOLEY_ELEMENTS]
 - properties: 0x0fc4a181dd51 <PropertyArray[57]> {
    0xfc423142b59: [String] in OldSpace: #version: 0x0fc42226db79 <String[11]: "v15.0.0-pre"> (const data field 0) properties[0]
    0xfc4a1821eb1: [String] in OldSpace: #versions: 0x0fc42226db99 <Object map = 0xfc474310809> (const data field 1) properties[1]
    0xfc4a1822001: [String] in OldSpace: #arch: 0x0fc42226dbd1 <String[3]: "x64"> (const data field 2) properties[2]
    0xfc4a1822019: [String] in OldSpace: #platform: 0x0fc42226dbe9 <String[6]: "darwin"> (const data field 3) properties[3]
    0xfc4a1822031: [String] in OldSpace: #release: 0x0fc42226dc01 <Object map = 0xfc474310929> (const data field 4) properties[4]
    0xfc4a1822151: [String] in OldSpace: #_rawDebug: 0x0fc4d23e22a9 <JSFunction _rawDebug (sfi = 0xfc4d23c4741)> (data field 5) properties[5]
    0xfc4a18224c1: [String] in OldSpace: #moduleLoadList: 0x0fc422268281 <JSArray[53]> (const data field 6) properties[6]
    0xfc4a1822781: [String] in OldSpace: #binding: 0x0fc4a18234e1 <JSFunction binding (sfi = 0xfc4a1822dc9)> (const data field 7) properties[7]
    0xfc4a1822799: [String] in OldSpace: #_linkedBinding: 0x0fc4a1823531 <JSFunction _linkedBinding (sfi = 0xfc4a1822e21)> (const data field 8) properties[8]
    0xfc4a18368b1: [String] in OldSpace: #_events: 0x0fc42226dc39 <Object map = 0xfc474309aa1> (const data field 9) properties[9]
    0xfc4a18368c9: [String] in OldSpace: #_eventsCount: 2 (data field 10) properties[10]
    0xfc4a18368e9: [String] in OldSpace: #_maxListeners: 0x0fc4c5ec1599 <undefined> (const data field 11) properties[11]
    0x0fc4a183f809 <Symbol: kCapture>: 0x0fc4c5ec1769 <false> (const data field 12) properties[12]
    0x0fc4c5ec5af9 <Symbol: Symbol.toStringTag>: 0x0fc4231425c1 <String[7]: #process> (const data field 13) properties[13]
    0xfc4a1824179: [String] in OldSpace: #domain: 0x0fc4c5ec1319 <null> (const data field 14) properties[14]
    0xfc4a1824191: [String] in OldSpace: #_exiting: 0x0fc4c5ec1769 <false> (const data field 15) properties[15]
    0xfc423141861: [String] in OldSpace: #config: 0x0fc4d23d9559 <Object map = 0xfc474321a89> (const data field 16) properties[16]
    0xfc4a1824221: [String] in OldSpace: #dlopen: 0x0fc4d23c41b9 <JSFunction dlopen (sfi = 0xfc4d23c4179)> (const data field 17) properties[17]
    0xfc4a1824239: [String] in OldSpace: #uptime: 0x0fc4d23c43c9 <JSFunction uptime (sfi = 0xfc4d23c4389)> (const data field 18) properties[18]
    0xfc4a1824251: [String] in OldSpace: #_getActiveRequests: 0x0fc4d23c3d99 <JSFunction _getActiveRequests (sfi = 0xfc4d23c3d59)> (const data field 19) properties[19]
    0xfc4a1824279: [String] in OldSpace: #_getActiveHandles: 0x0fc4d23c3ea1 <JSFunction _getActiveHandles (sfi = 0xfc4d23c3e61)> (const data field 20) properties[20]
    0xfc4a18242a1: [String] in OldSpace: #reallyExit: 0x0fc4d23c42c1 <JSFunction reallyExit (sfi = 0xfc4d23c4281)> (const data field 21) properties[21]
    0xfc4a18242c1: [String] in OldSpace: #_kill: 0x0fc4d23c3fa9 <JSFunction _kill (sfi = 0xfc4d23c3f69)> (const data field 22) properties[22]
    0xfc4a1824301: [String] in OldSpace: #cpuUsage: 0x0fc4d23e22e9 <JSFunction cpuUsage (sfi = 0xfc4d23c4799)> (const data field 23) properties[23]
    0xfc4a1824319: [String] in OldSpace: #resourceUsage: 0x0fc4d23e2429 <JSFunction resourceUsage (sfi = 0xfc4d23c4951)> (const data field 24) properties[24]
    0xfc4a1824339: [String] in OldSpace: #memoryUsage: 0x0fc4d23e2369 <JSFunction memoryUsage (sfi = 0xfc4d23c4849)> (const data field 25) properties[25]
    0xfc4a1824359: [String] in OldSpace: #kill: 0x0fc4d23e23e9 <JSFunction kill (sfi = 0xfc4d23c48f9)> (const data field 26) properties[26]
    0xfc4a1824371: [String] in OldSpace: #exit: 0x0fc4d23e23a9 <JSFunction exit (sfi = 0xfc4d23c48a1)> (const data field 27) properties[27]
    0xfc4a1824389: [String] in OldSpace: #openStdin: 0x0fc4d23c4d19 <JSFunction process.openStdin (sfi = 0xfc4a1824d31)> (const data field 28) properties[28]
    0xfc4a18243f9: [String] in OldSpace: #getuid: 0x0fc4d23c4f51 <JSFunction getuid (sfi = 0xfc4d23c4f11)> (const data field 29) properties[29]
    0xfc4a1824411: [String] in OldSpace: #geteuid: 0x0fc4d23c5059 <JSFunction geteuid (sfi = 0xfc4d23c5019)> (const data field 30) properties[30]
    0xfc4a1824429: [String] in OldSpace: #getgid: 0x0fc4d23c5161 <JSFunction getgid (sfi = 0xfc4d23c5121)> (const data field 31) properties[31]
    0xfc4a1824441: [String] in OldSpace: #getegid: 0x0fc4d23c5269 <JSFunction getegid (sfi = 0xfc4d23c5229)> (const data field 32) properties[32]
    0xfc4a1824459: [String] in OldSpace: #getgroups: 0x0fc4d23c5371 <JSFunction getgroups (sfi = 0xfc4d23c5331)> (const data field 33) properties[33]
    0xfc4a1824729: [String] in OldSpace: #allowedNodeEnvironmentFlags: 0x0fc422244011 <AccessorPair> (const accessor descriptor)
    0xfc48aa4e999: [String] in OldSpace: #assert: 0x0fc4a181be99 <JSFunction deprecated (sfi = 0xfc422243a09)> (const data field 34) properties[34]
    0xfc4a1824829: [String] in OldSpace: #features: 0x0fc4a181c069 <Object map = 0xfc474330f39> (const data field 35) properties[35]
    0xfc423141cd9: [String] in OldSpace: #_fatalException: 0x0fc4a181c749 <JSFunction (sfi = 0xfc422245209)> (const data field 36) properties[36]
    0xfc4a1824909: [String] in OldSpace: #setUncaughtExceptionCaptureCallback: 0x0fc4a181c4e9 <JSFunction setUncaughtExceptionCaptureCallback (sfi = 0xfc4222449f9)> (const data field 37) properties[37]
    0xfc4a1824941: [String] in OldSpace: #hasUncaughtExceptionCaptureCallback: 0x0fc4a181c529 <JSFunction hasUncaughtExceptionCaptureCallback (sfi = 0xfc422244a51)> (const data field 38) properties[38]
    0xfc423141b61: [String] in OldSpace: #emitWarning: 0x0fc4a181ca99 <JSFunction emitWarning (sfi = 0xfc422245a49)> (const data field 39) properties[39]
    0xfc4a1824979: [String] in OldSpace: #nextTick: 0x0fc4d23d64e1 <JSFunction nextTick (sfi = 0xfc4d23c9fd9)> (const data field 40) properties[40]
    0xfc4a18249b1: [String] in OldSpace: #_tickCallback: 0x0fc4d23e4ff1 <JSFunction runNextTicks (sfi = 0xfc4d23c9f29)> (const data field 41) properties[41]
    0xfc4d23c32d9: [String] in OldSpace: #_debugProcess: 0x0fc4d23c32a1 <JSFunction _debugProcess (sfi = 0xfc4d23c3261)> (const data field 42) properties[42]
    0xfc4d23c3401: [String] in OldSpace: #_debugEnd: 0x0fc4d23c33c9 <JSFunction _debugEnd (sfi = 0xfc4d23c3389)> (const data field 43) properties[43]
    0xfc422247131: [String] in OldSpace: #_startProfilerIdleNotifier: 0x0fc422248121 <JSFunction process._startProfilerIdleNotifier (sfi = 0xfc422247b29)> (const data field 44) properties[44]
    0xfc422247161: [String] in OldSpace: #_stopProfilerIdleNotifier: 0x0fc422248159 <JSFunction process._stopProfilerIdleNotifier (sfi = 0xfc422247bc1)> (const data field 45) properties[45]
    0xfc4d23cc4d1: [String] in OldSpace: #stdout: 0x0fc422248339 <AccessorPair> (const accessor descriptor)
    0xfc4222471e9: [String] in OldSpace: #stdin: 0x0fc422248351 <AccessorPair> (const accessor descriptor)
    0xfc4d23cc4e9: [String] in OldSpace: #stderr: 0x0fc422248369 <AccessorPair> (const accessor descriptor)
    0xfc4d23c3529: [String] in OldSpace: #abort: 0x0fc4d23c34f1 <JSFunction abort (sfi = 0xfc4d23c34b1)> (const data field 46) properties[46]
    0xfc4d23c3891: [String] in OldSpace: #umask: 0x0fc4a181d3f9 <JSFunction wrappedUmask (sfi = 0xfc42224a381)> (const data field 47) properties[47]
    0xfc4d23c3771: [String] in OldSpace: #chdir: 0x0fc4a181d3b9 <JSFunction wrappedChdir (sfi = 0xfc42224a329)> (const data field 48) properties[48]
    0xfc423141971: [String] in OldSpace: #cwd: 0x0fc4a181d439 <JSFunction wrappedCwd (sfi = 0xfc42224a3d9)> (const data field 49) properties[49]
    0xfc4d23c54b1: [String] in OldSpace: #initgroups: 0x0fc4a181dad1 <JSFunction initgroups (sfi = 0xfc42224a831)> (const data field 50) properties[50]
    0xfc4d23c5a59: [String] in OldSpace: #setgroups: 0x0fc4a181db11 <JSFunction setgroups (sfi = 0xfc42224a889)> (const data field 51) properties[51]
    0xfc4d23c55d9: [String] in OldSpace: #setegid: 0x0fc4a181dbc1 <JSFunction (sfi = 0xfc42224ad79)> (const data field 52) properties[52]
    0xfc4d23c56f9: [String] in OldSpace: #seteuid: 0x0fc4a181dc31 <JSFunction (sfi = 0xfc42224ad79)> (const data field 53) properties[53]
    0xfc4d23c5819: [String] in OldSpace: #setgid: 0x0fc4a181dca1 <JSFunction (sfi = 0xfc42224ad79)> (const data field 54) properties[54]
    0xfc4d23c5939: [String] in OldSpace: #setuid: 0x0fc4a181dd11 <JSFunction (sfi = 0xfc42224ad79)> (const data field 55) properties[55]
    0xfc42224b081: [String] in OldSpace: #env: 0x0fc4a181e061 <JSObject> (const data field 56) properties[56]
 }

0xfc4a181dd51: [PropertyArray] in OldSpace
 - map: 0x0fc4c5ec24a9 <Map>
 - length: 57
 - hash: 0
           0: 0x0fc42226db79 <String[11]: "v15.0.0-pre">
           1: 0x0fc42226db99 <Object map = 0xfc474310809>
           2: 0x0fc42226dbd1 <String[3]: "x64">
           3: 0x0fc42226dbe9 <String[6]: "darwin">
           4: 0x0fc42226dc01 <Object map = 0xfc474310929>
           5: 0x0fc4d23e22a9 <JSFunction _rawDebug (sfi = 0xfc4d23c4741)>
           6: 0x0fc422268281 <JSArray[53]>
           7: 0x0fc4a18234e1 <JSFunction binding (sfi = 0xfc4a1822dc9)>
           8: 0x0fc4a1823531 <JSFunction _linkedBinding (sfi = 0xfc4a1822e21)>
           9: 0x0fc42226dc39 <Object map = 0xfc474309aa1>
          10: 2
          11: 0x0fc4c5ec1599 <undefined>
          12: 0x0fc4c5ec1769 <false>
          13: 0x0fc4231425c1 <String[7]: #process>
          14: 0x0fc4c5ec1319 <null>
          15: 0x0fc4c5ec1769 <false>
          16: 0x0fc4d23d9559 <Object map = 0xfc474321a89>
          17: 0x0fc4d23c41b9 <JSFunction dlopen (sfi = 0xfc4d23c4179)>
          18: 0x0fc4d23c43c9 <JSFunction uptime (sfi = 0xfc4d23c4389)>
          19: 0x0fc4d23c3d99 <JSFunction _getActiveRequests (sfi = 0xfc4d23c3d59)>
          20: 0x0fc4d23c3ea1 <JSFunction _getActiveHandles (sfi = 0xfc4d23c3e61)>
          21: 0x0fc4d23c42c1 <JSFunction reallyExit (sfi = 0xfc4d23c4281)>
          22: 0x0fc4d23c3fa9 <JSFunction _kill (sfi = 0xfc4d23c3f69)>
          23: 0x0fc4d23e22e9 <JSFunction cpuUsage (sfi = 0xfc4d23c4799)>
          24: 0x0fc4d23e2429 <JSFunction resourceUsage (sfi = 0xfc4d23c4951)>
          25: 0x0fc4d23e2369 <JSFunction memoryUsage (sfi = 0xfc4d23c4849)>
          26: 0x0fc4d23e23e9 <JSFunction kill (sfi = 0xfc4d23c48f9)>
          27: 0x0fc4d23e23a9 <JSFunction exit (sfi = 0xfc4d23c48a1)>
          28: 0x0fc4d23c4d19 <JSFunction process.openStdin (sfi = 0xfc4a1824d31)>
          29: 0x0fc4d23c4f51 <JSFunction getuid (sfi = 0xfc4d23c4f11)>
          30: 0x0fc4d23c5059 <JSFunction geteuid (sfi = 0xfc4d23c5019)>
          31: 0x0fc4d23c5161 <JSFunction getgid (sfi = 0xfc4d23c5121)>
          32: 0x0fc4d23c5269 <JSFunction getegid (sfi = 0xfc4d23c5229)>
          33: 0x0fc4d23c5371 <JSFunction getgroups (sfi = 0xfc4d23c5331)>
          34: 0x0fc4a181be99 <JSFunction deprecated (sfi = 0xfc422243a09)>
          35: 0x0fc4a181c069 <Object map = 0xfc474330f39>
          36: 0x0fc4a181c749 <JSFunction (sfi = 0xfc422245209)>
          37: 0x0fc4a181c4e9 <JSFunction setUncaughtExceptionCaptureCallback (sfi = 0xfc4222449f9)>
          38: 0x0fc4a181c529 <JSFunction hasUncaughtExceptionCaptureCallback (sfi = 0xfc422244a51)>
          39: 0x0fc4a181ca99 <JSFunction emitWarning (sfi = 0xfc422245a49)>
          40: 0x0fc4d23d64e1 <JSFunction nextTick (sfi = 0xfc4d23c9fd9)>
          41: 0x0fc4d23e4ff1 <JSFunction runNextTicks (sfi = 0xfc4d23c9f29)>
          42: 0x0fc4d23c32a1 <JSFunction _debugProcess (sfi = 0xfc4d23c3261)>
          43: 0x0fc4d23c33c9 <JSFunction _debugEnd (sfi = 0xfc4d23c3389)>
          44: 0x0fc422248121 <JSFunction process._startProfilerIdleNotifier (sfi = 0xfc422247b29)>
          45: 0x0fc422248159 <JSFunction process._stopProfilerIdleNotifier (sfi = 0xfc422247bc1)>
          46: 0x0fc4d23c34f1 <JSFunction abort (sfi = 0xfc4d23c34b1)>
          47: 0x0fc4a181d3f9 <JSFunction wrappedUmask (sfi = 0xfc42224a381)>
          48: 0x0fc4a181d3b9 <JSFunction wrappedChdir (sfi = 0xfc42224a329)>
          49: 0x0fc4a181d439 <JSFunction wrappedCwd (sfi = 0xfc42224a3d9)>
          50: 0x0fc4a181dad1 <JSFunction initgroups (sfi = 0xfc42224a831)>
          51: 0x0fc4a181db11 <JSFunction setgroups (sfi = 0xfc42224a889)>
          52: 0x0fc4a181dbc1 <JSFunction (sfi = 0xfc42224ad79)>
          53: 0x0fc4a181dc31 <JSFunction (sfi = 0xfc42224ad79)>
          54: 0x0fc4a181dca1 <JSFunction (sfi = 0xfc42224ad79)>
          55: 0x0fc4a181dd11 <JSFunction (sfi = 0xfc42224ad79)>
          56: 0x0fc4a181e061 <JSObject>

0xfc4a181c749: [Function] in OldSpace
 - map: 0x0fc474305e29 <Map(HOLEY_ELEMENTS)> [FastProperties]
 - prototype: 0x0fc42315d941 <JSFunction (sfi = 0xfc48aa4d8a1)>
 - elements: 0x0fc4c5ec1309 <FixedArray[0]> [HOLEY_ELEMENTS]
 - function prototype: <no-prototype-slot>
 - shared_info: 0x0fc422245209 <SharedFunctionInfo>
 - name: 0x0fc4c5ec17b1 <String[0]: #>
 - builtin: CompileLazy
 - formal_parameter_count: 2
 - kind: ArrowFunction
 - context: 0x0fc4a181c381 <FunctionContext[19]>
 - code: 0x20e18df446a1 <Code BUILTIN CompileLazy>
 - source code: (er, fromPromise) => {
    // It's possible that defaultTriggerAsyncId was set for a constructor
    // call that threw and was never cleared. So clear it now.
    clearDefaultTriggerAsyncId();

    // If diagnostic reporting is enabled, call into its handler to see
    // whether it is interested in handling the situation.
    // Ignore if the error is scoped inside a domain.
    // use == in the checks as we want to allow for null and undefined
    if (er == null || er.domain == null) {
      try {
        const report = internalBinding('report');
        if (report != null && report.shouldReportOnUncaughtException()) {
          report.writeReport(er ? er.message : 'Exception',
                             'Exception',
                             null,
                             er ? er : {});
        }
      } catch {}  // Ignore the exception. Diagnostic reporting is unavailable.
    }

    const type = fromPromise ? 'unhandledRejection' : 'uncaughtException';
    process.emit('uncaughtExceptionMonitor', er, type);
    if (exceptionHandlerState.captureFn !== null) {
      exceptionHandlerState.captureFn(er);
    } else if (!process.emit('uncaughtException', er, type)) {
      // If someone handled it, then great. Otherwise, die in C++ land
      // since that means that we'll exit the process, emit the 'exit' event.
      try {
        if (!process._exiting) {
          process._exiting = true;
          process.exitCode = 1;
          process.emit('exit', 1);
        }
      } catch {
        // Nothing to be done about it at this point.
      }
      return false;
    }

    // If we handled an error, then make sure any ticks get processed
    // by ensuring that the next Immediate cycle isn't empty.
    require('timers').setImmediate(noop);

    // Emit the after() hooks now that the exception has been handled.
    if (afterHooksExist()) {
      do {
        emitAfter(executionAsyncId());
      } while (hasAsyncIdStack());
    }
    // And completely empty the id stack, including anything that may be
    // cached on the native side.
    clearAsyncIdStack();

    return true;
  }
 - properties: 0x0fc4c5ec1309 <FixedArray[0]> {
    0xfc4c5ec49c9: [String] in ReadOnlySpace: #length: 0x0fc48aa41499 <AccessorInfo> (const accessor descriptor)
    0xfc4c5ec4b21: [String] in ReadOnlySpace: #name: 0x0fc48aa41429 <AccessorInfo> (const accessor descriptor)
 }
 - feedback vector: feedback metadata is not available in SFI

0xfc4a181c381: [Context] in OldSpace
 - map: 0x0fc474309309 <Map>
 - length: 19
 - scope_info: 0x0fc422244479 <ScopeInfo FUNCTION_SCOPE [42]>
 - previous: 0x0fc42315cf99 <NativeContext[243]>
 - native_context: 0x0fc42315cf99 <NativeContext[243]>
           0: 0x0fc422244479 <ScopeInfo FUNCTION_SCOPE [42]>
           1: 0x0fc42315cf99 <NativeContext[243]>
           2: 0x0fc4222455d9 <JSFunction internalBinding (sfi = 0xfc4a1822e79)>
           3: 0x0fc42224acd1 <process map = 0xfc474331dd9>
           4: 0x0fc422244439 <JSFunction nativeModuleRequire (sfi = 0xfc4a1822d31)>
           5: 0x0fc4a180f3b9 <Object map = 0xfc47432b029>
           6: 0x0fc42224b0e1 <JSFunction NodeError (sfi = 0xfc4a182df49)>
           7: 0x0fc422265089 <JSFunction NodeError (sfi = 0xfc4a182df49)>
           8: 0x0fc422264709 <JSFunction NodeError (sfi = 0xfc4a182df49)>
           9: 0x0fc4d23e2529 <JSFunction executionAsyncId (sfi = 0xfc4d23c79d1)>
          10: 0x0fc4d23e7941 <JSFunction clearDefaultTriggerAsyncId (sfi = 0xfc4d23c7501)>
          11: 0x0fc4d23c84e1 <JSFunction clearAsyncIdStack (sfi = 0xfc4d23c84a1)>
          12: 0x0fc4d23e45f1 <JSFunction hasAsyncIdStack (sfi = 0xfc4d23c78c9)>
          13: 0x0fc4d23e5e61 <JSFunction afterHooksExist (sfi = 0xfc4d23c76b9)>
          14: 0x0fc4d23e4571 <JSFunction emitAfterScript (sfi = 0xfc4d23c7819)>
          15: 0x0fc422242641 <Uint32Array map = 0xfc4743083d9>
          16: 0x0fc4a181c429 <JSFunction tryGetCwd (sfi = 0xfc4222446f1)>
          17: 0x0fc4a181c5e9 <Object map = 0xfc474330fc9>
          18: 0x0fc4a181c569 <JSFunction noop (sfi = 0xfc422244aa9)>

0xfc4d23e2529: [Function] in OldSpace
 - map: 0x0fc474305eb9 <Map(HOLEY_ELEMENTS)> [FastProperties]
 - prototype: 0x0fc42315d941 <JSFunction (sfi = 0xfc48aa4d8a1)>
 - elements: 0x0fc4c5ec1309 <FixedArray[0]> [HOLEY_ELEMENTS]
 - function prototype: 
 - initial_map: 
 - shared_info: 0x0fc4d23c79d1 <SharedFunctionInfo executionAsyncId>
 - name: 0x0fc4d23c64c9 <String[16]: #executionAsyncId>
 - builtin: CompileLazy
 - formal_parameter_count: 0
 - kind: NormalFunction
 - context: 0x0fc4d23e3651 <FunctionContext[67]>
 - code: 0x20e18df446a1 <Code BUILTIN CompileLazy>
 - source code: () {
  return async_id_fields[kExecutionAsyncId];
}
 - properties: 0x0fc4c5ec1309 <FixedArray[0]> {
    0xfc4c5ec49c9: [String] in ReadOnlySpace: #length: 0x0fc48aa41499 <AccessorInfo> (const accessor descriptor)
    0xfc4c5ec4b21: [String] in ReadOnlySpace: #name: 0x0fc48aa41429 <AccessorInfo> (const accessor descriptor)
    0xfc4c5ec4e09: [String] in ReadOnlySpace: #prototype: 0x0fc48aa41509 <AccessorInfo> (const accessor descriptor)
 }
 - feedback vector: feedback metadata is not available in SFI

0xfc4d23e3651: [Context] in OldSpace
 - map: 0x0fc474309309 <Map>
 - length: 67
 - scope_info: 0x0fc4d23c6969 <ScopeInfo FUNCTION_SCOPE [138]>
 - previous: 0x0fc42315cf99 <NativeContext[243]>
 - native_context: 0x0fc42315cf99 <NativeContext[243]>
           0: 0x0fc4d23c6969 <ScopeInfo FUNCTION_SCOPE [138]>
           1: 0x0fc42315cf99 <NativeContext[243]>
           2: 0x0fc42224acd1 <process map = 0xfc474331dd9>
           3: 0x0fc422244439 <JSFunction nativeModuleRequire (sfi = 0xfc4a1822d31)>
           4: 0x0fc42226c921 <JSFunction (sfi = 0xfc4a18200d9)>
           5: 0x0fc423160d01 <JSFunction Error (sfi = 0xfc48aa50681)>
           6: 0x0fc42226d6a9 <JSFunction (sfi = 0xfc4a18200d9)>
           7: 0x0fc42224cea9 <JSFunction (sfi = 0xfc4a18200d9)>
           8: 0x0fc42315e209 <JSFunction defineProperty (sfi = 0xfc48aa4e011)>
           9: 0x0fc423165989 <JSFunction Promise (sfi = 0xfc48aa54171)>
          10: 0x0fc42316c731 <JSFunction apply (sfi = 0xfc48aa57919)>
          11: 0x0fc4d23e25a9 <JSObject>
          12: 0x0fc422244321 <Uint32Array map = 0xfc4743083d9>
          13: 0x0fc422247301 <Float64Array map = 0xfc4743068d9>
          14: 0x0fc4d23d3439 <JSArray[0]>
          15: 0x0fc4d23c81c9 <JSFunction pushAsyncContext (sfi = 0xfc4d23c8189)>
          16: 0x0fc4d23c82d1 <JSFunction popAsyncContext (sfi = 0xfc4d23c8291)>
          17: 0x0fc4d23c83d9 <JSFunction executionAsyncResource (sfi = 0xfc4d23c8399)>
          18: 0x0fc4d23c8719 <JSFunction enablePromiseHook (sfi = 0xfc4d23c86d9)>
          19: 0x0fc4d23c8821 <JSFunction disablePromiseHook (sfi = 0xfc4d23c87e1)>
          20: 0x0fc4d23df1f1 <Object map = 0xfc474325239>
          21: 0x0fc4d23c8e11 <JSFunction enqueueMicrotask (sfi = 0xfc4d23c8dd1)>
          22: 0x0fc423141599 <Symbol: resource_symbol>
          23: 0
          24: 1
          25: 2
          26: 3
          27: 4
          28: 6
          29: 0
          30: 2
          31: 1
          32: 3
          33: 7
          34: 8
          35: 0x0fc423141331 <Symbol: async_id_symbol>
          36: 0x0fc4231415d9 <Symbol: trigger_async_id_symbol>
          37: 0x0fc4d23c9341 <Symbol: init>
          38: 0x0fc4d23ded91 <JSBoundFunction (BoundTargetFunction 0xfc4d23ce6e1)>
          39: 0x0fc4d23de761 <JSBoundFunction (BoundTargetFunction 0xfc4d23ce6e1)>
          40: 0x0fc4d23de7c1 <JSBoundFunction (BoundTargetFunction 0xfc4d23ce6e1)>
          41: 0x0fc4c5ec1599 <undefined>
          42: 0x0fc4d23d7899 <Object map = 0xfc474305e71>
          43: 0x0fc4d23d3041 <JSFunction fatalError (sfi = 0xfc4d23c6ed1)>
          44: 0x0fc4d23d3081 <JSFunction lookupPublicResource (sfi = 0xfc4d23c6f29)>
          45: 0x0fc4d23ce6a1 <JSFunction emitInitNative (sfi = 0xfc4d23c6f81)>
          46: 0x0fc4d23ce6e1 <JSFunction emitHook (sfi = 0xfc4d23c6fd9)>
          47: 0x0fc4d23cb851 <JSFunction storeActiveHooks (sfi = 0xfc4d23c70e1)>
          48: 0x0fc42315ea31 <JSFunction copyHooks (sfi = 0xfc4d23c7139)>
          49: 0x0fc42315ea71 <JSFunction restoreActiveHooks (sfi = 0xfc4d23c7191)>
          50: 0x0fc423177bd9 <JSFunction trackPromise (sfi = 0xfc4d23c71e9)>
          51: 0x0fc423177c19 <JSFunction fastPromiseHook (sfi = 0xfc4d23c7241)>
          52: 0x0fc4c5ec1769 <false>
          53: -1
          54: 0x0fc4d23cd4c1 <JSFunction disablePromiseHookIfNecessary (sfi = 0xfc4d23c73a1)>
          55: 0x0fc4d23e7881 <JSFunction newAsyncId (sfi = 0xfc4d23c73f9)>
          56: 0x0fc4d23e78c1 <JSFunction getOrSetAsyncId (sfi = 0xfc4d23c7451)>
          57: 0x0fc4d23e7901 <JSFunction getDefaultTriggerAsyncId (sfi = 0xfc4d23c74a9)>
          58: 0x0fc4d23e6669 <JSFunction hasHooks (sfi = 0xfc4d23c75b1)>
          59: 0x0fc4d23e66a9 <JSFunction enabledHooksExist (sfi = 0xfc4d23c7609)>
          60: 0x0fc4d23e66e9 <JSFunction initHooksExist (sfi = 0xfc4d23c7661)>
          61: 0x0fc4d23e5ea1 <JSFunction destroyHooksExist (sfi = 0xfc4d23c7711)>
          62: 0x0fc4d23e5ee1 <JSFunction emitInitScript (sfi = 0xfc4d23c7769)>
          63: 0x0fc4d23e5f21 <JSFunction emitBeforeScript (sfi = 0xfc4d23c77c1)>
          64: 0x0fc4d23e4631 <JSFunction pushAsyncContext (sfi = 0xfc4d23c7921)>
          65: 0x0fc4d23e24e9 <JSFunction popAsyncContext (sfi = 0xfc4d23c7979)>
          66: 0x0fc4d23e2529 <JSFunction executionAsyncId (sfi = 0xfc4d23c79d1)>

0xfc422244321: [JSTypedArray] in OldSpace
 - map: 0x0fc4743083d9 <Map(UINT32ELEMENTS)> [FastProperties]
 - prototype: 0x0fc42316c909 <Object map = 0xfc474308421>
 - elements: 0x0fc4c5ec2e49 <ByteArray[0]> [UINT32ELEMENTS]
 - embedder fields: 2
 - buffer: 0x0fc422267e51 <ArrayBuffer map = 0xfc4743086f1>
 - byte_offset: 0
 - byte_length: 36
 - length: 9
 - data_ptr: 0x2
   - base_pointer: 0x0
   - external_pointer: 0x2
 - properties: 0x0fc4c5ec1309 <FixedArray[0]> {}
 - elements: 0x0fc4c5ec2e49 <ByteArray[0]> {

@joyeecheung
Copy link
Member

I dug around a bit and it looks like it's not related to the global uncaught exception handler after all. As long as the serializer reaches a Uint32Array in the closure of getDefaultTriggerAsyncId or executionAsyncId (pretty sure it's async_hook_fields), it tries to obtain a back reference to it and that back reference is somehow invalid. Still looking into why that's the case..

@targos
Copy link
Member Author

targos commented Oct 19, 2020

This is affecting V8 8.7: nodejs/node#35700 (comment)

@joyeecheung
Copy link
Member

Maybe it would be easier to fix if we find the V8 commit where this starts to fail. Is there a way to automate bisect between two V8 versions with Node? Or do you have closer hashes other than v8.6 and v8.7? @targos

@targos
Copy link
Member Author

targos commented Oct 20, 2020

I do not have a way to bisect V8 versions with Node. The only additional info I can give you is that the oldest CI run with canary, which was on Sep 15, 2020, already showed that failure.

It gives us this commit range, if I compare from the point of 8.6 branch to Sep 16: v8/v8@a626bc0...c73ca67

@joyeecheung
Copy link
Member

From the CI this also at least showed up on Sep 11, do you remember the last good commit of this?

@joyeecheung
Copy link
Member

joyeecheung commented Oct 20, 2020

Oh, wait, the last good commit should be a626bc036236c9bf92ac7b87dc40c9e538b087e3. This gives us v8/v8@a626bc0...86e5f1a

@targos
Copy link
Member Author

targos commented Oct 20, 2020

@joyeecheung where did you find this? I can only go back to Sep 15 in the history

@joyeecheung
Copy link
Member

@targos
Copy link
Member Author

targos commented Oct 20, 2020

Still a lot of candidates :(

@joyeecheung
Copy link
Member

How can I pull the source code of node canary (if the build file works) for a given V8 hash or a build on a particular day to build and test it? If we are lucky we just need to test 5 builds.

@targos
Copy link
Member Author

targos commented Oct 20, 2020

If GitHub doesn't garbage collect the commits (we do not tag them, maybe we should?), you can find the commit hashes here: https://nodejs.org/download/v8-canary/

For example, with the build from Sep 01:

@targos
Copy link
Member Author

targos commented Oct 20, 2020

That doesn't give you the V8 hash though, only the canary hash. At least this way you can reduce the list based on the day canary was updated

@joyeecheung
Copy link
Member

This might be related to https://chromium-review.googlesource.com/c/v8/v8/+/2418101 - there are a bunch of relands and reverts of these CLs, so simply bisecting might not be useful

@joyeecheung
Copy link
Member

The source can't be checked out from the command line with the hash. It's available on the website as tarball though

@gengjiawen
Copy link
Member

Maybe worthing add debug build to V8 canary workflow like nodejs/node#35721.

@joyeecheung
Copy link
Member

joyeecheung commented Oct 21, 2020

I get

+ PATH=/Users/joyee/_depot_tools:/Users/joyee/projects/node-v8/out/tools/bin:/Users/joyee/Library/Python/2.7/bin:/Users/joyee/.nvs/default/bin:/usr/local/Cellar/gpatch/2.7.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/MacGPG2/bin:/Users/joyee/projects/depot_tools
+ tools/dev/v8gen.py x64.debug --no-goma
Traceback (most recent call last):
  File "tools/dev/v8gen.py", line 57, in <module>
    import mb
  File "/Users/joyee/projects/node-v8/deps/v8/tools/mb/mb.py", line 30, in <module>
    import urllib2
ModuleNotFoundError: No module named 'urllib2'
make: *** [v8] Error 1

When I run make v8 on canary locally (it works fine if I cd into deps/v8 and run tools/dev/v8gen.py myself though) and I get

Node.js configure: Found Python 3.7.1...
Traceback (most recent call last):
  File "./configure", line 24, in <module>
    import configure
  File "/Users/joyee/projects/test-node-v8/node-v15.0.0-v8-canary20200901482f91b93a/configure.py", line 31, in <module>
    from gyp.common import GetFlavor
ModuleNotFoundError: No module named 'gyp'

When I ./configure in the decompressed tarball

@cclauss
Copy link

cclauss commented Oct 21, 2020

Oops... You still are running Python 2. https://docs.python.org/2.7/library/urllib2.html should be builtin.

Please do python --version

urllib2 was removed in Python 3. python3 -m 2to3 -f urllib example.py

For the second one python3 -m pip install gyp-next

@joyeecheung
Copy link
Member

@cclauss Thanks, I wonder if we could add our python 3 locating code in configure to the make v8 target somehow so that it also tries whichever python3 found locally..(although IIRC, depot_tools already contains a copy of python? not sure why it's not used)

@gengjiawen
Copy link
Member

ModuleNotFoundError: No module named 'gyp'
When I ./configure in the decompressed tarball

The gyp is in tools/gyp, it's not bundled in tarball ?

@joyeecheung
Copy link
Member

@gengjiawen I redownloaded the tarball and it worked, maybe that wasn't a proper tarball in the first place, sorry

@joyeecheung
Copy link
Member

joyeecheung commented Oct 22, 2020

I bisected the range to v8/v8@8.7.75...8.7.80 which includes the patches mentioned in #175 (comment) I wonder if we can just relax the DCHECK because the release build seems to work just fine...still verifying the fix

@joyeecheung
Copy link
Member

joyeecheung commented Oct 27, 2020

Update: looks like we'd need to make objects with embedder fields that have pending forward references work in the context serializer instead of just ignoring the back reference check. Before v8/v8@76d684c they worked as deferred objects with valid back references, and after they don't. Not sure why it wasn't caught in the V8 test suite (but again, similar to the filler map processing in https://chromium-review.googlesource.com/c/v8/v8/+/2212085 it's difficult to reproduce an object graph that would precisely trigger this bug, so we probably just have to watch out for the integration on our side)

@joyeecheung
Copy link
Member

By the way before the fix can be backported, you can still use the debug build if you just disable our own snapshot with the configure option --without-node-snapshot

@targos
Copy link
Member Author

targos commented Oct 29, 2020

By the way before the fix can be backported

Which fix?

@joyeecheung
Copy link
Member

joyeecheung commented Oct 29, 2020

@targos I should've typed "a fix" (trying to work it out..or maybe more because serializer patches tend to take multiple relands)

@joyeecheung
Copy link
Member

joyeecheung commented Nov 11, 2020

I think I was overthinking and simply avoiding deferring embedder objects instead of trying to add support for it should do the trick

diff --git a/deps/v8/src/snapshot/serializer-deserializer.cc b/deps/v8/src/snapshot/serializer-deserializer.cc
index afa41e7d03..b05c2f574b 100644
--- a/deps/v8/src/snapshot/serializer-deserializer.cc
+++ b/deps/v8/src/snapshot/serializer-deserializer.cc
@@ -36,7 +36,8 @@ bool SerializerDeserializer::CanBeDeferred(HeapObject o) {
   // references to the now-thin string will already have been written.
   // TODO(leszeks): Could we defer string serialization if forward references
   // were resolved after object post processing?
-  return !o.IsMap() && !o.IsInternalizedString();
+  return !o.IsMap() && !o.IsInternalizedString() &&
+    !(o.IsJSObject() && JSObject::cast(o).GetEmbedderFieldCount() > 0);
 }

 void SerializerDeserializer::RestoreExternalReferenceRedirector(

CI: https://ci.nodejs.org/job/node-test-commit-v8-linux/3548/ and https://ci.nodejs.org/job/node-test-commit/42161/ https://chromium-review.googlesource.com/c/v8/v8/+/2531195 , https://ci.nodejs.org/job/node-test-commit/42168/ and https://ci.nodejs.org/job/node-test-commit-linux-containered/23465/ (it seems the original base was broken anyway so I changed the base to where nodejs/node#35700 was when the CI there was green other than the debug failure)

@camillobruni
Copy link

Funny that I just find this now :)
We just debugged the very same issue yesterday coming to the same conclusion, reported here: https://crbug.com/v8/11146

@joyeecheung
Copy link
Member

https://chromium-review.googlesource.com/c/v8/v8/+/2531195 has been merged. We can wait for a day or two so that more bots in the upstream verifies it before we can backport it (I think this fix should be simple enough to not regress though)

pull bot pushed a commit to ashu8912/v8 that referenced this issue Nov 11, 2020
JS objects with embedder fields cannot be deferred because the
serialize/deserialize callbacks need the back reference immediately
to identify the object.

Refs: nodejs/node-v8#175
Bug: v8:11146
Change-Id: I4292f2ab0041f7b0779620437ed26905c194cd9b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2531195
Reviewed-by: Jakob Gruber <[email protected]>
Commit-Queue: Joyee Cheung <[email protected]>
Cr-Commit-Position: refs/heads/master@{#71134}
@targos
Copy link
Member Author

targos commented Nov 12, 2020

I pushed the fix to nodejs/node#35700. Let's see how it goes.

targos added a commit to targos/node that referenced this issue Nov 15, 2020
Original commit message:

    [serializer] avoid deferring objects with embedder fields

    JS objects with embedder fields cannot be deferred because the
    serialize/deserialize callbacks need the back reference immediately
    to identify the object.

    Refs: nodejs/node-v8#175
    Bug: v8:11146
    Change-Id: I4292f2ab0041f7b0779620437ed26905c194cd9b
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2531195
    Reviewed-by: Jakob Gruber <[email protected]>
    Commit-Queue: Joyee Cheung <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#71134}

Refs: v8/v8@821fb38

PR-URL: nodejs#35700
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Shelley Vohr <[email protected]>
targos added a commit to targos/node that referenced this issue Nov 19, 2020
Original commit message:

    [serializer] avoid deferring objects with embedder fields

    JS objects with embedder fields cannot be deferred because the
    serialize/deserialize callbacks need the back reference immediately
    to identify the object.

    Refs: nodejs/node-v8#175
    Bug: v8:11146
    Change-Id: I4292f2ab0041f7b0779620437ed26905c194cd9b
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2531195
    Reviewed-by: Jakob Gruber <[email protected]>
    Commit-Queue: Joyee Cheung <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#71134}

Refs: v8/v8@821fb38

PR-URL: nodejs#35700
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Shelley Vohr <[email protected]>
targos added a commit to targos/node that referenced this issue Nov 29, 2020
Original commit message:

    [serializer] avoid deferring objects with embedder fields

    JS objects with embedder fields cannot be deferred because the
    serialize/deserialize callbacks need the back reference immediately
    to identify the object.

    Refs: nodejs/node-v8#175
    Bug: v8:11146
    Change-Id: I4292f2ab0041f7b0779620437ed26905c194cd9b
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2531195
    Reviewed-by: Jakob Gruber <[email protected]>
    Commit-Queue: Joyee Cheung <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#71134}

Refs: v8/v8@821fb38

PR-URL: nodejs#35700
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Shelley Vohr <[email protected]>
cjihrig pushed a commit to cjihrig/node that referenced this issue Dec 6, 2020
Original commit message:

    [serializer] avoid deferring objects with embedder fields

    JS objects with embedder fields cannot be deferred because the
    serialize/deserialize callbacks need the back reference immediately
    to identify the object.

    Refs: nodejs/node-v8#175
    Bug: v8:11146
    Change-Id: I4292f2ab0041f7b0779620437ed26905c194cd9b
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2531195
    Reviewed-by: Jakob Gruber <[email protected]>
    Commit-Queue: Joyee Cheung <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#71134}

Refs: v8/v8@821fb38

PR-URL: nodejs#35700
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Shelley Vohr <[email protected]>
targos added a commit to targos/node that referenced this issue Jan 8, 2021
Original commit message:

    [serializer] avoid deferring objects with embedder fields

    JS objects with embedder fields cannot be deferred because the
    serialize/deserialize callbacks need the back reference immediately
    to identify the object.

    Refs: nodejs/node-v8#175
    Bug: v8:11146
    Change-Id: I4292f2ab0041f7b0779620437ed26905c194cd9b
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2531195
    Reviewed-by: Jakob Gruber <[email protected]>
    Commit-Queue: Joyee Cheung <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#71134}

Refs: v8/v8@821fb38

PR-URL: nodejs#35700
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Shelley Vohr <[email protected]>
targos added a commit to targos/node that referenced this issue Jan 25, 2021
Original commit message:

    [serializer] avoid deferring objects with embedder fields

    JS objects with embedder fields cannot be deferred because the
    serialize/deserialize callbacks need the back reference immediately
    to identify the object.

    Refs: nodejs/node-v8#175
    Bug: v8:11146
    Change-Id: I4292f2ab0041f7b0779620437ed26905c194cd9b
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2531195
    Reviewed-by: Jakob Gruber <[email protected]>
    Commit-Queue: Joyee Cheung <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#71134}

Refs: v8/v8@821fb38

PR-URL: nodejs#35700
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Shelley Vohr <[email protected]>
targos added a commit to targos/node that referenced this issue Feb 7, 2021
Original commit message:

    [serializer] avoid deferring objects with embedder fields

    JS objects with embedder fields cannot be deferred because the
    serialize/deserialize callbacks need the back reference immediately
    to identify the object.

    Refs: nodejs/node-v8#175
    Bug: v8:11146
    Change-Id: I4292f2ab0041f7b0779620437ed26905c194cd9b
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2531195
    Reviewed-by: Jakob Gruber <[email protected]>
    Commit-Queue: Joyee Cheung <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#71134}

Refs: v8/v8@821fb38

PR-URL: nodejs#35700
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Shelley Vohr <[email protected]>
targos added a commit to targos/node that referenced this issue Feb 11, 2021
Original commit message:

    [serializer] avoid deferring objects with embedder fields

    JS objects with embedder fields cannot be deferred because the
    serialize/deserialize callbacks need the back reference immediately
    to identify the object.

    Refs: nodejs/node-v8#175
    Bug: v8:11146
    Change-Id: I4292f2ab0041f7b0779620437ed26905c194cd9b
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2531195
    Reviewed-by: Jakob Gruber <[email protected]>
    Commit-Queue: Joyee Cheung <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#71134}

Refs: v8/v8@821fb38

PR-URL: nodejs#35700
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Shelley Vohr <[email protected]>
targos added a commit to targos/node that referenced this issue Feb 11, 2021
Original commit message:

    [serializer] avoid deferring objects with embedder fields

    JS objects with embedder fields cannot be deferred because the
    serialize/deserialize callbacks need the back reference immediately
    to identify the object.

    Refs: nodejs/node-v8#175
    Bug: v8:11146
    Change-Id: I4292f2ab0041f7b0779620437ed26905c194cd9b
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2531195
    Reviewed-by: Jakob Gruber <[email protected]>
    Commit-Queue: Joyee Cheung <[email protected]>
    Cr-Commit-Position: refs/heads/master@{#71134}

Refs: v8/v8@821fb38

PR-URL: nodejs#35700
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Shelley Vohr <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants