iOS 12 crash in SiriTTS

Hi All,


I haven't been able to find any information online about anyone else encountering this crash issue, but there appears to be an iOS 12 specific problem with AVSpeechSynthesizer / SiriTTS:


SIGABRT ABORT 0x00000001dc8b9104

Crashed: Thread 25

0 libsystem_kernel.dylib 0x1dc8b9104 __pthread_kill + 8

1 libsystem_pthread.dylib 0x1dc9340e0 pthread_kill$VARIANT$mp + 380

2 libsystem_c.dylib 0x1dc810d78 abort + 140

3 libsystem_malloc.dylib 0x1dc90d768 _malloc_put + 570

4 libsystem_malloc.dylib 0x1dc90d998 malloc_zone_error + 104

5 libsystem_malloc.dylib 0x1dc90d258 free_list_checksum_botch + 36

6 libsystem_malloc.dylib 0x1dc9091c4 tiny_free_list_remove_ptr + 488

7 libsystem_malloc.dylib 0x1dc909c28 tiny_free_no_lock + 672

8 libsystem_malloc.dylib 0x1dc90adc8 free_tiny + 376

9 SiriTTS 0x1e99d418c Psola::modify(int, std::__1::vector<float, std::__1::allocator<float> >&, PsolaInputData const&) + 2700

10 SiriTTS 0x1e99e7b3c PsolaStream::process_segment(AudioSegmentation&, PsolaContext&) + 2408

11 SiriTTS 0x1e99e80c4 PsolaStream::write(AudioSegmentation&) + 644

12 SiriTTS 0x1e9a23fe8 UnitSegmentStream::flush() + 104

13 SiriTTS 0x1e99df78c ViterbiStream::flush() + 992

14 SiriTTS 0x1e9a7e5ec PreselectStream::write(UnitSelectionFeature&) + 828

15 SiriTTS 0x1e9a3f180 UnitSelectionFeatureStream::write(FrontendFeature&) + 2248

16 SiriTTS 0x1e9a7a62c PromptStream::write(FrontendFeature&) + 292

17 SiriTTS 0x1e9a26788 NashvilleAdapterStream::write(NashvilleInput&) + 6084

18 SiriTTS 0x1e99e1f28 gryphon_featextract_Process(_LH_SAFEHANDLE_TAG, _LH_SAFEHANDLE_TAG, TTSEG_PROCESSING_COMP_RESULTS_E*) + 1408

19 SiriTTS 0x1e9bef72c ttseg_loc_ProcessLoop + 632

20 SiriTTS 0x1e9bee04c ttseg_loc_Synthesize + 64

21 SiriTTS 0x1e9bedf50 ttseg_Synthesize + 236

22 SiriTTS 0x1e9d25488 ssft_hlp_ProcessMessage2Speech + 264

23 SiriTTS 0x1e9d25684 ve_ttsProcessText2Speech + 280

24 TTSSpeechBundle 0x117e983bc (Missing)

25 TTSSpeechBundle 0x117eab74c (Missing)

26 TTSSpeechBundle 0x117e8e568 (Missing)

27 TTSSpeechBundle 0x117eab43c (Missing)

28 TTSSpeechBundle 0x117eaa64c (Missing)

29 libsystem_pthread.dylib 0x1dc93d2fc _pthread_body + 128

30 libsystem_pthread.dylib 0x1dc93d25c _pthread_start + 48

31 libsystem_pthread.dylib 0x1dc940d08 thread_start + 4


Has anyone else seen this happen? Fabric suggests that this may stem from a Heap Corruption and that the stack may not actually point to the problem; however, I have run Address Sanitizer and several scenarios trying to replicate the problem locally with no luck.


Any help would be appreciated!

Replies

You have this:


>>2 libsystem_c.dylib 0x1dc810d78 abort + 140


so your app deliberately called the "abort()" function. It did this from here:


>>3 libsystem_malloc.dylib 0x1dc90d768 _malloc_put + 570


which is in a malloc/free function, so, yes, presumably your heap is corrupted. That's about all you can tell from this backtrace, since the origin of the corruption could be anywhere in your app, and the fact that it didn't crash on iOS 11 does NOT mean the bug is specific to iOS 12. (The bug may have existed before, but you were just "unlucky" that it previously didn't corrupt anything that really mattered.)


You could try turning on the options (on the Diagnostics tab in your run scheme) for things that check and churn the heap, such as "guard malloc" and "malloc scribble", etc.