pkirill
(Kirill Prazdnikov)
April 6, 2017, 11:40am
1
Hi, I have a new crash in our app,
gistfile1.txt
Incident Identifier: DEB7002E-B8EA-4B9B-B7A1-45F56AA059B9
CrashReporter Key: 0e30da8710511422cd9998567ec0551d1b95e461
Hardware Model: iPad4,1
Process: CoSpacesDev [7337]
Path: /private/var/containers/Bundle/Application/77A47ECE-EBE7-4532-84EF-FB6B50770D1D/CoSpacesDev.app/CoSpacesDev
Identifier: delightex.cospaces.dev
Version: 1 (1.0)
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
This file has been truncated. show original
it is 100% reproducible, i`m digging to understand the cause however it is strange that I see 500 identical calls.
How is to possible to understand which java code related to that ?
We are using the latest MOE 1.3.3
Thanks
pkirill
(Kirill Prazdnikov)
April 6, 2017, 12:01pm
2
also the finalizer thread dies with the following code:
AVAudioPlayer audioPlayer = AVAudioPlayer.alloc();
AVAudioPlayer player = typeHint != null
? audioPlayer.initWithContentsOfURLFileTypeHintError(url, typeHint, nsErrorPtr)
: audioPlayer.initWithContentsOfURLError(url, nsErrorPtr);
Most probably, this is due to the fact that the object created by (AVAudioPlayer.alloc()) was released later in initWithContentsOfURLFileTypeHintError when the error occurred, while the java objects hold the peer.
kisg
(Gergely Kis - Migeran)
April 6, 2017, 12:23pm
4
@ekuleshov got a similar trace from an Apple review. We would need to look at the app that is causing this issue in order to debug it. Can you create a reduced test case that you can share publicly?
pkirill
(Kirill Prazdnikov)
April 6, 2017, 12:29pm
5
We are trying to remove the peer pointer in case of error.
In order to reproduce simply invoke
AVAudioPlayer audioPlayer = AVAudioPlayer.alloc();
AVAudioPlayer player = typeHint != null
? audioPlayer.initWithContentsOfURLFileTypeHintError(url, typeHint, nsErrorPtr)
: audioPlayer.initWithContentsOfURLError(url, nsErrorPtr);
with bad resource.
pkirill
(Kirill Prazdnikov)
April 6, 2017, 12:32pm
6
Kis, what happens in ObjC when AVAudioPlayer.initWithContentsOfURLError returns null ?
Should we release the pointer returned by alloc ?
The question not related to java.
pkirill
(Kirill Prazdnikov)
April 7, 2017, 8:59am
7
audioPlayer.getPeer().setPeer(0);
did the job, no finalizer crash anymore
We have released Moe SDK 1.3.6 which includes a NatJ fix that may solve this issue you are having.