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

GLES2 on Android using ETC texture segfaults at core/os/memory.cpp:87:alloc_static() - Condition ' !mem ' is true. #26301

Closed
akien-mga opened this Issue Feb 26, 2019 · 1 comment

Comments

Projects
None yet
2 participants
@akien-mga
Copy link
Member

akien-mga commented Feb 26, 2019

Godot version:
Both 3.1 beta 7 and 84b3d44 (from #26299)

OS/device including version:
Xiaomi Pocophone F1
GPU Qualcomm Adreno 630
Running MIUI Global 10.2.2.0 / Android 9

Also reproduced on:
Samsung Galaxy S3
GPU ARM Mali-400 MP4
Running LineageOS 14.1 / Android 7.1.2

Issue description:
Whenever I include a PNG texture in a test project (apart from logo), and ensure that it is properly imported to ETC (and not ETC2), the application crashes on both phones mentioned above.

adb logcat shows:

02-26 11:49:34.390 11524 11558 E godot   : **ERROR**: Condition ' !mem ' is true. returned: __null
02-26 11:49:34.390 11524 11558 E godot   :    At: core/os/memory.cpp:87:alloc_static() - Condition ' !mem ' is true. returned: __null
02-26 11:49:34.390 11524 11558 F libc    : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 11558 (GLThread 84), pid 11524 (nteractivecubes)
02-26 11:49:34.418 11571 11571 I crash_dump32: obtaining output fd from tombstoned, type: kDebuggerdTombstone
02-26 11:49:34.419  1085  1085 I /system/bin/tombstoned: received crash request for pid 11558
02-26 11:49:34.419 11571 11571 I crash_dump32: performing dump of process 11524 (target tid = 11558)
02-26 11:49:34.424 11524 11558 F libc    : failed to wait for crash_dump helper: No child processes
02-26 11:49:34.427 11571 11571 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
02-26 11:49:34.427 11571 11571 F DEBUG   : Build fingerprint: 'Xiaomi/beryllium/beryllium:9/PKQ1.180729.001/V10.2.2.0.PEJMIXM:user/release-keys'
02-26 11:49:34.427 11571 11571 F DEBUG   : Revision: '0'
02-26 11:49:34.427 11571 11571 F DEBUG   : ABI: 'arm'
02-26 11:49:34.427 11571 11571 F DEBUG   : pid: 11524, tid: 11558, name: GLThread 84  >>> org.godotengine.interactivecubes <<<
02-26 11:49:34.427 11571 11571 F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
02-26 11:49:34.427 11571 11571 F DEBUG   : Cause: null pointer dereference
02-26 11:49:34.427 11571 11571 F DEBUG   :     r0  00000000  r1  c5bd4724  r2  000aa9b2  r3  00000000
02-26 11:49:34.427 11571 11571 F DEBUG   :     r4  000aaab2  r5  00000000  r6  cf8bee80  r7  cf8beea8
02-26 11:49:34.427 11571 11571 F DEBUG   :     r8  00000000  r9  e2d7ca00  r10 d3845d40  r11 d38428e8
02-26 11:49:34.427 11571 11571 F DEBUG   :     ip  f3cef5fc  sp  d38428a8  lr  f3bb0a91  pc  f3c64f8c
02-26 11:49:34.493 11571 11571 F DEBUG   : 
02-26 11:49:34.493 11571 11571 F DEBUG   : backtrace:
02-26 11:49:34.493 11571 11571 F DEBUG   :     #00 pc 00019f8c  /system/lib/libc.so (__memcpy_base+244)
02-26 11:49:34.493 11571 11571 F DEBUG   :     #01 pc 00017a8d  /system/lib/libandroidfw.so (android::_FileAsset::read(void*, unsigned int)+68)
02-26 11:49:34.493 11571 11571 F DEBUG   :     #02 pc 0009f710  /data/app/org.godotengine.interactivecubes-5JltQUVErbcAr-WV8MBzvQ==/lib/arm/libgodot_android.so (FileAccessAndroid::get_buffer(unsigned char*, int) const+56)
02-26 11:49:34.493 11571 11571 F DEBUG   :     #03 pc 014045cc  /data/app/org.godotengine.interactivecubes-5JltQUVErbcAr-WV8MBzvQ==/lib/arm/libgodot_android.so (StreamTexture::_load_data(String const&, int&, int&, int&, int&, int&, Ref<Image>&, int)+1424)
02-26 11:49:34.493 11571 11571 F DEBUG   :     #04 pc 014053e0  /data/app/org.godotengine.interactivecubes-5JltQUVErbcAr-WV8MBzvQ==/lib/arm/libgodot_android.so (StreamTexture::load(String const&)+132)
02-26 11:49:34.493 11571 11571 F DEBUG   :     #05 pc 01406b0c  /data/app/org.godotengine.interactivecubes-5JltQUVErbcAr-WV8MBzvQ==/lib/arm/libgodot_android.so (ResourceFormatLoaderStreamTexture::load(String const&, String const&, Error*)+104)
02-26 11:49:34.493 11571 11571 F DEBUG   :     #06 pc 01bdc7c4  /data/app/org.godotengine.interactivecubes-5JltQUVErbcAr-WV8MBzvQ==/lib/arm/libgodot_android.so (ResourceLoader::_load(String const&, String const&, String const&, bool, Error*)+372)
02-26 11:49:34.493 11571 11571 F DEBUG   :     #07 pc 01bd6604  /data/app/org.godotengine.interactivecubes-5JltQUVErbcAr-WV8MBzvQ==/lib/arm/libgodot_android.so (ResourceFormatImporter::load(String const&, String const&, Error*)+240)
02-26 11:49:34.493 11571 11571 F DEBUG   :     #08 pc 01bdc7c4  /data/app/org.godotengine.interactivecubes-5JltQUVErbcAr-WV8MBzvQ==/lib/arm/libgodot_android.so (ResourceLoader::_load(String const&, String const&, String const&, bool, Error*)+372)
02-26 11:49:34.493 11571 11571 F DEBUG   :     #09 pc 01bdd758  /data/app/org.godotengine.interactivecubes-5JltQUVErbcAr-WV8MBzvQ==/lib/arm/libgodot_android.so (ResourceLoader::load(String const&, String const&, bool, Error*)+1676)
02-26 11:49:34.493 11571 11571 F DEBUG   :     #10 pc 0139a054  /data/app/org.godotengine.interactivecubes-5JltQUVErbcAr-WV8MBzvQ==/lib/arm/libgodot_android.so (ResourceInteractiveLoaderText::poll()+3124)
02-26 11:49:34.493 11571 11571 F DEBUG   :     #11 pc 01bdaebc  /data/app/org.godotengine.interactivecubes-5JltQUVErbcAr-WV8MBzvQ==/lib/arm/libgodot_android.so (ResourceFormatLoader::load(String const&, String const&, Error*)+1088)
02-26 11:49:34.493 11571 11571 F DEBUG   :     #12 pc 01bdc7c4  /data/app/org.godotengine.interactivecubes-5JltQUVErbcAr-WV8MBzvQ==/lib/arm/libgodot_android.so (ResourceLoader::_load(String const&, String const&, String const&, bool, Error*)+372)
02-26 11:49:34.493 11571 11571 F DEBUG   :     #13 pc 01bdd758  /data/app/org.godotengine.interactivecubes-5JltQUVErbcAr-WV8MBzvQ==/lib/arm/libgodot_android.so (ResourceLoader::load(String const&, String const&, bool, Error*)+1676)
02-26 11:49:34.493 11571 11571 F DEBUG   :     #14 pc 0139a054  /data/app/org.godotengine.interactivecubes-5JltQUVErbcAr-WV8MBzvQ==/lib/arm/libgodot_android.so (ResourceInteractiveLoaderText::poll()+3124)
02-26 11:49:34.493 11571 11571 F DEBUG   :     #15 pc 01bdaebc  /data/app/org.godotengine.interactivecubes-5JltQUVErbcAr-WV8MBzvQ==/lib/arm/libgodot_android.so (ResourceFormatLoader::load(String const&, String const&, Error*)+1088)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #16 pc 01bdc7c4  /data/app/org.godotengine.interactivecubes-5JltQUVErbcAr-WV8MBzvQ==/lib/arm/libgodot_android.so (ResourceLoader::_load(String const&, String const&, String const&, bool, Error*)+372)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #17 pc 01bdd758  /data/app/org.godotengine.interactivecubes-5JltQUVErbcAr-WV8MBzvQ==/lib/arm/libgodot_android.so (ResourceLoader::load(String const&, String const&, bool, Error*)+1676)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #18 pc 000f13c4  /data/app/org.godotengine.interactivecubes-5JltQUVErbcAr-WV8MBzvQ==/lib/arm/libgodot_android.so (Main::start()+20044)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #19 pc 000ab2b8  /data/app/org.godotengine.interactivecubes-5JltQUVErbcAr-WV8MBzvQ==/lib/arm/libgodot_android.so (Java_org_godotengine_godot_GodotLib_step+96)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #20 pc 00413479  /system/lib/libart.so (art_quick_generic_jni_trampoline+40)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #21 pc 0040ef75  /system/lib/libart.so (art_quick_invoke_stub_internal+68)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #22 pc 003e801b  /system/lib/libart.so (art_quick_invoke_static_stub+222)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #23 pc 000a1427  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+154)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #24 pc 001e6615  /system/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+236)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #25 pc 001e110f  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+814)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #26 pc 003e3b53  /system/lib/libart.so (MterpInvokeStatic+130)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #27 pc 00401d94  /system/lib/libart.so (ExecuteMterpImpl+14612)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #28 pc 0007b7ac  /dev/ashmem/dalvik-classes.dex extracted in memory from /data/app/org.godotengine.interactivecubes-5JltQUVErbcAr-WV8MBzvQ==/base.apk (deleted) (org.godotengine.godot.GodotView$Renderer.onDrawFrame)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #29 pc 001c588b  /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.1040734517+378)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #30 pc 001c9f71  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+152)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #31 pc 001e10f7  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+790)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #32 pc 003e3747  /system/lib/libart.so (MterpInvokeInterface+1010)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #33 pc 00401e14  /system/lib/libart.so (ExecuteMterpImpl+14740)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #34 pc 00b8b5ce  /system/framework/boot-framework.vdex (android.opengl.GLSurfaceView$GLThread.guardedRun+1102)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #35 pc 001c588b  /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.1040734517+378)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #36 pc 001c9f71  /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+152)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #37 pc 001e10f7  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+790)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #38 pc 003e3a05  /system/lib/libart.so (MterpInvokeDirect+196)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #39 pc 00401d14  /system/lib/libart.so (ExecuteMterpImpl+14484)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #40 pc 00b8bb50  /system/framework/boot-framework.vdex (android.opengl.GLSurfaceView$GLThread.run+48)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #41 pc 001c588b  /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.1040734517+378)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #42 pc 001c9eb7  /system/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+82)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #43 pc 003d6679  /system/lib/libart.so (artQuickToInterpreterBridge+880)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #44 pc 004134ff  /system/lib/libart.so (art_quick_to_interpreter_bridge+30)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #45 pc 0040ef75  /system/lib/libart.so (art_quick_invoke_stub_internal+68)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #46 pc 003e7f19  /system/lib/libart.so (art_quick_invoke_stub+224)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #47 pc 000a1415  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+136)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #48 pc 003487bd  /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+52)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #49 pc 00349515  /system/lib/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue*)+320)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #50 pc 0036a487  /system/lib/libart.so (art::Thread::CreateCallback(void*)+866)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #51 pc 000637f5  /system/lib/libc.so (__pthread_start(void*)+22)
02-26 11:49:34.494 11571 11571 F DEBUG   :     #52 pc 0001e019  /system/lib/libc.so (__start_thread+24)

Steps to reproduce:

  • Download attached demo "textured" (https://github.com/godotengine/godot-demo-projects/tree/master/misc/multitouch_cubes modified to run on GLES2)

  • Export to phone (debug build), try to run it, check adb logcat for crash log

  • Download attached demo "untextured" (same demo, without any texture)

  • Export to phone (debug build), it should run fine. On my Samsung Galaxy S3 the CubeMeshes are not visible, but that's a different issue.

Minimal reproduction project:

@akien-mga

This comment has been minimized.

Copy link
Member Author

akien-mga commented Feb 26, 2019

Fixed by 5eeb06f.

@akien-mga akien-mga closed this Feb 26, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.