我们使用JavaScriptCore
来运行即将推出的应用程序中的大部分业务逻辑。然后每一个现在,应用程序崩溃,并出现以下错误:iOS上的JavaScriptCore:JavaScript垃圾收集失败
FATAL ERROR: JavaScript garbage collection failed because thread_get_state returned an error (268435459). This is probably the result of running inside Rosetta, which is not supported.
/SourceCache/JavaScriptCoreEmbedded/JavaScriptCoreEmbedded-1218.33/heap/MachineStackMarker.cpp(350) : size_t JSC::getPlatformThreadRegisters(const PlatformThread &, PlatformThreadRegisters &)
它的IOS,所以它绝对不是罗塞塔运行,并且无论是在模拟器和真正的iPhone发生。
它似乎主要发生在使用URLSession
上传图像时。我们确保所有调用JavaScript上下文的调用都来自同一个线程,因为我们在其他地方看到,来自另一个线程的回调比最初调用的线程可能会出现此错误,但这并没有帮助。 (而且,根据JavaScriptCore
文档,JavaScriptCore
反正应该是完全线程安全的)
那么,有人有什么想法吗?
你应该包括http://stackoverflow.com/help/mcve – bosnjak
不幸的是,这是问题的一部分,我目前无法找到一个,至少在没有提交或多或少整个应用程序。我们看起来随机出现了崩溃,而且我们还没有能够追踪到导致它崩溃的原因。它在不同的时间崩溃,并在不同的电话。我们正试图找到一个最低限度的可验证版本,如果我们这样做,我们也可能解决了这个问题,但现在,我们还没有能够...... – Patrik
所以,基本上,我们并不想要精确地回答了错误,因为没有代码示例,这显然是不可能的。我们只是想听听是否有人知道发生这种情况的任何条件/错误/错误。我们已经听说从另一个线程进行回调可能会发生这种情况(我们不这样做),因此,是否有人遇到其他导致此问题的情况。 – Patrik