Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash sometimes in skia webp decoder #141

Closed
lindow2009 opened this issue Apr 13, 2015 · 9 comments
Closed

Crash sometimes in skia webp decoder #141

lindow2009 opened this issue Apr 13, 2015 · 9 comments
Assignees
Labels

Comments

@lindow2009
Copy link

CrashAnrDetector﹕ Build: samsung/hlltezm/hllte:4.3/JLS36C/N7508VZMUAND3:user/release-keys
Hardware: MSM8928
Revision: 6
Bootloader: N7508VZMUAND3
Radio: unknown
Kernel: Linux version 3.4.0-2645628 (se.infra@R0301-09) (gcc version 4.7 (GCC) ) #1 SMP PREEMPT Tue Apr 15 16:57:48 KST 2014
*** *** *** *** *** *** *** *** *** *** *** *** *** *** ** ***
Build fingerprint: 'samsung/hlltezm/hllte:4.3/JLS36C/N7508VZMUAND3:user/release-keys'
Revision: '6'
pid: 17313, tid: 17396, name: thread-3 >>> com.test.fresco<<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad
Abort message: '@@@ ABORTING: invalid address or address of corrupt block 0x64bc6000 passed to dlfree'
r0 00000027 r1 00000000 r2 00000008 r3 deadbaad
r4 00000000 r5 64eb542c r6 40063000 r7 64bc6008
r8 6364de20 r9 00000000 sl 6364dd28 fp 00000006
ip 00000001 sp 64eb5428 lr 40088497 pc 400859b8 cpsr 60000030
d0 524f424120404040 d1 6e69203a474e4954
d2 64612064696c6176 d3 726f207373657264
d4 0300030003000300 d5 0300030003000300
d6 0300030003000300 d7 0300030003000300
d8 410000003f800000 d9 4008000041000000
d10 4008000000000000 d11 0000000000000000
d12 0000000000000000 d13 0000000000000000
d14 0000000000000000 d15 0000000000000000
d16 7373657264646120 d17 72726f6320666f20
d18 0400040004000400 d19 8080808080808080
d20 0100010001000100 d21 0100010001000100
d22 8080808080808080 d23 8080808080808080
d24 8080808080808080 d25 8080808080808080
d26 0100010001000100 d27 0100010001000100
d28 0100010001000100 d29 0100010001000100
d30 0400040004000400 d31 0400040004000400
scr 28000012
backtrace:
#00 pc 0001e9b8 /system/lib/libc.so
#1 pc 0001c914 /system/lib/libc.so (abort+4)
#2 pc 00012495 /system/lib/libc.so
#3 pc 00011145 /system/lib/libc.so (dlfree+1184)
#4 pc 0000dc67 /system/lib/libc.so (free+10)
#5 pc 00119a68 /system/lib/libskia.so
#6 pc 00119e48 /system/lib/libskia.so (SkWEBPImageDecoder::onDecode(SkStream_, SkBitmap_, SkImageDecoder::Mode)+256)
#7 pc 00113f10 /system/lib/libskia.so (SkImageDecoder::decode(SkStream_, SkBitmap_, SkBitmap::Config, SkImageDecoder::Mode, bool)+168)
#8 pc 0007cd81 /system/lib/libandroid_runtime.so
#9 pc 0007d43b /system/lib/libandroid_runtime.so
#10 pc 00020b8c /system/lib/libdvm.so (dvmPlatformInvoke+112)
#11 pc 000516eb /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const_, JValue_, Method const_, Thread_)+398)
#12 pc 0002a020 /system/lib/libdvm.so
#13 pc 0002e9e4 /system/lib/libdvm.so (dvmInterpret(Thread_, Method const_, JValue_)+184)
#14 pc 0006387d /system/lib/libdvm.so (dvmCallMethodV(Thread_, Method const_, Object_, bool, JValue_, std::va_list)+292)
#15 pc 000638a7 /system/lib/libdvm.so (dvmCallMethod(Thread
, Method const
, Object_, JValue
, ...)+20)
#16 pc 000585fb /system/lib/libdvm.so
#17 pc 0000cc60 /system/lib/libc.so (__thread_entry+72)
#18 pc 0000cddc /system/lib/libc.so (pthread_create+208)
stack:
64eb53e8 64eb5528 [stack:17396]
64eb53ec 00000000
64eb53f0 400af170 /system/lib/libc.so
64eb53f4 5d69e060
64eb53f8 00000015
64eb53fc 40087445 /system/lib/libc.so (__sflush+56)
64eb5400 400af264 /system/lib/libc.so
64eb5404 400af1c4 /system/lib/libc.so
64eb5408 00000000
64eb540c 40088497 /system/lib/libc.so (_fwalk+34)
64eb5410 40087741 /system/lib/libc.so (_cleanup)
64eb5414 64eb542c [stack:17396]
64eb5418 40063000
64eb541c 64bc6008
64eb5420 df0027ad
64eb5424 00000000
#00 64eb5428 400b2218
64eb542c fffffbdf
64eb5430 6295f000
64eb5434 0000005a
64eb5438 ffffffff
64eb543c 00000000
64eb5440 00000003
64eb5444 64eb546c [stack:17396]
64eb5448 400b2008

how to fix it?ths

@michalgr michalgr self-assigned this Apr 13, 2015
@michalgr
Copy link
Contributor

I am not able to say what the fix is by just looking at the crash dump. Can you tell us how is the Fresco used in the app and what steps exactly do you take to reproduce this ?

@lindow2009
Copy link
Author

sometimes crash but sometimes not.I can't reproduce 100%, but when i enter a page and exit repeat 7-10 times,it crash great probability.
i use fresco like this:

            if (!TextUtils.isEmpty(picUrl)) {
                if (resId != null) {
                    GenericDraweeHierarchy hierarchy = imageView.getHierarchy();
                    if (hierarchy == null) {
                        hierarchy = GenericDraweeHierarchyBuilder.newInstance(AppContext.baseContext.getResources())
                                .setPlaceholderImage(AppContext.baseContext.getResources().getDrawable(resId), ScalingUtils.ScaleType.CENTER_INSIDE).build();
                        imageView.setHierarchy(hierarchy);
                    } else {
                        hierarchy.setPlaceholderImage(resId);
                    }
                }
                imageView.setImageURI(Uri.parse(picUrl));
            }

@michalgr
Copy link
Contributor

And which version of fresco do you use ? Is it 0.1.0 or 0.2.0 ?

@michalgr
Copy link
Contributor

And on more question, the code you posted, which method is it part of ?

@lindow2009
Copy link
Author

version 0.2.0

    public static void displayImage(String picUrl, SimpleDraweeView imageView, int width, Integer resId) {
        try {
            picUrl = getPicUrl(picUrl, width);
            if (!TextUtils.isEmpty(picUrl)) {
                if (resId != null) {
                    GenericDraweeHierarchy hierarchy = imageView.getHierarchy();
                    if (hierarchy == null) {
                        hierarchy = GenericDraweeHierarchyBuilder.newInstance(AppContext.baseContext.getResources())
                                .setPlaceholderImage(AppContext.baseContext.getResources().getDrawable(resId), ScalingUtils.ScaleType.CENTER_INSIDE).build();
                        imageView.setHierarchy(hierarchy);
                    } else {
                        hierarchy.setPlaceholderImage(resId);
                    }
                }
                imageView.setImageURI(Uri.parse(picUrl));
            }
        } catch (Throwable e) {
            e.printStackTrace();
        }
    }

@tyronen tyronen added the bug label Apr 15, 2015
@michalgr
Copy link
Contributor

I wonder if this is a duplication of #140. In your crash dump I see that the crash happened when skia's webp decoder was executing. The other issue is exactly about a native crash happening on Android 4.3 when displaying webp images. Does the one here happen when there are no webps as well ?

@lindow2009
Copy link
Author

yes,that happens display webP

@tyronen tyronen changed the title crash sometimes rash sometimes in skia webp decoder May 1, 2015
@tyronen tyronen changed the title rash sometimes in skia webp decoder Crash sometimes in skia webp decoder May 1, 2015
@ghost
Copy link

ghost commented Aug 5, 2015

Thank you for reporting this issue and appreciate your patience. We've notified the core team for an update on this issue. We're looking for a response within the next 30 days or the issue may be closed.

@kirwan
Copy link
Contributor

kirwan commented Jul 14, 2017

Over two years has passed so I'm closing this issue.

Please reopen if anyone is still seeing this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants