MCMrARM / mcpelauncher-linux

Please note this is a legacy repository, please go to: https://github.com/minecraft-linux/mcpelauncher-manifest/wiki
GNU General Public License v3.0
311 stars 44 forks source link

Crash in mce::ShaderOGL::linkShader during startup #52

Open Stormwind99 opened 8 years ago

Stormwind99 commented 8 years ago

Running under Fedora 22.

Output snippet:

readAssetFile: shaders/renderchunk.vertex
readAssetFile: shaders/renderchunk.fragment
readAssetFile: shaders/util.h
warn: readAssetFile with empty path!
readAssetFile: materials/terrain.material
readAssetFile: shaders/renderchunk.vertex
readAssetFile: shaders/renderchunk.fragment
readAssetFile: shaders/util.h
warn: readAssetFile with empty path!
readAssetFile: materials/hologram.material
readAssetFile: shaders/color_texture.fragment
readAssetFile: shaders/hologram_sr.vertex
readAssetFile: shaders/hologram_sr.fragment
Signal 11 received
Getting stacktrace...
Backtrace elements: 16
#0 ./mcpelauncher(_Z12handleSignali+0x3c) [0x80634cb]
#1 linux-gate.so.1(__kernel_sigreturn+0) [0xb77a6c14]
#2 /usr/lib/dri/r600_dri.so(+0x288b33) [0xb6050b33]
#3 /usr/lib/dri/r600_dri.so(+0x28039a) [0xb604839a]
#4 /usr/lib/dri/r600_dri.so(+0x27fd76) [0xb6047d76]
#5 /usr/lib/dri/r600_dri.so(+0x27fee3) [0xb6047ee3]
#6 /usr/lib/dri/r600_dri.so(+0x27fd76) [0xb6047d76]
#7 /usr/lib/dri/r600_dri.so(+0x27ff57) [0xb6047f57]
#8 /usr/lib/dri/r600_dri.so(+0x27fd76) [0xb6047d76]
#9 /usr/lib/dri/r600_dri.so(+0x27fbac) [0xb6047bac]
#10 /usr/lib/dri/r600_dri.so(+0x28913c) [0xb605113c]
#11 /usr/lib/dri/r600_dri.so(+0x292685) [0xb605a685]
#12 /usr/lib/dri/r600_dri.so(+0x1fb7e8) [0xb5fc37e8]
#13 /usr/lib/dri/r600_dri.so(+0x128133) [0xb5ef0133]
#14 /usr/lib/libGLESv2.so(glLinkProgram+0x24) [0xb7799ba4]
#15 HYBRIS mce::ShaderOGL::linkShader()+47 in libminecraftpe.so+0x28a0af [0xb6aac0af]

Backtrace from gdb:

(gdb) info threads
  Id   Target Id         Frame
  7    Thread 0xb49d2b40 (LWP 21742) "mcpelauncher" 0xb7fffc31 in __kernel_vsyscall ()
  6    Thread 0xb415bb40 (LWP 21743) "Streaming 1" 0xb7fffc31 in __kernel_vsyscall ()
  5    Thread 0xb395ab40 (LWP 21744) "IO Thread" 0xb7fffc31 in __kernel_vsyscall ()
  4    Thread 0xb2fffb40 (LWP 21745) "REST Thread" 0xb7fffc31 in __kernel_vsyscall ()
  3    Thread 0xb3118b40 (LWP 21748) "Main Thread" 0xb7fffc31 in __kernel_vsyscall ()
  2    Thread 0xb27feb40 (LWP 21749) "Main Thread" 0xb7fffc31 in __kernel_vsyscall ()
* 1    Thread 0xb7fb8800 (LWP 21737) "Main Thread" (anonymous namespace)::call_link_visitor::visit_enter (this=0xbfffd7cc, ir=0x93697d4) at link_functions.cpp:75
(gdb) bt
#0  (anonymous namespace)::call_link_visitor::visit_enter (this=0xbfffd7cc, ir=0x93697d4) at link_functions.cpp:75
#1  0xb68a139a in ir_call::accept (this=0x93697d4, v=0xbfffd7cc) at ir_hv_accept.cpp:323
#2  0xb68a0d76 in visit_list_elements (v=v@entry=0xbfffd7cc, l=l@entry=0x9369ff8, statement_list=statement_list@entry=true) at ir_hv_accept.cpp:55
#3  0xb68a0ee3 in ir_function_signature::accept (this=0x9369fd4, v=0xbfffd7cc) at ir_hv_accept.cpp:115
#4  0xb68a0d76 in visit_list_elements (v=v@entry=0xbfffd7cc, l=l@entry=0x93698f8, statement_list=statement_list@entry=false) at ir_hv_accept.cpp:55
#5  0xb68a0f57 in ir_function::accept (this=0x93698e4, v=0xbfffd7cc) at ir_hv_accept.cpp:127
#6  0xb68a0d76 in visit_list_elements (v=v@entry=0xbfffd7cc, l=l@entry=0x9369814, statement_list=statement_list@entry=true) at ir_hv_accept.cpp:55
#7  0xb68a0bac in ir_hierarchical_visitor::run (this=this@entry=0xbfffd7cc, instructions=0x9369814) at ir_hierarchical_visitor.cpp:355
#8  0xb68aa13c in link_function_calls (prog=prog@entry=0x9368c34, main=main@entry=0x9369a6c, shader_list=shader_list@entry=0x9367438,
    num_shaders=num_shaders@entry=2) at link_functions.cpp:346
#9  0xb68b3685 in link_intrastage_shaders (num_shaders=<optimized out>, shader_list=<optimized out>, prog=<optimized out>, ctx=0x80e5e90, mem_ctx=0x934e25c)
    at linker.cpp:1781
#10 link_shaders (ctx=ctx@entry=0x80e5e90, prog=prog@entry=0x9368c34) at linker.cpp:2913
#11 0xb681c7e8 in _mesa_glsl_link_shader (ctx=ctx@entry=0x80e5e90, prog=prog@entry=0x9368c34) at program/ir_to_mesa.cpp:2960
#12 0xb6749133 in link_program (ctx=0x80e5e90, program=<optimized out>) at main/shaderapi.c:946
#13 0xb7ff2ba4 in glLinkProgram (program=230) at es2api/glapi_mapi_tmp.h:2075
#14 0xb73050af in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) thread 7
[Switching to thread 7 (Thread 0xb49d2b40 (LWP 21742))]
#0  0xb7fffc31 in __kernel_vsyscall ()
(gdb) bt
#0  0xb7fffc31 in __kernel_vsyscall ()
#1  0x4dcb1e4c in pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:187
#2  0xb6c9fdfa in cnd_wait (mtx=0x80b9d5c, cond=0x80b9d74) at ../../../../../include/c11/threads_posix.h:154
#3  pipe_semaphore_wait (sema=0x80b9d5c) at ../../../../../src/gallium/auxiliary/os/os_thread.h:259
#4  radeon_drm_cs_emit_ioctl (param=param@entry=0x80b9b08) at radeon_drm_winsys.c:636
#5  0xb6c9f3c8 in impl_thrd_routine (p=0x80b9908) at ../../../../../include/c11/threads_posix.h:87
#6  0x4dcad370 in start_thread (arg=0xb49d2b40) at pthread_create.c:333
#7  0x4db8122e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122
(gdb)

Library

/usr/lib/libGLESv2.so is libGLESv2.so.2.0.0 from mesa-libGLES-devel-10.6.9-1.20151008.fc22.i686

cpuinfo:

cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 Duo CPU     E6850  @ 3.00GHz
stepping        : 11
microcode       : 0xb6
alejzeis commented 8 years ago

Reproduced under Fedora 23 (x86_64) Processor is Intel(R) Core(TM) i5-6300HQ CPU @ 2.30GHz

Snip of output:

readAssetFile: shaders/renderchunk.fragment
readAssetFile: shaders/util.h
warn: readAssetFile with empty path!
readAssetFile: materials/hologram.material
readAssetFile: shaders/color_texture.fragment
readAssetFile: shaders/hologram_sr.vertex
readAssetFile: shaders/hologram_sr.fragment
Signal 11 received
Getting stacktrace...
Backtrace elements: 16
#0 ./mcpelauncher(_Z12handleSignali+0x3c) [0x8063460]
#1 linux-gate.so.1(__kernel_sigreturn+0) [0xf776ebc0]
#2 /usr/lib/dri/i965_dri.so(+0x2d2273) [0xf5c43273]
#3 /usr/lib/dri/i965_dri.so(+0x2c8fea) [0xf5c39fea]
#4 /usr/lib/dri/i965_dri.so(+0x2c89c6) [0xf5c399c6]
#5 /usr/lib/dri/i965_dri.so(+0x2c8b33) [0xf5c39b33]
#6 /usr/lib/dri/i965_dri.so(+0x2c89c6) [0xf5c399c6]
#7 /usr/lib/dri/i965_dri.so(+0x2c8ba7) [0xf5c39ba7]
#8 /usr/lib/dri/i965_dri.so(+0x2c89c6) [0xf5c399c6]
#9 /usr/lib/dri/i965_dri.so(+0x2c87dc) [0xf5c397dc]
#10 /usr/lib/dri/i965_dri.so(+0x2d287c) [0xf5c4387c]
#11 /usr/lib/dri/i965_dri.so(+0x2de5bf) [0xf5c4f5bf]
#12 /usr/lib/dri/i965_dri.so(+0x222488) [0xf5b93488]
#13 /usr/lib/dri/i965_dri.so(+0x11e2b3) [0xf5a8f2b3]
#14 /usr/lib/libGLESv2.so(glLinkProgram+0x24) [0xf77630e4]
#15 HYBRIS mce::ShaderOGL::linkShader()+47 in libminecraftpe.so+0x28a0af [0xf634f0af]
Aborted (core dumped)
MCMrARM commented 8 years ago

Update GPU drivers (by updating kernel).

Stormwind99 commented 8 years ago

Any idea how new (what min version) of a kernel is needed?

I'm running 4.4.6-201.fc22.i686+PAE from Fedora 22, which is the latest pre-built kernel for Fedora 22.

If anyone else wants to test also, here are instructions for getting newer pre-built kernels for Fedora: https://fedoraproject.org/wiki/Kernel_Vanilla_Repositories

alejzeis commented 8 years ago

@Stormwind99 I tried also with 4.5 on Fedora 23, still no luck, guessing a mainstream kernel is probably needed.

Stormwind99 commented 8 years ago

I just tried with kernel 4.6.0-rc6 (specifically pre-built 4.6.0-0.rc6.git0.1.vanilla.knurd.1.fc22.i686+PAE) and get a similar crash.

warn: readAssetFile with empty path!
readAssetFile: materials/terrain.material
readAssetFile: shaders/renderchunk.vertex
readAssetFile: shaders/renderchunk.fragment
readAssetFile: shaders/util.h
warn: readAssetFile with empty path!
readAssetFile: materials/hologram.material
readAssetFile: shaders/color_texture.fragment
readAssetFile: shaders/hologram_sr.vertex
readAssetFile: shaders/hologram_sr.fragment
[New Thread 0xb3155b40 (LWP 5141)]
[New Thread 0xb3161b40 (LWP 5140)]
[New Thread 0xb2fffb40 (LWP 5137)]
[New Thread 0xb39a3b40 (LWP 5136)]
[New Thread 0xb41a4b40 (LWP 5135)]
[New Thread 0xb4a1bb40 (LWP 5134)]

Program received signal SIGSEGV, Segmentation fault.
hash_table_string_hash (key=0x0) at mesa/program/prog_hash_table.c:223
223         while (*str != '\0') {
Missing separate debuginfos, use: dnf debuginfo-install bzip2-libs-1.0.6-14.fc22.i686 dbus-libs-1.8.20-1.fc22.i686 elfutils-libelf-0.166-1.fc22.i686 elfutils-libs-0.166-1.fc22.i686 flac-libs-1.3.1-5.fc22.i686 gsm-1.0.13-12.fc22.i686 json-c-0.12-5.fc22.i686 libasyncns-0.8-8.fc22.i686 libattr-2.4.47-10.fc22.i686 libcap-2.24-7.fc22.i686 libedit-3.1-12.20150325cvs.fc22.i686 libgcrypt-1.6.3-4.fc22.i686 libgpg-error-1.21-1.fc22.i686 libICE-1.0.9-2.fc22.i686 libogg-1.3.2-2.fc22.i686 libSM-1.2.2-2.fc22.i686 libsndfile-1.0.25-18.fc22.i686 libvorbis-1.3.4-3.fc22.i686 libXext-1.3.3-2.fc22.i686 libXi-1.7.4-2.fc22.i686 libXtst-1.2.2-4.fc22.i686 llvm-libs-3.5.0-9.fc22.i686 ncurses-libs-5.9-18.20150214.fc22.i686 pulseaudio-libs-6.0-8.fc22.i686 systemd-libs-219-27.fc22.i686 tcp_wrappers-libs-7.6-80.fc22.i686 xz-libs-5.2.0-2.fc22.i686
(gdb) list
218     {
219         const char *str = (const char *) key;
220         unsigned hash = 5381;
221
222
223         while (*str != '\0') {
224             hash = (hash * 33) + *str;
225             str++;
226         }
227
(gdb) p str
$1 = 0x0
(gdb) bt
#0  hash_table_string_hash (key=0x0) at mesa/program/prog_hash_table.c:223
#1  0xb686b9b1 in get_node (ht=ht@entry=0x936a260, key=key@entry=0x0) at mesa/program/prog_hash_table.c:114
#2  0xb686bb31 in hash_table_find (ht=0x936a260, key=key@entry=0x0) at mesa/program/prog_hash_table.c:132
#3  0xb687c51b in find_symbol (table=0x9158038, name=0x0, name@entry=0xffffffff <error: Cannot access memory at address 0xffffffff>) at mesa/program/symbol_table.c:189
#4  _mesa_symbol_table_find_symbol (table=0x9158038, name_space=name_space@entry=-1, name=name@entry=0x0) at mesa/program/symbol_table.c:227
#5  0xb68db63f in get_entry (name=name@entry=0x0, this=0x93697dc) at glsl_symbol_table.cpp:234
#6  glsl_symbol_table::get_function (this=0x93697dc, name=name@entry=0x0) at glsl_symbol_table.cpp:227
#7  0xb68f2a85 in find_matching_signature (name=name@entry=0x0, actual_parameters=actual_parameters@entry=0x8a2d9a8, shader_list=shader_list@entry=0xbfffd804,
    num_shaders=num_shaders@entry=1, use_builtin=true) at link_functions.cpp:314
#8  0xb68f2b5b in (anonymous namespace)::call_link_visitor::visit_enter (this=0xbfffd7dc, ir=0x9369774) at link_functions.cpp:82
#9  0xb68ea39a in ir_call::accept (this=0x9369774, v=0xbfffd7dc) at ir_hv_accept.cpp:323
#10 0xb68e9d76 in visit_list_elements (v=v@entry=0xbfffd7dc, l=l@entry=0x9369f98, statement_list=statement_list@entry=true) at ir_hv_accept.cpp:55
#11 0xb68e9ee3 in ir_function_signature::accept (this=0x9369f74, v=0xbfffd7dc) at ir_hv_accept.cpp:115
#12 0xb68e9d76 in visit_list_elements (v=v@entry=0xbfffd7dc, l=l@entry=0x9369898, statement_list=statement_list@entry=false) at ir_hv_accept.cpp:55
#13 0xb68e9f57 in ir_function::accept (this=0x9369884, v=0xbfffd7dc) at ir_hv_accept.cpp:127
#14 0xb68e9d76 in visit_list_elements (v=v@entry=0xbfffd7dc, l=l@entry=0x93697b4, statement_list=statement_list@entry=true) at ir_hv_accept.cpp:55
#15 0xb68e9bac in ir_hierarchical_visitor::run (this=this@entry=0xbfffd7dc, instructions=0x93697b4) at ir_hierarchical_visitor.cpp:355
#16 0xb68f313c in link_function_calls (prog=prog@entry=0x9368bfc, main=main@entry=0x9369a0c, shader_list=shader_list@entry=0x935b0f0, num_shaders=num_shaders@entry=2)
    at link_functions.cpp:346
#17 0xb68fc685 in link_intrastage_shaders (num_shaders=<optimized out>, shader_list=<optimized out>, prog=<optimized out>, ctx=0x80e5e90, mem_ctx=0x9339acc) at linker.cpp:1781
#18 link_shaders (ctx=ctx@entry=0x80e5e90, prog=prog@entry=0x9368bfc) at linker.cpp:2913
#19 0xb68657e8 in _mesa_glsl_link_shader (ctx=ctx@entry=0x80e5e90, prog=prog@entry=0x9368bfc) at program/ir_to_mesa.cpp:2960
#20 0xb6792133 in link_program (ctx=0x80e5e90, program=<optimized out>) at main/shaderapi.c:946
#21 0xb7ff0ba4 in glLinkProgram (program=230) at es2api/glapi_mapi_tmp.h:2075
#22 0xb734e0af in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

(gdb) frame 7
#7  0xb68f2a85 in find_matching_signature (name=name@entry=0x0, actual_parameters=actual_parameters@entry=0x8a2d9a8, shader_list=shader_list@entry=0xbfffd804,
    num_shaders=num_shaders@entry=1, use_builtin=true) at link_functions.cpp:314
314           ir_function *const f = shader_list[i]->symbols->get_function(name);

name is null here, which hash_table_string_hash called below glsl_symbol_table::get_function() can't handle.

Stormwind99 commented 8 years ago

Related to #47 ?

svilex commented 8 years ago

the same is happening to me :pensive: