'Crash when run RENDERTHREAD_SKIA_PIPELINE_TEST(SkiaPipeline, renderFrame) testcase

accord to base\libs\hwui\tests\macrobench\how_to_run.txt I compile hwui_unit_test app, and push to our android device, after reboot we run this testcase, and crash every time,

the result of testcase run process:

XXX:/data # ./hwui_unit_tests
Running main() from external/googletest/googletest/src/gtest_main.cc 
[==========] Running 1 test from 1 test suite. 
[----------] Global test environment set-up. 
[----------] 1 test from SkiaPipeline 
[ RUN   ] SkiaPipeline.renderFrame_SkiaGL 
Segmentation fault

the crash information:

2022-02-18 01:18:01.911 25505-25505/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2022-02-18 01:18:01.911 25505-25505/? A/DEBUG: Build fingerprint: XXX cust format error.:user/release-keys'
022-02-18 01:18:01.911 25505-25505/? A/DEBUG: Revision: '0'
2022-02-18 01:18:01.911 25505-25505/? A/DEBUG: ABI: 'arm64'
2022-02-18 01:18:01.912 25505-25505/? A/DEBUG: Timestamp: 2022-02-18 01:18:01+0800
2022-02-18 01:18:01.912 25505-25505/? A/DEBUG: pid: 25461, tid: 25498, name: RenderThread  >>> ./hwui_unit_tests <<<
2022-02-18 01:18:01.912 25505-25505/? A/DEBUG: uid: 0
2022-02-18 01:18:01.912 25505-25505/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xdd0
2022-02-18 01:18:01.912 25505-25505/? A/DEBUG: Cause: null pointer dereference
2022-02-18 01:18:01.912 25505-25505/? A/DEBUG:     x0  0000000000001f02  x1  0000007d8937f190  x2  0000000000000004  x3  0000000000000005
2022-02-18 01:18:01.912 25505-25505/? A/DEBUG:     x4  0000000000000000  x5  4008000000000000  x6  0000000000000000  x7  7f7f7f7f7f7f7f7f
2022-02-18 01:18:01.912 25505-25505/? A/DEBUG:     x8  0000000000000000  x9  0000000000001f03  x10 0000007e0c0a305c  x11 000000000000003b
2022-02-18 01:18:01.912 25505-25505/? A/DEBUG:     x12 0000000000000018  x13 ffffffffffffffff  x14 ffffffffff000000  x15 ffffffffffffffff
2022-02-18 01:18:01.912 25505-25505/? A/DEBUG:     x16 0000007e0bd20268  x17 0000007e095e2280  x18 0000007d88c26000  x19 0000000000001f02
2022-02-18 01:18:01.912 25505-25505/? A/DEBUG:     x20 0000005b6f26d73c  x21 0000000000000000  x22 0000007e0bd1e9b8  x23 0000007e094e6328
2022-02-18 01:18:01.912 25505-25505/? A/DEBUG:     x24 0000007d89380020  x25 0000007d8937fd50  x26 0000007d89380020  x27 0000007e0c6ae020
2022-02-18 01:18:01.912 25505-25505/? A/DEBUG:     x28 20c49ba5e353f7cf  x29 0000007d8937fa50
2022-02-18 01:18:01.912 25505-25505/? A/DEBUG:     sp  0000007d8937fa00  lr  0000005b6f3e1494  pc  0000007e0bd1e9ec
2022-02-18 01:18:01.981 25505-25505/? A/DEBUG: backtrace:
2022-02-18 01:18:01.981 25505-25505/? A/DEBUG:       #00 pc 00000000000079ec  /system/lib64/libGLESv1_CM.so (glGetString+52) (BuildId: 2f2949fde778c51cf7d20df6fd749253)
2022-02-18 01:18:01.981 25505-25505/? A/DEBUG:       #01 pc 00000000003133ec  /data/hwui_unit_tests (GrGLCreateNativeInterface()+68) (BuildId: 614b58f18958c093710e2b40bd8c6044)
2022-02-18 01:18:01.981 25505-25505/? A/DEBUG:       #02 pc 00000000004a58f8  /data/hwui_unit_tests (android::uirenderer::debug::GlesDriver::getSkiaInterface()+16) (BuildId: 614b58f18958c093710e2b40bd8c6044)
2022-02-18 01:18:01.981 25505-25505/? A/DEBUG:       #03 pc 00000000002de90c  /data/hwui_unit_tests (android::uirenderer::renderthread::RenderThread::requireGlContext()+108) (BuildId: 614b58f18958c093710e2b40bd8c6044)
2022-02-18 01:18:01.981 25505-25505/? A/DEBUG:       #04 pc 00000000002fd3f8  /data/hwui_unit_tests (android::uirenderer::TestUtils::TestTask::run()+40) (BuildId: 614b58f18958c093710e2b40bd8c6044)
2022-02-18 01:18:01.981 25505-25505/? A/DEBUG:       #05 pc 00000000003051e8  /data/hwui_unit_tests (std::__1::packaged_task<void ()>::operator()()+88) (BuildId: 614b58f18958c093710e2b40bd8c6044)
2022-02-18 01:18:01.981 25505-25505/? A/DEBUG:       #06 pc 00000000002a9b48  /data/hwui_unit_tests (android::uirenderer::WorkQueue::process()+228) (BuildId: 614b58f18958c093710e2b40bd8c6044)
2022-02-18 01:18:01.981 25505-25505/? A/DEBUG:       #07 pc 00000000002a988c  /data/hwui_unit_tests (android::uirenderer::renderthread::RenderThread::threadLoop()+68) (BuildId: 614b58f18958c093710e2b40bd8c6044)
2022-02-18 01:18:01.981 25505-25505/? A/DEBUG:       #08 pc 00000000000136d4  /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+288) (BuildId: 5719b1e0d0dc5d254cb5883c52d4135f)
2022-02-18 01:18:01.981 25505-25505/? A/DEBUG:       #09 pc 00000000000cf7c0  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+36) (BuildId: e8a9123d826d0dbc18dd7e6056df7051)
2022-02-18 01:18:01.981 25505-25505/? A/DEBUG:       #10 pc 00000000000721a8  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: e8a9123d826d0dbc18dd7e6056df7051)

I add some logcat information into sk_sp GrGLMakeAssembledInterface(void *ctx, GrGLGetProc get) function,when it run the normal system application, it look run fine, and no problem,so I do not know why the test case get crash, and they run the same GrGLMakeAssembledInterface functions, and input the same params.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source