3

Can you help me with this bug? It occurred on Nexus 4. It seems that it caused by some font creation code...

        06-27 16:43:59.384: A/libc(22545): Fatal signal 11 (SIGSEGV) at 0x0000000c (code=1), thread 22553 (FinalizerDaemon)
        06-27 16:43:59.485: I/DEBUG(157): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
        06-27 16:43:59.485: I/DEBUG(157): Build fingerprint: 'google/occam/mako:4.2.2/JDQ39/573038:user/release-keys'
        06-27 16:43:59.485: I/DEBUG(157): Revision: '11'
        06-27 16:43:59.485: I/DEBUG(157): pid: 22545, tid: 22553, name: FinalizerDaemon  >>> com.myapp <<<
        06-27 16:43:59.485: I/DEBUG(157): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0000000c
        06-27 16:43:59.585: I/DEBUG(157):     scr 60000093
        06-27 16:43:59.585: I/DEBUG(157): backtrace:
        06-27 16:43:59.585: I/DEBUG(157):     #00  pc 000bd244  /system/lib/libskia.so (SkFontHost::NextLogicalFont(SkScalerContext::Rec const&)+268)
        06-27 16:43:59.585: I/DEBUG(157):     #01  pc 0008cc9c  /system/lib/libskia.so (SkScalerContext::getNextContext()+44)
        06-27 16:43:59.585: I/DEBUG(157):     #02  pc 0008cd90  /system/lib/libskia.so (SkScalerContext::getContextFromChar(int, unsigned int&)+56)
        06-27 16:43:59.585: I/DEBUG(157):     #03  pc 0008ce5c  /system/lib/libskia.so (SkScalerContext::charToGlyphID(int)+12)
        06-27 16:43:59.585: I/DEBUG(157):     #04  pc 0007c480  /system/lib/libskia.so (SkPaint::textToGlyphs(void const*, unsigned int, unsigned short*) const+244)
        06-27 16:43:59.585: I/DEBUG(157):     #05  pc 0006d33b  /system/lib/libandroid_runtime.so
        06-27 16:43:59.585: I/DEBUG(157):     #06  pc 00004c20  /system/lib/libharfbuzz.so (HB_ConvertStringToGlyphIndices+104)
        06-27 16:43:59.585: I/DEBUG(157):     #07  pc 00005e4c  /system/lib/libharfbuzz.so (HB_BasicShape+12)
        06-27 16:43:59.585: I/DEBUG(157):     #08  pc 00005ed8  /system/lib/libharfbuzz.so (HB_ShapeItem+48)
        06-27 16:43:59.585: I/DEBUG(157):     #09  pc 00072c9f  /system/lib/libandroid_runtime.so (android::TextLayoutShaper::doShaping(unsigned int)+44)
        06-27 16:43:59.585: I/DEBUG(157):     #10  pc 00072e75  /system/lib/libandroid_runtime.so (android::TextLayoutShaper::shapeFontRun(SkPaint const*, bool)+284)
        06-27 16:43:59.585: I/DEBUG(157):     #11  pc 00073155  /system/lib/libandroid_runtime.so (android::TextLayoutShaper::computeRunValues(SkPaint const*, unsigned short const*, unsigned int, bool, android::Vector<float>*, float*, android::Vector<unsigned short>*, android::Vector<float>*)+712)
        06-27 16:43:59.585: I/DEBUG(157):     #12  pc 000734ad  /system/lib/libandroid_runtime.so (android::TextLayoutShaper::computeValues(SkPaint const*, unsigned short const*, unsigned int, unsigned int, unsigned int, int, android::Vector<float>*, float*, android::Vector<unsigned short>*, android::Vector<float>*)+444)
        06-27 16:43:59.585: I/DEBUG(157):     #13  pc 0007351d  /system/lib/libandroid_runtime.so (android::TextLayoutShaper::computeValues(android::TextLayoutValue*, SkPaint const*, unsigned short const*, unsigned int, unsigned int, unsigned int, int)+44)
        06-27 16:43:59.585: I/DEBUG(157):     #14  pc 00073a33  /system/lib/libandroid_runtime.so (android::TextLayoutCache::getValue(SkPaint const*, unsigned short const*, int, int, int, int)+226)
        06-27 16:43:59.585: I/DEBUG(157):     #15  pc 00073d49  /system/lib/libandroid_runtime.so (android::TextLayoutEngine::getValue(SkPaint const*, unsigned short const*, int, int, int, int)+36)
        06-27 16:43:59.585: I/DEBUG(157):     #16  pc 00072371  /system/lib/libandroid_runtime.so (android::TextLayout::getTextRunAdvances(SkPaint*, unsigned short const*, int, int, int, int, float*, float*)+42)
        06-27 16:43:59.585: I/DEBUG(157):     #17  pc 0006f319  /system/lib/libandroid_runtime.so
        06-27 16:43:59.585: I/DEBUG(157):     #18  pc 0006f49b  /system/lib/libandroid_runtime.so
        06-27 16:43:59.585: I/DEBUG(157):     #19  pc 0001e290  /system/lib/libdvm.so (dvmPlatformInvoke+112)
        06-27 16:43:59.585: I/DEBUG(157):     #20  pc 0004d411  /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+396)
        06-27 16:43:59.585: I/DEBUG(157):     #21  pc 000276a0  /system/lib/libdvm.so
        06-27 16:43:59.585: I/DEBUG(157):     #22  pc 0002b57c  /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
        06-27 16:43:59.585: I/DEBUG(157):     #23  pc 0005fc31  /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+272)
        06-27 16:43:59.585: I/DEBUG(157):     #24  pc 0005fc5b  /system/lib/libdvm.so (dvmCallMethod(Thread*, Method const*, Object*, JValue*, ...)+20)
        06-27 16:43:59.585: I/DEBUG(157):     #25  pc 000547d7  /system/lib/libdvm.so
        06-27 16:43:59.585: I/DEBUG(157):     #26  pc 0000e3d8  /system/lib/libc.so (__thread_entry+72)
        06-27 16:43:59.585: I/DEBUG(157):     #27  pc 0000dac4  /system/lib/libc.so (pthread_create+160)
        06-27 16:43:59.585: I/DEBUG(157): stack:

... 06-27 16:43:59.595: I/DEBUG(157): 730368a4 404b3e60 /system/lib/libskia.so (SkScalerContext::charToGlyphID(int)+16)

Does any one found this as well? I wasn't able to reproduce it regularly...

lukjar
  • 7,220
  • 2
  • 31
  • 40

1 Answers1

2

Yes, this happens to me too (and consistently!) in TestPocketSphinxAndAndroidASR on a Nexsus S running Android 4.1, in an application named ca.ilanguage.labs.pocketsphix with tag libc.

The exact error:

Fatal signal 11 (SIGSEGV) at 0x0000001a (code=1), thread 3182 (FinalizerDaemon)

This doesn't happen on Android 2.2. Looks like an incompatible dependency on specific NDK code and I don't know yet how to fix this for Android 4.1.

I suspected that this has to do with Toast and sure enough, if I comment out the following line, the app doesn't crash! (even on Android 4.1)

Toast.makeText(TestPocketSphinxAndAndroidASR.this, "Possible recognitions: "+matches.toString(), Toast.LENGTH_LONG).show();

If I break the single-line statement to:

  String msg = "Possible recognitions: "+ matches.toString();
  Toast toast = Toast.makeText(TestPocketSphinxAndAndroidASR.this, msg, Toast.LENGTH_LONG);
  toast.show();

The crash still persists, but if I insert a LogCat statement in between, the app displays the toast without crashing!

  String msg = "Possible recognitions: "+ matches.toString();
  Log.d(getClass().getName(), msg);
  Toast toast = Toast.makeText(TestPocketSphinxAndAndroidASR.this, msg, Toast.LENGTH_LONG);
  toast.show();

Weird.

AndroSphinx
  • 131
  • 1
  • 6