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

Getting a crash from epoxy_get_proc_address #36

Closed
nacho opened this issue Oct 30, 2014 · 12 comments
Closed

Getting a crash from epoxy_get_proc_address #36

nacho opened this issue Oct 30, 2014 · 12 comments

Comments

@nacho
Copy link

nacho commented Oct 30, 2014

Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
Missing separate debuginfos, use: debuginfo-install dbus-libs-1.6.12-9.fc20.x86_64 expat-2.1.0-7.fc20.x86_64 freetype-2.5.0-5.fc20.x86_64 glibc-2.18-16.fc20.x86_64 gmp-5.1.2-2.fc20.x86_64 gnutls-3.1.27-1.fc20.x86_64 keyutils-libs-1.5.9-1.fc20.x86_64 krb5-libs-1.11.5-11.fc20.x86_64 libICE-1.0.8-6.fc20.x86_64 libSM-1.2.1-6.fc20.x86_64 libX11-1.6.1-1.fc20.x86_64 libXau-1.0.8-2.fc20.x86_64 libXcomposite-0.4.4-4.fc20.x86_64 libXcursor-1.1.14-2.fc20.x86_64 libXdamage-1.1.4-4.fc20.x86_64 libXdmcp-1.1.1-5.fc20.x86_64 libXext-1.3.2-2.fc20.x86_64 libXfixes-5.0.1-2.fc20.x86_64 libXi-1.7.4-1.fc20.x86_64 libXinerama-1.1.3-2.fc20.x86_64 libXrandr-1.4.1-2.fc20.x86_64 libXrender-0.9.8-2.fc20.x86_64 libcom_err-1.42.8-3.fc20.x86_64 libdrm-2.4.54-1.fc20.x86_64 libffi-3.0.13-5.fc20.x86_64 libgcc-4.8.3-7.fc20.x86_64 libmodman-2.0.1-7.fc20.x86_64 libpng-1.6.6-3.fc20.x86_64 libproxy-0.4.11-8.fc20.x86_64 libselinux-2.2.1-6.fc20.x86_64 libstdc++-4.8.3-7.fc20.x86_64 libtasn1-3.8-2.fc20.x86_64 libuuid-2.24.2-1.fc20.x86_64 mesa-libEGL-10.1.5-1.20140607.fc20.x86_64 mesa-libgbm-10.1.5-1.20140607.fc20.x86_64 mesa-libglapi-10.1.5-1.20140607.fc20.x86_64 mesa-libwayland-egl-10.1.5-1.20140607.fc20.x86_64 nettle-2.7.1-3.fc20.x86_64 nice-dcv-server-2013.0-9935.x86_64 openssl-libs-1.0.1e-40.fc20.x86_64 pcre-8.33-6.fc20.x86_64 pixman-0.30.0-5.fc20.x86_64 systemd-libs-208-22.fc20.x86_64 trousers-0.3.13-1.fc20.x86_64 xorg-x11-drv-nvidia-libs-331.89-2.fc20.x86_64 xz-libs-5.1.2-12alpha.fc20.x86_64 zlib-1.2.8-3.fc20.x86_64
(gdb) bt
#0 0x0000000000000000 in ?? ()
#1 0x00007ffff34597f3 in epoxy_glXGetProcAddressARB_global_rewrite_ptr (

procName=0x7ffff34632f0 <entrypoint_strings+21648> "glGetStringi")
at glx_generated_dispatch.c:1278

#2 0x00007ffff3411424 in epoxy_get_proc_address (

name=0x7ffff34632f0 <entrypoint_strings+21648> "glGetStringi")
at dispatch_common.c:619

#3 0x00007ffff341125e in epoxy_get_core_proc_address (

name=0x7ffff34632f0 <entrypoint_strings+21648> "glGetStringi", 
core_version=30) at dispatch_common.c:523

#4 0x00007ffff34118b2 in gl_provider_resolver (

name=0x7ffff34632f0 <entrypoint_strings+21648> "glGetStringi", 
providers=0x7ffff3471678 <providers>, 
entrypoints=0x7ffff3471684 <entrypoints>) at gl_generated_dispatch.c:6407

#5 0x00007ffff341cf46 in epoxy_glGetStringi_resolver ()

at gl_generated_dispatch.c:19280

#6 0x00007ffff34382f3 in epoxy_glGetStringi_global_rewrite_ptr (name=7939,

index=0) at gl_generated_dispatch.c:41338

#7 0x00007ffff3410f42 in epoxy_internal_has_gl_extension (

ext=0x7ffff7195828 "GL_ARB_texture_non_power_of_two", 
invalid_op_mode=false) at dispatch_common.c:341

#8 0x00007ffff3411095 in epoxy_has_gl_extension (

ext=0x7ffff7195828 "GL_ARB_texture_non_power_of_two")

---Type to continue, or q to quit---
at dispatch_common.c:417
#9 0x00007ffff711e20d in gdk_gl_context_realize (context=0x8ac540)

at gdkglcontext.c:288

#10 0x00007ffff711e352 in gdk_gl_context_make_current (context=0x8ac540)

at gdkglcontext.c:319

#11 0x00007ffff76120d7 in gtk_gl_area_realize (widget=0x742320)

at gtkglarea.c:225

#12 0x0000000000405818 in gtk_gears_realize (widget=0x742320) at gtkgears.c:312
#13 0x00007ffff2d071ab in g_cclosure_marshal_VOID__VOIDv (closure=0x666e80,

return_value=0x0, instance=0x742320, args=0x7fffffffb8c8, 
marshal_data=0x40579c <gtk_gears_realize>, n_params=0, param_types=0x0)
at gmarshal.c:115

#14 0x00007ffff2d04838 in g_type_class_meta_marshalv (closure=0x666e80,

return_value=0x0, instance=0x742320, args=0x7fffffffb8c8, 
marshal_data=0xc8, n_params=0, param_types=0x0) at gclosure.c:988

#15 0x00007ffff2d043fb in _g_closure_invoke_va (closure=0x666e80,

return_value=0x0, instance=0x742320, args=0x7fffffffb8c8, n_params=0, 
param_types=0x0) at gclosure.c:831

#16 0x00007ffff2d1f4b3 in g_signal_emit_valist (instance=0x742320,

signal_id=8, detail=0, var_args=0x7fffffffb8c8) at gsignal.c:3195

#17 0x00007ffff2d20664 in g_signal_emit (instance=0x742320, signal_id=8,

detail=0) at gsignal.c:3342

#18 0x00007ffff782c5af in gtk_widget_realize (widget=0x742320)

---Type to continue, or q to quit---
at gtkwidget.c:5520
#19 0x00007ffff782b692 in gtk_widget_map (widget=0x742320) at gtkwidget.c:5049
#20 0x00007ffff75766fc in gtk_container_map_child (child=0x742320,

client_data=0x0) at gtkcontainer.c:3548

#21 0x00007ffff751344e in gtk_box_forall (container=0x6a5660,

include_internals=1, callback=0x7ffff75766b0 <gtk_container_map_child>, 
callback_data=0x0) at gtkbox.c:2558

#22 0x00007ffff7573f01 in gtk_container_forall (container=0x6a5660,

callback=0x7ffff75766b0 <gtk_container_map_child>, callback_data=0x0)
at gtkcontainer.c:2296

#23 0x00007ffff7576746 in gtk_container_map (widget=0x6a5660)

at gtkcontainer.c:3556

#24 0x00007ffff2d071ab in g_cclosure_marshal_VOID__VOIDv (closure=0x663e50,

return_value=0x0, instance=0x6a5660, args=0x7fffffffbf58, 
marshal_data=0x7ffff75766fe <gtk_container_map>, n_params=0, 
param_types=0x0) at gmarshal.c:115

#25 0x00007ffff2d04838 in g_type_class_meta_marshalv (closure=0x663e50,

return_value=0x0, instance=0x6a5660, args=0x7fffffffbf58, 
marshal_data=0xb8, n_params=0, param_types=0x0) at gclosure.c:988

#26 0x00007ffff2d043fb in _g_closure_invoke_va (closure=0x663e50,

return_value=0x0, instance=0x6a5660, args=0x7fffffffbf58, n_params=0, 
param_types=0x0) at gclosure.c:831

#27 0x00007ffff2d1f4b3 in g_signal_emit_valist (instance=0x6a5660,

---Type to continue, or q to quit---
signal_id=6, detail=0, var_args=0x7fffffffbf58) at gsignal.c:3195
#28 0x00007ffff2d20664 in g_signal_emit (instance=0x6a5660, signal_id=6,

detail=0) at gsignal.c:3342

#29 0x00007ffff782b6b0 in gtk_widget_map (widget=0x6a5660) at gtkwidget.c:5051
#30 0x00007ffff75766fc in gtk_container_map_child (child=0x6a5660,

client_data=0x0) at gtkcontainer.c:3548

#31 0x00007ffff751344e in gtk_box_forall (container=0x6a5510,

include_internals=1, callback=0x7ffff75766b0 <gtk_container_map_child>, 
callback_data=0x0) at gtkbox.c:2558

#32 0x00007ffff7573f01 in gtk_container_forall (container=0x6a5510,

callback=0x7ffff75766b0 <gtk_container_map_child>, callback_data=0x0)
at gtkcontainer.c:2296

#33 0x00007ffff7576746 in gtk_container_map (widget=0x6a5510)

at gtkcontainer.c:3556

#34 0x00007ffff2d071ab in g_cclosure_marshal_VOID__VOIDv (closure=0x663e50,

return_value=0x0, instance=0x6a5510, args=0x7fffffffc578, 
marshal_data=0x7ffff75766fe <gtk_container_map>, n_params=0, 
param_types=0x0) at gmarshal.c:115

#35 0x00007ffff2d04838 in g_type_class_meta_marshalv (closure=0x663e50,

return_value=0x0, instance=0x6a5510, args=0x7fffffffc578, 
marshal_data=0xb8, n_params=0, param_types=0x0) at gclosure.c:988

#36 0x00007ffff2d043fb in _g_closure_invoke_va (closure=0x663e50,

return_value=0x0, instance=0x6a5510, args=0x7fffffffc578, n_params=0, 

---Type to continue, or q to quit---
param_types=0x0) at gclosure.c:831
#37 0x00007ffff2d1f4b3 in g_signal_emit_valist (instance=0x6a5510,

signal_id=6, detail=0, var_args=0x7fffffffc578) at gsignal.c:3195

#38 0x00007ffff2d20664 in g_signal_emit (instance=0x6a5510, signal_id=6,

detail=0) at gsignal.c:3342

#39 0x00007ffff782b6b0 in gtk_widget_map (widget=0x6a5510) at gtkwidget.c:5051
#40 0x00007ffff75766fc in gtk_container_map_child (child=0x6a5510,

client_data=0x0) at gtkcontainer.c:3548

#41 0x00007ffff76c3f15 in gtk_overlay_forall (overlay=0x7421a0,

include_internals=1, callback=0x7ffff75766b0 <gtk_container_map_child>, 
callback_data=0x0) at gtkoverlay.c:526

#42 0x00007ffff7573f01 in gtk_container_forall (container=0x7421a0,

callback=0x7ffff75766b0 <gtk_container_map_child>, callback_data=0x0)
at gtkcontainer.c:2296

#43 0x00007ffff7576746 in gtk_container_map (widget=0x7421a0)

at gtkcontainer.c:3556

#44 0x00007ffff76c3c48 in gtk_overlay_map (widget=0x7421a0) at gtkoverlay.c:448
#45 0x00007ffff2d071ab in g_cclosure_marshal_VOID__VOIDv (closure=0x663e50,

return_value=0x0, instance=0x7421a0, args=0x7fffffffcbd8, 
marshal_data=0x7ffff76c3beb <gtk_overlay_map>, n_params=0, param_types=0x0)
at gmarshal.c:115

#46 0x00007ffff2d04838 in g_type_class_meta_marshalv (closure=0x663e50,

return_value=0x0, instance=0x7421a0, args=0x7fffffffcbd8, 

---Type to continue, or q to quit---
marshal_data=0xb8, n_params=0, param_types=0x0) at gclosure.c:988
#47 0x00007ffff2d043fb in _g_closure_invoke_va (closure=0x663e50,

return_value=0x0, instance=0x7421a0, args=0x7fffffffcbd8, n_params=0, 
param_types=0x0) at gclosure.c:831

#48 0x00007ffff2d1f4b3 in g_signal_emit_valist (instance=0x7421a0,

signal_id=6, detail=0, var_args=0x7fffffffcbd8) at gsignal.c:3195

#49 0x00007ffff2d20664 in g_signal_emit (instance=0x7421a0, signal_id=6,

detail=0) at gsignal.c:3342

#50 0x00007ffff782b6b0 in gtk_widget_map (widget=0x7421a0) at gtkwidget.c:5051
#51 0x00007ffff7851651 in gtk_window_map (widget=0x6ae240) at gtkwindow.c:5918
#52 0x00007ffff2d071ab in g_cclosure_marshal_VOID__VOIDv (closure=0x663e50,

return_value=0x0, instance=0x6ae240, args=0x7fffffffd168, 
marshal_data=0x7ffff785159b <gtk_window_map>, n_params=0, param_types=0x0)
at gmarshal.c:115

#53 0x00007ffff2d04838 in g_type_class_meta_marshalv (closure=0x663e50,

return_value=0x0, instance=0x6ae240, args=0x7fffffffd168, 
marshal_data=0xb8, n_params=0, param_types=0x0) at gclosure.c:988

#54 0x00007ffff2d043fb in _g_closure_invoke_va (closure=0x663e50,

return_value=0x0, instance=0x6ae240, args=0x7fffffffd168, n_params=0, 
param_types=0x0) at gclosure.c:831

#55 0x00007ffff2d1f4b3 in g_signal_emit_valist (instance=0x6ae240,

signal_id=6, detail=0, var_args=0x7fffffffd168) at gsignal.c:3195

#56 0x00007ffff2d20664 in g_signal_emit (instance=0x6ae240, signal_id=6,

---Type to continue, or q to quit---
detail=0) at gsignal.c:3342
#57 0x00007ffff782b6b0 in gtk_widget_map (widget=0x6ae240) at gtkwidget.c:5051
#58 0x00007ffff785126e in gtk_window_show (widget=0x6ae240) at gtkwindow.c:5823
#59 0x00007ffff2d07119 in g_cclosure_marshal_VOID__VOID (closure=0x662210,

return_value=0x0, n_param_values=1, param_values=0x7fffffffd620, 
invocation_hint=0x7fffffffd560, 
marshal_data=0x7ffff7850ff7 <gtk_window_show>) at gmarshal.c:85

#60 0x00007ffff2d047b3 in g_type_class_meta_marshal (closure=0x662210,

return_value=0x0, n_param_values=1, param_values=0x7fffffffd620, 
invocation_hint=0x7fffffffd560, marshal_data=0xa0) at gclosure.c:961

#61 0x00007ffff2d04163 in g_closure_invoke (closure=0x662210,

return_value=0x0, n_param_values=1, param_values=0x7fffffffd620, 
invocation_hint=0x7fffffffd560) at gclosure.c:768

#62 0x00007ffff2d20af3 in signal_emit_unlocked_R (node=0x663ca0, detail=0,

instance=0x6ae240, emission_return=0x0, instance_and_params=0x7fffffffd620)
at gsignal.c:3460

#63 0x00007ffff2d20111 in g_signal_emit_valist (instance=0x6ae240,

signal_id=4, detail=0, var_args=0x7fffffffd8e8) at gsignal.c:3286

#64 0x00007ffff2d20664 in g_signal_emit (instance=0x6ae240, signal_id=4,

detail=0) at gsignal.c:3342

#65 0x00007ffff782afbf in gtk_widget_show (widget=0x6ae240) at gtkwidget.c:4859
#66 0x0000000000403acd in main (argc=1, argv=0x7fffffffdb88) at gdkgears.c:233

@nacho
Copy link
Author

nacho commented Oct 30, 2014

Any idea why I could be getting this crash? The library seems to have the glGetStringi symbol

@anholt
Copy link
Owner

anholt commented Jul 15, 2015

I note that the gdb indicates that you've got both mesa libEGL and nvidia binary drivers loaded at the same time, and this will surely go badly. Has GTK mixed up their initialization, or made multiple contexts from different drivers?

@anholt
Copy link
Owner

anholt commented Jul 15, 2015

The only way this could be our fault is if GTK is doing things with only for of GLX and EGL, and epoxy is erroneously loading the other. You'd want to break on the dlopen() inside of get_dlopen_handle() to see when the loads of the two libraries are happening.

@nacho
Copy link
Author

nacho commented Jul 16, 2015

So things seem to have improved over time. Now it does not seg fault but I get this error:
errx(1, "Couldn't find current GLX or EGL context.\n");

@nacho
Copy link
Author

nacho commented Jul 16, 2015

Checking at the code I see that you try to see if it should use GLX or EGL depending on the GetCurrentContext method. But for what I can see it is not calling MakeCurrentContext before that call. And from the docs it should return NULL as it is the case. Maybe I am missing something?

@nacho
Copy link
Author

nacho commented Jul 16, 2015

After fixing the driver I am on a similar state as I was at the beginning

#0 0x0000000000000000 in ?? ()
#1 0x00007ffff3c27165 in epoxy_glXGetProcAddressARB_global_rewrite_ptr (
procName=0x7ffff3c30d10 <entrypoint_strings+21648> "glGetStringi")
at glx_generated_dispatch.c:1278
#2 0x00007ffff3bdb40e in epoxy_get_proc_address (
name=0x7ffff3c30d10 <entrypoint_strings+21648> "glGetStringi")
at dispatch_common.c:600
#3 0x00007ffff3bdb248 in epoxy_get_core_proc_address (
name=0x7ffff3c30d10 <entrypoint_strings+21648> "glGetStringi",
core_version=30) at dispatch_common.c:504
#4 0x00007ffff3bdb8bb in gl_provider_resolver (
name=0x7ffff3c30d10 <entrypoint_strings+21648> "glGetStringi",
providers=0x7ffff3c3f098 ,
entrypoints=0x7ffff3c3f0a4 ) at gl_generated_dispatch.c:6407
#5 0x00007ffff3be7a79 in epoxy_glGetStringi_resolver ()
at gl_generated_dispatch.c:19280
#6 0x00007ffff3c04496 in epoxy_glGetStringi_global_rewrite_ptr (name=7939,
index=0) at gl_generated_dispatch.c:41338
#7 0x00007ffff3bdaf2c in epoxy_internal_has_gl_extension (
ext=0x7ffff711c990 "GL_ARB_texture_non_power_of_two",
invalid_op_mode=false) at dispatch_common.c:328
#8 0x00007ffff3bdb07f in epoxy_has_gl_extension (
ext=0x7ffff711c990 "GL_ARB_texture_non_power_of_two")
---Type to continue, or q to quit---
at dispatch_common.c:404
#9 0x00007ffff709f7d8 in gdk_gl_context_check_extensions (context=0x78e1a0)
at gdkglcontext.c:600
#10 0x00007ffff709fb2f in gdk_gl_context_make_current (context=0x78e1a0)
at gdkglcontext.c:670
#11 0x00007ffff75d05fd in gtk_gl_area_make_current (area=0x8d6230)
at gtkglarea.c:1354
#12 0x0000000000406984 in gtk_gears_realize (widget=0x8d6230) at gtkgears.c:717
#13 0x00007ffff34d226e in g_cclosure_marshal_VOID__VOIDv (closure=0x68ce50,
return_value=0x0, instance=0x8d6230, args=0x7fffffffb6f8,
marshal_data=0x4068ed <gtk_gears_realize>, n_params=0, param_types=0x0)
at gmarshal.c:905
#14 0x00007ffff34cf900 in g_type_class_meta_marshalv (closure=0x68ce50,
return_value=0x0, instance=0x8d6230, args=0x7fffffffb6f8,
marshal_data=0xc8, n_params=0, param_types=0x0) at gclosure.c:1021
#15 0x00007ffff34cf4c2 in _g_closure_invoke_va (closure=0x68ce50,
return_value=0x0, instance=0x8d6230, args=0x7fffffffb6f8, n_params=0,
param_types=0x0) at gclosure.c:864
#16 0x00007ffff34ea762 in g_signal_emit_valist (instance=0x8d6230,
signal_id=8, detail=0, var_args=0x7fffffffb6f8) at gsignal.c:3246
#17 0x00007ffff34eb8da in g_signal_emit (instance=0x8d6230, signal_id=8,
detail=0) at gsignal.c:3393
#18 0x00007ffff77f9aaa in gtk_widget_realize (widget=0x8d6230)
---Type to continue, or q to quit---
at gtkwidget.c:5553
#19 0x00007ffff77f8b12 in gtk_widget_map (widget=0x8d6230) at gtkwidget.c:5068
#20 0x00007ffff7525765 in gtk_container_map_child (child=0x8d6230,
client_data=0x0) at gtkcontainer.c:3599
#21 0x00007ffff74c17b6 in gtk_box_forall (container=0x779440,
include_internals=1, callback=0x7ffff7525719 <gtk_container_map_child>,
callback_data=0x0) at gtkbox.c:2581
#22 0x00007ffff7522f2c in gtk_container_forall (container=0x779440,
callback=0x7ffff7525719 <gtk_container_map_child>, callback_data=0x0)
at gtkcontainer.c:2347
#23 0x00007ffff75257b0 in gtk_container_map (widget=0x779440)
at gtkcontainer.c:3607
#24 0x00007ffff34d226e in g_cclosure_marshal_VOID__VOIDv (closure=0x68a0a0,
return_value=0x0, instance=0x779440, args=0x7fffffffbd78,
marshal_data=0x7ffff7525768 <gtk_container_map>, n_params=0,
param_types=0x0) at gmarshal.c:905
#25 0x00007ffff34cf900 in g_type_class_meta_marshalv (closure=0x68a0a0,
return_value=0x0, instance=0x779440, args=0x7fffffffbd78,
marshal_data=0xb8, n_params=0, param_types=0x0) at gclosure.c:1021
#26 0x00007ffff34cf4c2 in _g_closure_invoke_va (closure=0x68a0a0,
return_value=0x0, instance=0x779440, args=0x7fffffffbd78, n_params=0,
param_types=0x0) at gclosure.c:864
#27 0x00007ffff34ea762 in g_signal_emit_valist (instance=0x779440,
---Type to continue, or q to quit---
signal_id=6, detail=0, var_args=0x7fffffffbd78) at gsignal.c:3246
#28 0x00007ffff34eb8da in g_signal_emit (instance=0x779440, signal_id=6,
detail=0) at gsignal.c:3393
#29 0x00007ffff77f8b30 in gtk_widget_map (widget=0x779440) at gtkwidget.c:5070
#30 0x00007ffff7525765 in gtk_container_map_child (child=0x779440,
client_data=0x0) at gtkcontainer.c:3599
#31 0x00007ffff74c17b6 in gtk_box_forall (container=0x7792e0,
include_internals=1, callback=0x7ffff7525719 <gtk_container_map_child>,
callback_data=0x0) at gtkbox.c:2581
#32 0x00007ffff7522f2c in gtk_container_forall (container=0x7792e0,
callback=0x7ffff7525719 <gtk_container_map_child>, callback_data=0x0)
at gtkcontainer.c:2347
#33 0x00007ffff75257b0 in gtk_container_map (widget=0x7792e0)
at gtkcontainer.c:3607
#34 0x00007ffff34d226e in g_cclosure_marshal_VOID__VOIDv (closure=0x68a0a0,
return_value=0x0, instance=0x7792e0, args=0x7fffffffc388,
marshal_data=0x7ffff7525768 <gtk_container_map>, n_params=0,
param_types=0x0) at gmarshal.c:905
#35 0x00007ffff34cf900 in g_type_class_meta_marshalv (closure=0x68a0a0,
return_value=0x0, instance=0x7792e0, args=0x7fffffffc388,
marshal_data=0xb8, n_params=0, param_types=0x0) at gclosure.c:1021
#36 0x00007ffff34cf4c2 in _g_closure_invoke_va (closure=0x68a0a0,
return_value=0x0, instance=0x7792e0, args=0x7fffffffc388, n_params=0,
---Type to continue, or q to quit---
param_types=0x0) at gclosure.c:864
#37 0x00007ffff34ea762 in g_signal_emit_valist (instance=0x7792e0,
signal_id=6, detail=0, var_args=0x7fffffffc388) at gsignal.c:3246
#38 0x00007ffff34eb8da in g_signal_emit (instance=0x7792e0, signal_id=6,
detail=0) at gsignal.c:3393
#39 0x00007ffff77f8b30 in gtk_widget_map (widget=0x7792e0) at gtkwidget.c:5070
#40 0x00007ffff7525765 in gtk_container_map_child (child=0x7792e0,
client_data=0x0) at gtkcontainer.c:3599
#41 0x00007ffff76841db in gtk_overlay_forall (overlay=0x790130,
include_internals=1, callback=0x7ffff7525719 <gtk_container_map_child>,
callback_data=0x0) at gtkoverlay.c:624
#42 0x00007ffff7522f2c in gtk_container_forall (container=0x790130,
callback=0x7ffff7525719 <gtk_container_map_child>, callback_data=0x0)
at gtkcontainer.c:2347
#43 0x00007ffff75257b0 in gtk_container_map (widget=0x790130)
at gtkcontainer.c:3607
#44 0x00007ffff7683b8e in gtk_overlay_map (widget=0x790130) at gtkoverlay.c:460
#45 0x00007ffff34d226e in g_cclosure_marshal_VOID__VOIDv (closure=0x68a0a0,
return_value=0x0, instance=0x790130, args=0x7fffffffc9d8,
marshal_data=0x7ffff7683b31 <gtk_overlay_map>, n_params=0, param_types=0x0)
at gmarshal.c:905
#46 0x00007ffff34cf900 in g_type_class_meta_marshalv (closure=0x68a0a0,
return_value=0x0, instance=0x790130, args=0x7fffffffc9d8,
---Type to continue, or q to quit---
marshal_data=0xb8, n_params=0, param_types=0x0) at gclosure.c:1021
#47 0x00007ffff34cf4c2 in _g_closure_invoke_va (closure=0x68a0a0,
return_value=0x0, instance=0x790130, args=0x7fffffffc9d8, n_params=0,
param_types=0x0) at gclosure.c:864
#48 0x00007ffff34ea762 in g_signal_emit_valist (instance=0x790130,
signal_id=6, detail=0, var_args=0x7fffffffc9d8) at gsignal.c:3246
#49 0x00007ffff34eb8da in g_signal_emit (instance=0x790130, signal_id=6,
detail=0) at gsignal.c:3393
#50 0x00007ffff77f8b30 in gtk_widget_map (widget=0x790130) at gtkwidget.c:5070
#51 0x00007ffff781fa94 in gtk_window_map (widget=0x6d43a0) at gtkwindow.c:6071
#52 0x00007ffff34d226e in g_cclosure_marshal_VOID__VOIDv (closure=0x68a0a0,
return_value=0x0, instance=0x6d43a0, args=0x7fffffffcf78,
marshal_data=0x7ffff781f9de <gtk_window_map>, n_params=0, param_types=0x0)
at gmarshal.c:905
#53 0x00007ffff34cf900 in g_type_class_meta_marshalv (closure=0x68a0a0,
return_value=0x0, instance=0x6d43a0, args=0x7fffffffcf78,
marshal_data=0xb8, n_params=0, param_types=0x0) at gclosure.c:1021
#54 0x00007ffff34cf4c2 in _g_closure_invoke_va (closure=0x68a0a0,
return_value=0x0, instance=0x6d43a0, args=0x7fffffffcf78, n_params=0,
param_types=0x0) at gclosure.c:864
#55 0x00007ffff34ea762 in g_signal_emit_valist (instance=0x6d43a0,
signal_id=6, detail=0, var_args=0x7fffffffcf78) at gsignal.c:3246
#56 0x00007ffff34eb8da in g_signal_emit (instance=0x6d43a0, signal_id=6,
---Type to continue, or q to quit---
detail=0) at gsignal.c:3393
#57 0x00007ffff77f8b30 in gtk_widget_map (widget=0x6d43a0) at gtkwidget.c:5070
#58 0x00007ffff781f6c5 in gtk_window_show (widget=0x6d43a0) at gtkwindow.c:5981
#59 0x00007ffff34d21db in g_cclosure_marshal_VOID__VOID (closure=0x688460,
return_value=0x0, n_param_values=1, param_values=0x7fffffffd420,
invocation_hint=0x7fffffffd360,
marshal_data=0x7ffff781f47a <gtk_window_show>) at gmarshal.c:875
#60 0x00007ffff34cf87e in g_type_class_meta_marshal (closure=0x688460,
return_value=0x0, n_param_values=1, param_values=0x7fffffffd420,
invocation_hint=0x7fffffffd360, marshal_data=0xa0) at gclosure.c:994
#61 0x00007ffff34cf229 in g_closure_invoke (closure=0x688460,
return_value=0x0, n_param_values=1, param_values=0x7fffffffd420,
invocation_hint=0x7fffffffd360) at gclosure.c:801
#62 0x00007ffff34ebd77 in signal_emit_unlocked_R (node=0x689ef0, detail=0,
instance=0x6d43a0, emission_return=0x0, instance_and_params=0x7fffffffd420)
at gsignal.c:3511
#63 0x00007ffff34eb398 in g_signal_emit_valist (instance=0x6d43a0,
signal_id=4, detail=0, var_args=0x7fffffffd6d8) at gsignal.c:3337
#64 0x00007ffff34eb8da in g_signal_emit (instance=0x6d43a0, signal_id=4,
detail=0) at gsignal.c:3393
#65 0x00007ffff77f841d in gtk_widget_show (widget=0x6d43a0) at gtkwidget.c:4876
#66 0x0000000000403e10 in main (argc=1, argv=0x7fffffffd978) at gdkgears.c:233

@nacho
Copy link
Author

nacho commented Jul 16, 2015

and the initial libraries:
Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
Missing separate debuginfos, use: dnf debuginfo-install bzip2-libs-1.0.6-14.fc22.x86_64 dbus-libs-1.8.18-1.fc22.x86_64 expat-2.1.0-10.fc22.x86_64 fontconfig-2.11.94-1.fc22.x86_64 freetype-2.5.5-1.fc22.x86_64 gmp-6.0.0-9.fc22.x86_64 gnutls-3.3.15-1.fc22.x86_64 keyutils-libs-1.5.9-4.fc22.x86_64 krb5-libs-1.13.2-5.fc22.x86_64 libcom_err-1.42.12-4.fc22.x86_64 libffi-3.1-7.fc22.x86_64 libgcc-5.1.1-4.fc22.x86_64 libICE-1.0.9-2.fc22.x86_64 libmodman-2.0.1-9.fc22.x86_64 libpng-1.6.16-3.fc22.x86_64 libproxy-0.4.11-10.fc22.x86_64 libselinux-2.3-10.fc22.x86_64 libSM-1.2.2-2.fc22.x86_64 libstdc++-5.1.1-4.fc22.x86_64 libtasn1-4.5-1.fc22.x86_64 libuuid-2.26.2-1.fc22.x86_64 libX11-1.6.3-1.fc22.x86_64 libXau-1.0.8-4.fc22.x86_64 libxcb-1.11-5.fc22.x86_64 libXcomposite-0.4.4-6.fc22.x86_64 libXcursor-1.1.14-4.fc22.x86_64 libXdamage-1.1.4-6.fc22.x86_64 libXext-1.3.3-2.fc22.x86_64 libXfixes-5.0.1-4.fc22.x86_64 libXi-1.7.4-2.fc22.x86_64 libXinerama-1.1.3-4.fc22.x86_64 libXrandr-1.4.2-2.fc22.x86_64 libXrender-0.9.9-1.fc22.x86_64 mesa-libwayland-egl-10.6.1-1.20150629.fc22.x86_64 nettle-2.7.1-5.fc22.x86_64 openssl-libs-1.0.1k-11.fc22.x86_64 p11-kit-0.23.1-2.fc22.x86_64 pcre-8.37-2.fc22.x86_64 pixman-0.32.6-4.fc22.x86_64 trousers-0.3.13-3.fc22.x86_64 zlib-1.2.8-7.fc22.x86_64

@nacho
Copy link
Author

nacho commented Jul 16, 2015

So I've found the reason of the crash. While it is in our side it is still strange what epoxy is doing. It is using glXGetProcAddress to look for glXGetProcAddress.

@anholt
Copy link
Owner

anholt commented Jul 16, 2015

Have you not made a context current before calling GL functions?

@nacho
Copy link
Author

nacho commented Jul 16, 2015

So there were a couple of problems on our driver. First that we did not support a extension so gdk was failing to create the context, so the error in epoxy was actually correct. The second is that we were getting the backtrace because for some reason epoxy tries to get glXGetProcAddress by using glXGetProcAddress to get the address to that method and we were not handling that case properly. I think though that this is a bug in epoxy since it is really weird that you do that.

@anholt
Copy link
Owner

anholt commented Jul 16, 2015

The backtrace wasn't showing what you're saying about glXGPA using glXGPA. Note that glXGPA is different from glXGPAARB. glXGPAARB is libGL ABI, while glXGPA is 1.4, and thus must be looked up using glXGPA.

@nacho
Copy link
Author

nacho commented Jul 17, 2015

Yeah, the stack trace was kind of hiding the real problem. Thanks for the comments, I guess we can close this now.

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

No branches or pull requests

2 participants