Ipad Safari Meteor应用程序崩溃(iPhone没有)

时间:2016-03-15 21:20:28

标签: javascript ios mongodb ipad meteor

我的Meteor应用程序出了问题。在每台设备上,它运行良好且速度很快。

当我去iPad(使用模拟器或真实设备)时,它最后会告诉我: “url”上反复出现问题

尝试加载集合时会发生这种情况。该集合有36个文档,每个大约120kb。如果我不加载此集合,则不会发生此问题。由于部分在发布时被删除,因此每个文档(或多或少)实际加载了67KB。

如果删除集合中的5个文档,问题就不会再发生了。

我得到了模拟器的报告说(我只放了相关的行):

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x00000000bbadbeef
Exception Note:        EXC_CORPSE_NOTIFY

VM Regions Near 0xbbadbeef:
    WebKit Malloc          00000000b0800000-00000000bb800000 [176.0M] rw-/rwx SM=PRV  
--> 
    Stack Guard            00000000bbf09000-00000000bf709000 [ 56.0M] ---/rwx SM=NUL  

Application Specific Information:
CoreSimulator 201.3 - Device: iPad 2 - Runtime: iOS 9.2 (13C75) - DeviceType: iPad 2

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore        0x04cab966 bmalloc::VMHeap::grow() + 150
1   com.apple.JavaScriptCore        0x04caa8b9 bmalloc::Heap::allocateLarge(std::__1::lock_guard<bmalloc::StaticMutex>&, unsigned long, unsigned long, unsigned long) + 153
2   com.apple.JavaScriptCore        0x04ca7ba6 bmalloc::Allocator::allocate(unsigned long, unsigned long) + 838
3   com.apple.JavaScriptCore        0x04c7cc63 WTF::fastAlignedMalloc(unsigned long, unsigned long) + 51
4   com.apple.JavaScriptCore        0x0477eb5b JSC::CopiedSpace::tryAllocateOversize(unsigned long, void**) + 43
5   com.apple.JavaScriptCore        0x0477eda5 JSC::CopiedSpace::tryReallocateOversize(void**, unsigned long, unsigned long) + 53
6   com.apple.JavaScriptCore        0x0477ece4 JSC::CopiedSpace::tryReallocate(void**, unsigned long, unsigned long) + 132
7   com.apple.JavaScriptCore        0x04a51894 JSC::JSObject::ensureLengthSlow(JSC::VM&, unsigned int) + 228
8   com.apple.JavaScriptCore        0x04a541fc void JSC::JSObject::putByIndexBeyondVectorLengthWithoutAttributes<(unsigned char)8>(JSC::ExecState*, unsigned int, JSC::JSValue) + 796
9   com.apple.JavaScriptCore        0x04a50d04 JSC::JSObject::putDirectIndexBeyondVectorLength(JSC::ExecState*, unsigned int, JSC::JSValue, unsigned int, JSC::PutDirectIndexMode) + 1012
10  com.apple.JavaScriptCore        0x04ad4dd6 JSC::LiteralParser<unsigned short>::parse(JSC::ParserState) + 4294
11  com.apple.JavaScriptCore        0x04a5cf2b JSC::JSONProtoFuncParse(JSC::ExecState*) + 923
12  ???                             0x8980555d 0 + 2306889053
13  com.apple.JavaScriptCore        0x04aee8e7 llint_entry + 17129
14  com.apple.JavaScriptCore        0x04aee8e7 llint_entry + 17129
15  com.apple.JavaScriptCore        0x04aee8e7 llint_entry + 17129
16  ???                             0x898e6ed1 0 + 2307813073
17  ???                             0x89820479 0 + 2306999417
18  ???                             0x89805717 0 + 2306889495
19  com.apple.JavaScriptCore        0x04aeea8c llint_entry + 17550
20  com.apple.JavaScriptCore        0x04aee8e7 llint_entry + 17129
21  com.apple.JavaScriptCore        0x04aee8e7 llint_entry + 17129
22  com.apple.JavaScriptCore        0x04aee8e7 llint_entry + 17129
23  com.apple.JavaScriptCore        0x04aea477 vmEntryToJavaScript + 253
24  com.apple.JavaScriptCore        0x049b17dc JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 172
25  com.apple.JavaScriptCore        0x04996ca9 JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 425
26  com.apple.JavaScriptCore        0x04739fa1 JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&, WTF::NakedPtr<JSC::Exception>&) + 97
27  com.apple.WebCore               0x0579d4df WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext*, WebCore::Event*) + 911
28  com.apple.WebCore               0x053d8cee WebCore::EventTarget::fireEventListeners(WebCore::Event*, WebCore::EventTargetData*, WTF::Vector<WebCore::RegisteredEventListener, 1ul, WTF::CrashOnOverflow, 16ul>&) + 814
29  com.apple.WebCore               0x053d88fc WebCore::EventTarget::fireEventListeners(WebCore::Event*) + 268
30  com.apple.WebCore               0x053d87dc WebCore::EventTarget::dispatchEvent(WTF::PassRefPtr<WebCore::Event>) + 92
31  com.apple.WebCore               0x05fcc923 WebCore::WebSocket::didReceiveMessage(WTF::String const&) + 115
32  com.apple.WebCore               0x05fcca3b non-virtual thunk to WebCore::WebSocket::didReceiveMessage(WTF::String const&) + 27
33  com.apple.WebCore               0x05fd1674 WebCore::WebSocketChannel::processFrame() + 5188
34  com.apple.WebCore               0x05fcf95e WebCore::WebSocketChannel::processBuffer() + 94
35  com.apple.WebCore               0x05fcf8d6 WebCore::WebSocketChannel::didReceiveSocketStreamData(WebCore::SocketStreamHandle*, char const*, int) + 374
36  com.apple.WebCore               0x05d93087 WebCore::SocketStreamHandle::readStreamCallback(unsigned long) + 407
37  com.apple.WebCore               0x05d91f8e WebCore::SocketStreamHandle::readStreamCallback(__CFReadStream*, unsigned long, void*) + 30
38  com.apple.CoreFoundation        0x00d16bbd _signalEventSync + 189
39  com.apple.CoreFoundation        0x00d4ea7f _cfstream_shared_signalEventSync + 463
40  com.apple.CoreFoundation        0x00cd46ff __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
41  com.apple.CoreFoundation        0x00cca328 __CFRunLoopDoSources0 + 424
42  com.apple.CoreFoundation        0x00cc97a8 __CFRunLoopRun + 1032
43  com.apple.CoreFoundation        0x00cc90e6 CFRunLoopRunSpecific + 470
44  com.apple.CoreFoundation        0x00cc8efb CFRunLoopRunInMode + 123
45  com.apple.Foundation            0x001c17c2 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 308
46  com.apple.Foundation            0x00267cbf -[NSRunLoop(NSRunLoop) run] + 82
47  libxpc.dylib                    0x0252b1b3 _xpc_objc_main + 486
48  libxpc.dylib                    0x0252df12 xpc_main + 215
49  com.apple.WebKit.WebContent     0x000f96b3 0xf8000 + 5811
50  libdyld.dylib                   0x02263a21 start + 1

这似乎是一个记忆问题,但由于我只订阅了一个集合,我很难看到如何解决这个问题。

编辑:

实际上,重现问题非常简单。

它只需要创建一个内部有虚拟数据的数据库(大小相同)。

生成测试应用程序(我使用iron cli完成),创建集合,在服务器中添加发布,在客户端(在控制器中)订阅,通过iOS2模拟器通过iPad2获取主页,它失败(刚试过自己)。甚至,如果应用程序完全是空的......

0 个答案:

没有答案