我們使用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