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 &)
그것은 아이폰 OS, 그래서 그것은 확실히 로제타에서 실행되지, 그리고 에뮬레이터와 실제 아이폰에서 모두 발생합니다.
URLSession
을 사용하여 이미지를 업로드 할 때 주로 발생하는 것으로 보입니다. 원래 호출 한 스레드가 아닌 다른 스레드의 콜백이이 오류를 줄 수도 있지만 도움이되지 않았기 때문에 다른 스레드를 사용하여 자바 스크립트 컨텍스트에 대한 모든 호출이 동일한 스레드에서 수행되는지 확인했습니다. (그리고 JavaScriptCore
설명서에 따르면 JavaScriptCore
은 완전히 스레드 안전해야합니다.)
그래서 아무도 아이디어가 있습니까?
당신은 http://stackoverflow.com/help/mcve – bosnjak
을 포함해야합니다. 불행히도, 그 문제의 일부이며, 적어도 하나 또는 그 이상을 전체 신청서를 제출하지 않고서는 찾을 수 없습니다. 겉으로보기에는 무작위로 크래시가 발생했으며 크래시를 일으키는 원인을 추적 할 수 없었습니다. 다른 시간과 다른 호출에서 충돌합니다. 우리는 최소한의 검증 가능한 버전을 찾으려고 노력하고 있으며, 우리가 문제를 해결했을 수도 있지만, 현재로서는 우리가 할 수 없었습니다 ... – Patrik
그래서, 기본적으로, 우리는 무엇이 잘못되었는지에 대한 정확한 대답은 코드 예제가 없다면 분명히 불가능하기 때문입니다. 우리는 누군가 어떤 상황/실수/버그가 발생했는지 알기를 원합니다. 우리는 이미 다른 스레드로부터 콜백을 생성하면이 일이 발생할 수 있다고 들었습니다 (우리는 그렇지 않습니다). 그래서이 상황을 일으키는 다른 상황이 발생했습니다. – Patrik