Got the same problem And here is what I found: 
 
The root cause is that the ReadOnlyHeap section in snapshot do not match 
between the one creating codecache and the one loading codecache. 
CodeSerializer encodes readonly objects as chunk-index/offset of the 
ReadOnlySpace, so decoding codecache against unmatched snapshot would cause 
error. 
 
And the unmatch is caused by Heap::single_character_string_cache(), the 
content of this cache vary depending on scripts runned by SnapshotCreator. 
When StartupSerializer visits single_character_string_cache, it calls 
SerializeUsingReadOnlyObjectCache to serialize readonly objects. So the 
order of 
readonly objects varies. 
 
Here is a patch I think would mitigate this problem. 
 
diff --git a/src/snapshot/read-only-serializer.cc 
b/src/snapshot/read-only-serializer.cc 
index 06c5094782..1e13232150 100644 
--- a/src/snapshot/read-only-serializer.cc 
+++ b/src/snapshot/read-only-serializer.cc 
@@ -66,6 +66,23 @@ void 
ReadOnlySerializer::SerializeObjectImpl(Handle<HeapObject> obj) { 
 #endif 
 } 
  
+namespace { 
+ 
+void ResetSingleCharacterStringCache(Isolate* isolate) { 
+  DisallowGarbageCollection no_gc; 
+  FixedArray cache = isolate->heap()->single_character_string_cache(); 
+  HeapObject undefined = ReadOnlyRoots(isolate).undefined_value(); 
+ 
+  for (int i = 0; i < cache.length(); ++i) { 
+    HeapObject obj = HeapObject::cast(cache.get(i)); 
+    if (ReadOnlyHeap::Contains(obj) && obj.IsInternalizedString()) { 
+      cache.set(i, undefined); 
+    } 
+  } 
+} 
+ 
+} 
+ 
 void ReadOnlySerializer::SerializeReadOnlyRoots() { 
   // No active threads. 
   CHECK_NULL(isolate()->thread_manager()->FirstThreadStateInUse()); 
@@ -73,6 +90,8 @@ void ReadOnlySerializer::SerializeReadOnlyRoots() { 
   CHECK_IMPLIES(!allow_active_isolate_for_testing(), 
                 isolate()->handle_scope_implementer()->blocks()->empty()); 
  
+  ResetSingleCharacterStringCache(isolate()); 
+ 
   ReadOnlyRoots(isolate()).Iterate(this); 
 } 


On Monday, November 23, 2020 at 1:49:00 PM UTC+8 [email protected] wrote:

> I try to use both snapshot and codecache to reduce page load time. All 
> going well when I use snapshot or codecache alone. However, when I create 
> codecache for index.js with an engine without snapshot first, then create 
> snapshot for startup.js, then create an engine loading index.js with both 
> snapshot and codecache, crash occurs. Here is stacktrace:
>
> [image: Pasted Graphic.png]
>
> com.facebook.react.JavaScript (61)#0 0x000000010c7f9a16 in bool 
> v8::internal::IsInRange<v8::internal::InstanceType, 
> v8::internal::InstanceType>(v8::internal::InstanceType, 
> v8::internal::InstanceType, v8::internal::InstanceType) [inlined] at 
> /Volumes/EXTREME SSD/Documents/depot_tools/v8/v8/src/utils/utils.h:69
>
> #1 0x000000010c7f9a16 in 
> v8::internal::InstanceTypeChecker::IsString(v8::internal::InstanceType) 
> [inlined] at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/objects/instance-type-inl.h:33
>
> #2 0x000000010c7f9a16 in 
> v8::internal::HeapObject::IsString(v8::internal::Isolate*) const [inlined] 
> at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/objects/instance-type-inl.h:64
>
> #3 0x000000010c7f9a12 in 
> v8::internal::HeapObject::IsThinString(v8::internal::Isolate*) const 
> [inlined] at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/objects/objects-inl.h:205
>
> #4 0x000000010c7f9a12 in v8::internal::HeapObject::IsThinString() const 
> [inlined] at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/objects/objects-inl.h:204
>
> #5 0x000000010c7f9a12 in 
> v8::internal::Deserializer::GetBackReferencedObject(v8::internal::SnapshotSpace)
>  
> at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:364
>
> #6 0x000000010c7f89b8 in v8::internal::FullMaybeObjectSlot 
> v8::internal::Deserializer::ReadDataCase<v8::internal::FullMaybeObjectSlot, 
> (v8::internal::SerializerDeserializer::Bytecode)8, 
> (v8::internal::SnapshotSpace)6>(v8::internal::Isolate*, 
> v8::internal::FullMaybeObjectSlot, unsigned long, unsigned char, bool) 
> [inlined] at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:813
>
> #7 0x000000010c7f899a in bool 
> v8::internal::Deserializer::ReadData<v8::internal::FullMaybeObjectSlot>(v8::internal::FullMaybeObjectSlot,
>  
> v8::internal::FullMaybeObjectSlot, v8::internal::SnapshotSpace, unsigned 
> long) at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:579
>
> #8 0x000000010c7faa8d in 
> v8::internal::Deserializer::ReadObject(v8::internal::SnapshotSpace) at 
> /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:394
>
> #9 0x000000010c7f89d4 in v8::internal::FullMaybeObjectSlot 
> v8::internal::Deserializer::ReadDataCase<v8::internal::FullMaybeObjectSlot, 
> (v8::internal::SerializerDeserializer::Bytecode)0, 
> (v8::internal::SnapshotSpace)6>(v8::internal::Isolate*, 
> v8::internal::FullMaybeObjectSlot, unsigned long, unsigned char, bool) 
> [inlined] at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:810
>
> #10 0x000000010c7f89ba in bool 
> v8::internal::Deserializer::ReadData<v8::internal::FullMaybeObjectSlot>(v8::internal::FullMaybeObjectSlot,
>  
> v8::internal::FullMaybeObjectSlot, v8::internal::SnapshotSpace, unsigned 
> long) at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:576
>
> #11 0x000000010c7faa8d in 
> v8::internal::Deserializer::ReadObject(v8::internal::SnapshotSpace) at 
> /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:394
>
> #12 0x000000010c7f89d4 in v8::internal::FullMaybeObjectSlot 
> v8::internal::Deserializer::ReadDataCase<v8::internal::FullMaybeObjectSlot, 
> (v8::internal::SerializerDeserializer::Bytecode)0, 
> (v8::internal::SnapshotSpace)6>(v8::internal::Isolate*, 
> v8::internal::FullMaybeObjectSlot, unsigned long, unsigned char, bool) 
> [inlined] at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:810
>
> #13 0x000000010c7f89ba in bool 
> v8::internal::Deserializer::ReadData<v8::internal::FullMaybeObjectSlot>(v8::internal::FullMaybeObjectSlot,
>  
> v8::internal::FullMaybeObjectSlot, v8::internal::SnapshotSpace, unsigned 
> long) at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:576
>
> #14 0x000000010c7faa8d in 
> v8::internal::Deserializer::ReadObject(v8::internal::SnapshotSpace) at 
> /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:394
>
> #15 0x000000010c7f89d4 in v8::internal::FullMaybeObjectSlot 
> v8::internal::Deserializer::ReadDataCase<v8::internal::FullMaybeObjectSlot, 
> (v8::internal::SerializerDeserializer::Bytecode)0, 
> (v8::internal::SnapshotSpace)6>(v8::internal::Isolate*, 
> v8::internal::FullMaybeObjectSlot, unsigned long, unsigned char, bool) 
> [inlined] at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:810
>
> #16 0x000000010c7f89ba in bool 
> v8::internal::Deserializer::ReadData<v8::internal::FullMaybeObjectSlot>(v8::internal::FullMaybeObjectSlot,
>  
> v8::internal::FullMaybeObjectSlot, v8::internal::SnapshotSpace, unsigned 
> long) at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:576
>
> #17 0x000000010c7faa8d in 
> v8::internal::Deserializer::ReadObject(v8::internal::SnapshotSpace) at 
> /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:394
>
> #18 0x000000010c7f89d4 in v8::internal::FullMaybeObjectSlot 
> v8::internal::Deserializer::ReadDataCase<v8::internal::FullMaybeObjectSlot, 
> (v8::internal::SerializerDeserializer::Bytecode)0, 
> (v8::internal::SnapshotSpace)6>(v8::internal::Isolate*, 
> v8::internal::FullMaybeObjectSlot, unsigned long, unsigned char, bool) 
> [inlined] at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:810
>
> #19 0x000000010c7f89ba in bool 
> v8::internal::Deserializer::ReadData<v8::internal::FullMaybeObjectSlot>(v8::internal::FullMaybeObjectSlot,
>  
> v8::internal::FullMaybeObjectSlot, v8::internal::SnapshotSpace, unsigned 
> long) at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:576
>
> #20 0x000000010c7faa8d in 
> v8::internal::Deserializer::ReadObject(v8::internal::SnapshotSpace) at 
> /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:394
>
> #21 0x000000010c7f89d4 in v8::internal::FullMaybeObjectSlot 
> v8::internal::Deserializer::ReadDataCase<v8::internal::FullMaybeObjectSlot, 
> (v8::internal::SerializerDeserializer::Bytecode)0, 
> (v8::internal::SnapshotSpace)6>(v8::internal::Isolate*, 
> v8::internal::FullMaybeObjectSlot, unsigned long, unsigned char, bool) 
> [inlined] at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:810
>
> #22 0x000000010c7f89ba in bool 
> v8::internal::Deserializer::ReadData<v8::internal::FullMaybeObjectSlot>(v8::internal::FullMaybeObjectSlot,
>  
> v8::internal::FullMaybeObjectSlot, v8::internal::SnapshotSpace, unsigned 
> long) at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:576
>
> #23 0x000000010c7faa8d in 
> v8::internal::Deserializer::ReadObject(v8::internal::SnapshotSpace) at 
> /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:394
>
> #24 0x000000010c7f89d4 in v8::internal::FullMaybeObjectSlot 
> v8::internal::Deserializer::ReadDataCase<v8::internal::FullMaybeObjectSlot, 
> (v8::internal::SerializerDeserializer::Bytecode)0, 
> (v8::internal::SnapshotSpace)6>(v8::internal::Isolate*, 
> v8::internal::FullMaybeObjectSlot, unsigned long, unsigned char, bool) 
> [inlined] at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:810
>
> #25 0x000000010c7f89ba in bool 
> v8::internal::Deserializer::ReadData<v8::internal::FullMaybeObjectSlot>(v8::internal::FullMaybeObjectSlot,
>  
> v8::internal::FullMaybeObjectSlot, v8::internal::SnapshotSpace, unsigned 
> long) at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:576
>
> #26 0x000000010c7faa8d in 
> v8::internal::Deserializer::ReadObject(v8::internal::SnapshotSpace) at 
> /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:394
>
> #27 0x000000010c7f89d4 in v8::internal::FullMaybeObjectSlot 
> v8::internal::Deserializer::ReadDataCase<v8::internal::FullMaybeObjectSlot, 
> (v8::internal::SerializerDeserializer::Bytecode)0, 
> (v8::internal::SnapshotSpace)6>(v8::internal::Isolate*, 
> v8::internal::FullMaybeObjectSlot, unsigned long, unsigned char, bool) 
> [inlined] at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:810
>
> #28 0x000000010c7f89ba in bool 
> v8::internal::Deserializer::ReadData<v8::internal::FullMaybeObjectSlot>(v8::internal::FullMaybeObjectSlot,
>  
> v8::internal::FullMaybeObjectSlot, v8::internal::SnapshotSpace, unsigned 
> long) at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:576
>
> #29 0x000000010c7faa8d in 
> v8::internal::Deserializer::ReadObject(v8::internal::SnapshotSpace) at 
> /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:394
>
> #30 0x000000010c7f89d4 in v8::internal::FullMaybeObjectSlot 
> v8::internal::Deserializer::ReadDataCase<v8::internal::FullMaybeObjectSlot, 
> (v8::internal::SerializerDeserializer::Bytecode)0, 
> (v8::internal::SnapshotSpace)6>(v8::internal::Isolate*, 
> v8::internal::FullMaybeObjectSlot, unsigned long, unsigned char, bool) 
> [inlined] at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:810
>
> #31 0x000000010c7f89ba in bool 
> v8::internal::Deserializer::ReadData<v8::internal::FullMaybeObjectSlot>(v8::internal::FullMaybeObjectSlot,
>  
> v8::internal::FullMaybeObjectSlot, v8::internal::SnapshotSpace, unsigned 
> long) at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:576
>
> #32 0x000000010c7faa8d in 
> v8::internal::Deserializer::ReadObject(v8::internal::SnapshotSpace) at 
> /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:394
>
> #33 0x000000010c7f89d4 in v8::internal::FullMaybeObjectSlot 
> v8::internal::Deserializer::ReadDataCase<v8::internal::FullMaybeObjectSlot, 
> (v8::internal::SerializerDeserializer::Bytecode)0, 
> (v8::internal::SnapshotSpace)6>(v8::internal::Isolate*, 
> v8::internal::FullMaybeObjectSlot, unsigned long, unsigned char, bool) 
> [inlined] at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:810
>
> #34 0x000000010c7f89ba in bool 
> v8::internal::Deserializer::ReadData<v8::internal::FullMaybeObjectSlot>(v8::internal::FullMaybeObjectSlot,
>  
> v8::internal::FullMaybeObjectSlot, v8::internal::SnapshotSpace, unsigned 
> long) at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:576
>
> #35 0x000000010c7faa8d in 
> v8::internal::Deserializer::ReadObject(v8::internal::SnapshotSpace) at 
> /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:394
>
> #36 0x000000010c7f89d4 in v8::internal::FullMaybeObjectSlot 
> v8::internal::Deserializer::ReadDataCase<v8::internal::FullMaybeObjectSlot, 
> (v8::internal::SerializerDeserializer::Bytecode)0, 
> (v8::internal::SnapshotSpace)6>(v8::internal::Isolate*, 
> v8::internal::FullMaybeObjectSlot, unsigned long, unsigned char, bool) 
> [inlined] at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:810
>
> #37 0x000000010c7f89ba in bool 
> v8::internal::Deserializer::ReadData<v8::internal::FullMaybeObjectSlot>(v8::internal::FullMaybeObjectSlot,
>  
> v8::internal::FullMaybeObjectSlot, v8::internal::SnapshotSpace, unsigned 
> long) at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:576
>
> #38 0x000000010c7faa8d in 
> v8::internal::Deserializer::ReadObject(v8::internal::SnapshotSpace) at 
> /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:394
>
> #39 0x000000010c7f89d4 in v8::internal::FullMaybeObjectSlot 
> v8::internal::Deserializer::ReadDataCase<v8::internal::FullMaybeObjectSlot, 
> (v8::internal::SerializerDeserializer::Bytecode)0, 
> (v8::internal::SnapshotSpace)6>(v8::internal::Isolate*, 
> v8::internal::FullMaybeObjectSlot, unsigned long, unsigned char, bool) 
> [inlined] at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:810
>
> #40 0x000000010c7f89ba in bool 
> v8::internal::Deserializer::ReadData<v8::internal::FullMaybeObjectSlot>(v8::internal::FullMaybeObjectSlot,
>  
> v8::internal::FullMaybeObjectSlot, v8::internal::SnapshotSpace, unsigned 
> long) at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:576
>
> #41 0x000000010c7faa8d in 
> v8::internal::Deserializer::ReadObject(v8::internal::SnapshotSpace) at 
> /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:394
>
> #42 0x000000010c7f89d4 in v8::internal::FullMaybeObjectSlot 
> v8::internal::Deserializer::ReadDataCase<v8::internal::FullMaybeObjectSlot, 
> (v8::internal::SerializerDeserializer::Bytecode)0, 
> (v8::internal::SnapshotSpace)6>(v8::internal::Isolate*, 
> v8::internal::FullMaybeObjectSlot, unsigned long, unsigned char, bool) 
> [inlined] at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:810
>
> #43 0x000000010c7f89ba in bool 
> v8::internal::Deserializer::ReadData<v8::internal::FullMaybeObjectSlot>(v8::internal::FullMaybeObjectSlot,
>  
> v8::internal::FullMaybeObjectSlot, v8::internal::SnapshotSpace, unsigned 
> long) at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:576
>
> #44 0x000000010c7faa8d in 
> v8::internal::Deserializer::ReadObject(v8::internal::SnapshotSpace) at 
> /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:394
>
> #45 0x000000010c7f89d4 in v8::internal::FullMaybeObjectSlot 
> v8::internal::Deserializer::ReadDataCase<v8::internal::FullMaybeObjectSlot, 
> (v8::internal::SerializerDeserializer::Bytecode)0, 
> (v8::internal::SnapshotSpace)6>(v8::internal::Isolate*, 
> v8::internal::FullMaybeObjectSlot, unsigned long, unsigned char, bool) 
> [inlined] at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:810
>
> #46 0x000000010c7f89ba in bool 
> v8::internal::Deserializer::ReadData<v8::internal::FullMaybeObjectSlot>(v8::internal::FullMaybeObjectSlot,
>  
> v8::internal::FullMaybeObjectSlot, v8::internal::SnapshotSpace, unsigned 
> long) at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/deserializer.cc:576
>
> #47 0x000000010c7fc244 in 
> v8::internal::RootVisitor::VisitRootPointer(v8::internal::Root, char 
> const*, v8::internal::FullObjectSlot) [inlined] at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/objects/visitors.h:73
>
> #48 0x000000010c7fc22c in 
> v8::internal::ObjectDeserializer::Deserialize(v8::internal::Isolate*) at 
> /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/object-deserializer.cc:45
>
> #49 0x000000010c7fc070 in 
> v8::internal::ObjectDeserializer::DeserializeSharedFunctionInfo(v8::internal::Isolate*,
>  
> v8::internal::SerializedCodeData const*, 
> v8::internal::Handle<v8::internal::String>) at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/object-deserializer.cc:29
>
> #50 0x000000010c7f6e70 in 
> v8::internal::CodeSerializer::Deserialize(v8::internal::Isolate*, 
> v8::internal::ScriptData*, v8::internal::Handle<v8::internal::String>, 
> v8::ScriptOriginOptions) at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/snapshot/code-serializer.cc:289
>
> #51 0x000000010c42971a in 
> v8::internal::Compiler::GetSharedFunctionInfoForScript(v8::internal::Isolate*,
>  
> v8::internal::Handle<v8::internal::String>, 
> v8::internal::Compiler::ScriptDetails const&, v8::ScriptOriginOptions, 
> v8::Extension*, v8::internal::ScriptData*, 
> v8::ScriptCompiler::CompileOptions, v8::ScriptCompiler::NoCacheReason, 
> v8::internal::NativesFlag) at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/codegen/compiler.cc:2024
>
> #52 0x000000010c398b1a in 
> v8::ScriptCompiler::CompileUnboundInternal(v8::Isolate*, 
> v8::ScriptCompiler::Source*, v8::ScriptCompiler::CompileOptions, 
> v8::ScriptCompiler::NoCacheReason) at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/api/api.cc:2435
>
> #53 0x000000010c39909f in 
> v8::ScriptCompiler::Compile(v8::Local<v8::Context>, 
> v8::ScriptCompiler::Source*, v8::ScriptCompiler::CompileOptions, 
> v8::ScriptCompiler::NoCacheReason) at /Volumes/EXTREME 
> SSD/Documents/depot_tools/v8/v8/src/api/api.cc:2466
>
> #54 0x000000010c36ed77 in 
> facebook::V8Runtime::ExecuteScript(v8::Isolate*, v8::Local<v8::String> 
> const&, std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> > const&) at 
> /Users/wangzitong/Documents/v8executor/src/v8runtime/V8Runtime.mm:317
>
> #55 0x000000010c371131 in 
> facebook::V8Runtime::evaluateJavaScript(std::__1::shared_ptr<facebook::jsi::Buffer
>  
> const> const&, std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> > const&) at 
> /Users/wangzitong/Documents/v8executor/src/v8runtime/V8Runtime.mm:746
>
> #56 0x000000010a762f72 in 
> facebook::react::JSIExecutor::loadApplicationScript(std::__1::unique_ptr<facebook::react::JSBigString
>  
> const, std::__1::default_delete<facebook::react::JSBigString const> >, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> >) at 
> /Users/wangzitong/Documents/imeituan/Pods/React-jsiexecutor/src/jsireact/JSIExecutor.cpp:126
>
> #57 0x000000010a73a3f9 in 
> facebook::react::NativeToJsBridge::loadApplication(std::__1::unique_ptr<facebook::react::RAMBundleRegistry,
>  
> std::__1::default_delete<facebook::react::RAMBundleRegistry> >, 
> std::__1::unique_ptr<facebook::react::JSBigString const, 
> std::__1::default_delete<facebook::react::JSBigString const> >, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> >)::$_0::operator()(facebook::react::JSExecutor*) 
> at 
> /Users/wangzitong/Documents/imeituan/Pods/React-cxxreact/src/NativeToJsBridge.cpp:119
>
> #58 0x000000010a73a2a2 in 
> decltype(std::__1::forward<facebook::react::NativeToJsBridge::loadApplication(std::__1::unique_ptr<facebook::react::RAMBundleRegistry,
>  
> std::__1::default_delete<facebook::react::RAMBundleRegistry> >, 
> std::__1::unique_ptr<facebook::react::JSBigString const, 
> std::__1::default_delete<facebook::react::JSBigString const> >, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> 
> >)::$_0&>(fp)(std::__1::forward<facebook::react::JSExecutor*>(fp0))) 
> std::__1::__invoke<facebook::react::NativeToJsBridge::loadApplication(std::__1::unique_ptr<facebook::react::RAMBundleRegistry,
>  
> std::__1::default_delete<facebook::react::RAMBundleRegistry> >, 
> std::__1::unique_ptr<facebook::react::JSBigString const, 
> std::__1::default_delete<facebook::react::JSBigString const> >, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> >)::$_0&, 
> facebook::react::JSExecutor*>(facebook::react::NativeToJsBridge::loadApplication(std::__1::unique_ptr<facebook::react::RAMBundleRegistry,
>  
> std::__1::default_delete<facebook::react::RAMBundleRegistry> >, 
> std::__1::unique_ptr<facebook::react::JSBigString const, 
> std::__1::default_delete<facebook::react::JSBigString const> >, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> >)::$_0&, facebook::react::JSExecutor*&&) at 
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:3545
>
> #59 0x000000010a73a242 in void 
> std::__1::__invoke_void_return_wrapper<void>::__call<facebook::react::NativeToJsBridge::loadApplication(std::__1::unique_ptr<facebook::react::RAMBundleRegistry,
>  
> std::__1::default_delete<facebook::react::RAMBundleRegistry> >, 
> std::__1::unique_ptr<facebook::react::JSBigString const, 
> std::__1::default_delete<facebook::react::JSBigString const> >, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> >)::$_0&, 
> facebook::react::JSExecutor*>(facebook::react::NativeToJsBridge::loadApplication(std::__1::unique_ptr<facebook::react::RAMBundleRegistry,
>  
> std::__1::default_delete<facebook::react::RAMBundleRegistry> >, 
> std::__1::unique_ptr<facebook::react::JSBigString const, 
> std::__1::default_delete<facebook::react::JSBigString const> >, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> >)::$_0&, facebook::react::JSExecutor*&&) at 
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:348
>
> #60 0x000000010a73a1f2 in 
> std::__1::__function::__alloc_func<facebook::react::NativeToJsBridge::loadApplication(std::__1::unique_ptr<facebook::react::RAMBundleRegistry,
>  
> std::__1::default_delete<facebook::react::RAMBundleRegistry> >, 
> std::__1::unique_ptr<facebook::react::JSBigString const, 
> std::__1::default_delete<facebook::react::JSBigString const> >, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> >)::$_0, 
> std::__1::allocator<facebook::react::NativeToJsBridge::loadApplication(std::__1::unique_ptr<facebook::react::RAMBundleRegistry,
>  
> std::__1::default_delete<facebook::react::RAMBundleRegistry> >, 
> std::__1::unique_ptr<facebook::react::JSBigString const, 
> std::__1::default_delete<facebook::react::JSBigString const> >, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> >)::$_0>, void 
> (facebook::react::JSExecutor*)>::operator()(facebook::react::JSExecutor*&&) 
> at 
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1546
>
> #61 0x000000010a738cb3 in 
> std::__1::__function::__func<facebook::react::NativeToJsBridge::loadApplication(std::__1::unique_ptr<facebook::react::RAMBundleRegistry,
>  
> std::__1::default_delete<facebook::react::RAMBundleRegistry> >, 
> std::__1::unique_ptr<facebook::react::JSBigString const, 
> std::__1::default_delete<facebook::react::JSBigString const> >, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> >)::$_0, 
> std::__1::allocator<facebook::react::NativeToJsBridge::loadApplication(std::__1::unique_ptr<facebook::react::RAMBundleRegistry,
>  
> std::__1::default_delete<facebook::react::RAMBundleRegistry> >, 
> std::__1::unique_ptr<facebook::react::JSBigString const, 
> std::__1::default_delete<facebook::react::JSBigString const> >, 
> std::__1::basic_string<char, std::__1::char_traits<char>, 
> std::__1::allocator<char> >)::$_0>, void 
> (facebook::react::JSExecutor*)>::operator()(facebook::react::JSExecutor*&&) 
> at 
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1720
>
> #62 0x000000010a74601d in std::__1::__function::__value_func<void 
> (facebook::react::JSExecutor*)>::operator()(facebook::react::JSExecutor*&&) 
> const at 
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1873
>
> #63 0x000000010a745fa0 in std::__1::function<void 
> (facebook::react::JSExecutor*)>::operator()(facebook::react::JSExecutor*) 
> const at 
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2548
>
> #64 0x000000010a745f68 in 
> facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void 
> (facebook::react::JSExecutor*)>)::$_7::operator()() const at 
> /Users/wangzitong/Documents/imeituan/Pods/React-cxxreact/src/NativeToJsBridge.cpp:269
>
> #65 0x000000010a745edd in 
> decltype(std::__1::forward<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void
>  
> (facebook::react::JSExecutor*)>)::$_7&>(fp)()) 
> std::__1::__invoke<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void
>  
> (facebook::react::JSExecutor*)>)::$_7&>(facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void
>  
> (facebook::react::JSExecutor*)>)::$_7&) at 
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:3545
>
> #66 0x000000010a745e8d in void 
> std::__1::__invoke_void_return_wrapper<void>::__call<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void
>  
> (facebook::react::JSExecutor*)>)::$_7&>(facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void
>  
> (facebook::react::JSExecutor*)>)::$_7&) at 
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:348
>
> #67 0x000000010a745e5d in 
> std::__1::__function::__alloc_func<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void
>  
> (facebook::react::JSExecutor*)>)::$_7, 
> std::__1::allocator<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void
>  
> (facebook::react::JSExecutor*)>)::$_7>, void ()>::operator()() at 
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1546
>
> #68 0x000000010a7449be in 
> std::__1::__function::__func<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void
>  
> (facebook::react::JSExecutor*)>)::$_7, 
> std::__1::allocator<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void
>  
> (facebook::react::JSExecutor*)>)::$_7>, void ()>::operator()() at 
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1720
>
> #69 0x000000010a5c6755 in std::__1::__function::__value_func<void 
> ()>::operator()() const at 
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1873
>
> #70 0x000000010a5c5e15 in std::__1::function<void ()>::operator()() const 
> at 
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2548
>
> #71 0x000000010a5c5b88 in 
> facebook::react::tryAndReturnError(std::__1::function<void ()> const&) at 
> /Users/wangzitong/Documents/imeituan/Pods/React/React/CxxModule/RCTCxxUtils.mm:72
>
> #72 0x000000010a61ccd1 in 
> facebook::react::RCTMessageThread::tryFunc(std::__1::function<void ()> 
> const&) at 
> /Users/wangzitong/Documents/imeituan/Pods/React/React/CxxBridge/RCTMessageThread.mm:59
>
> #73 0x000000010a621d43 in 
> facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void 
> ()>&&)::$_1::operator()() const at 
> /Users/wangzitong/Documents/imeituan/Pods/React/React/CxxBridge/RCTMessageThread.mm:72
>
> #74 0x000000010a621ccd in 
> decltype(std::__1::forward<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void
>  
> ()>&&)::$_1&>(fp)()) 
> std::__1::__invoke<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void
>  
> ()>&&)::$_1&>(facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void
>  
> ()>&&)::$_1&) at 
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:3545
>
> #75 0x000000010a621c7d in void 
> std::__1::__invoke_void_return_wrapper<void>::__call<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void
>  
> ()>&&)::$_1&>(facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void
>  
> ()>&&)::$_1&) at 
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:348
>
> #76 0x000000010a621c4d in 
> std::__1::__function::__alloc_func<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void
>  
> ()>&&)::$_1, 
> std::__1::allocator<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void
>  
> ()>&&)::$_1>, void ()>::operator()() at 
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1546
>
> #77 0x000000010a6207ae in 
> std::__1::__function::__func<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void
>  
> ()>&&)::$_1, 
> std::__1::allocator<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void
>  
> ()>&&)::$_1>, void ()>::operator()() at 
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1720
>
> #78 0x000000010a5c6755 in std::__1::__function::__value_func<void 
> ()>::operator()() const at 
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1873
>
> #79 0x000000010a5c5e15 in std::__1::function<void ()>::operator()() const 
> at 
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2548
>
> #80 0x000000010a61c92c in invocation function for block in 
> facebook::react::RCTMessageThread::runAsync(std::__1::function<void ()>) at 
> /Users/wangzitong/Documents/imeituan/Pods/React/React/CxxBridge/RCTMessageThread.mm:39
>
> #81 0x00007fff203a85db in __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ ()
>
> #82 0x00007fff203a79ef in __CFRunLoopDoBlocks ()
>
> #83 0x00007fff203a2a6d in __CFRunLoopRun ()
>
> #84 0x00007fff203a1b9e in CFRunLoopRunSpecific ()
>
> #85 0x000000010a596071 in +[RCTCxxBridge runRunLoop] at 
> /Users/wangzitong/Documents/imeituan/Pods/React/React/CxxBridge/RCTCxxBridge.mm:272
>
> #86 0x00007fff2086f521 in __NSThread__start__ ()
>
> #87 0x00007fff5dcdc109 in _pthread_start ()
>
> #88 0x00007fff5dcd7b8b in thread_start ()
>
>
> And I have digged out some facts:
>
> 1. If codecache is created with an engine that is already attached with a 
> snapshot, not an empty engine, no crash.
>
> 2. If I annotate some code below in startup.js, no crash.
>
> function shouldUseNative() {
>     var test3 = {};
>     'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
>       test3[letter] = letter;
>     });
>     if (Object.keys(test3).join('') !== 'abcdefghijklmnopqrst') {
>       return false;
>     }
>     return true;
> }
> shouldUseNative();
>
>
> V8 version:*7.8.279.23*
>
> Can someone know what causes the crash? Thanks.
>

-- 
-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/v8-dev/80d03e98-1eeb-42d3-983b-f6ca276f4fd3n%40googlegroups.com.

Reply via email to