-
Notifications
You must be signed in to change notification settings - Fork 162
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
Upgrading libepoxy from 1.5.5 to 1.5.7 results in Xorg crashing on boot #252
Comments
I guess we're going to need the opinion of @nwnk and @ya-isakov on this. I can do a revert and publish 1.5.8, but first I'd like some confirmation from other distributions using epoxy 1.5.7, to understand if this is a specific regression or a build issue somewhere else. |
Hmm, I can see in log, posted in Manjaro forum, this strange line |
glGetString is handled by epoxy_get_bootstrap_proc_address, which is returning epoxy_gl_dlsym in most cases, which, in turn, loads GL library (libOpenGL.so, if available, or libGL.so), and will try do dlsym of geGetString on it. In case of error, there should be a message "glGetString not found", which I can't see in the logs... so, honestly, I do not understand, what could go wrong here. @Ernest1338, could you, please, check that you have libOpenGL.so.0 in your system, and maybe rename it to something else, temporary, and try to run Xorg with libepoxy-1.5.7? |
@Ernest1338 Also, it seems that if Xorg cannot load Glamor, it's falling back to ShadowFB, so this could prevent us from seeing a proper trace. Could you, please, also try to run Xorg with libepoxy-1.5.7, libOpenGL.so.0 present (if it is in the system), and ShadowFB disabled in config of xorg? I think, the proper way is to put
somewhere in xorg config. Please, post a full log with this option disabled, but first, make sure that there is no
in the log anymore. |
And yes, we need more testing on other distros, as Manjaro is based on Arch linux, but I cannot find any bug report on Arch bugtracker |
So I checked and libOpenGL.so.0 is present both in /usr/lib32/ and /usr/lib/. |
@Ernest1338 Actually, I might have a wild idea... Who is a vendor of your libGL.so? libglvnd or AMD? I'm just thinking that maybe libOpenGL.so, which is basically a glvnd wrapper, could not find a proper vendor implementation for AMD, but libGL.so is AMD-provider library, that's why it works for older versions of libepoxy, as older versions were forcefully using libGL.so for anything. |
I renamed the libOpenGL.so.0, updated the libepoxy and rebooted. Xorg still crashed. I attached the log file but I don't think it changed. |
Yeah, it's still the same. I think, that my idea about glvnd which cannot find any vendor, could be the only cause. Could you, please, check, from which package are your libOpenGL.so.0 and libGL.so are from? |
Sorry, but I never done this before, which command should I use to check that? |
I have no idea, sorry, how to do it in Manjaro |
Ok, so I used the pkgfile tool and I think that worked.
|
So, as conclusion - from the logs, it seems that Xorg cannot load glamoregl, because GL_VENDOR is empty. I thought, that something wrong happened with loading glGetString symbol, but no, NULL is returned by this function. It seems that both libGL.so and libOpenGL.so are provided by libglvnd, and if libGL.so is working (and it is working, as libepoxy 1.5.5 is using it in place of libOpenGL.so), then I run out of ideas, why GL_VENDOR is empty. |
It could be libglvnd bug, as libepoxy's task is to load libraries, and dispatch GL calls to them. As there are no error messages in Xorg.log related to any errors in lib loading, then it could be some incompatibility between libOpenGL.so and Xorg. Could you, please, report this bug to libglvnd repo, and see if they can find a cause? |
Sure, I'll do that then. I'm not sure what title should I use in the bug report, maybe something like: "Possible incompatibility between libOpenGL.so and Xorg causing Xorg to crash on boot" or maybe you can suggest something something better? |
Yeah, it's fine, but, please, post this log line from your log
This is my main suspect, why it could be in libglvnd, as libepoxy is loading glGetString from libOpenGL.so (in 1.5.7), and from libGL.so (in 1.5.5) If this function returns NULL, it means that the cause could be in libOpenGL.so. And as you checked, both libraries are provided by libglvnd. P.S. Oh, and BTW, there is no need to reboot, when you have no Xorg server running, and just renamed libOpenGL.so.0. You can run Xorg immediately after renaming this library to something else, just to check if the problem is in libOpenGL.so.0 |
As you can see I made an issue as you said. |
Yeah, adding info there, thank you :) |
@nwnk
P.S. I do not really understand how libEGL loads libGL/libEGL for creating context in them... |
Seems my hint on libglnvd was ignored ... https://forum.manjaro.org/t/upgrading-libepoxy-from-1-5-5-to-1-5-7-results-in-xorg-crashing-on-boot/66195/8 |
@philmmanjaro if it's a context problem, then libglvnd is probably not a cause, the context could be lost in libepoxy |
I don't know if that helps, but upgrading lib32-libepoxy to 1.5.7 works just fine. |
Maybe there was a mismatch at some point. However with today's stable snap we have now the following packages: libepoxy repository : extra lib32-libepoxy repository : multilib |
I installed today's update, but the issue still stands. (lib32-libepoxy is at 1.5.7) |
Epoxy doesn't have a context: it's entirely up to the caller to have one and make it current. |
Considering that #253 is happening in Fedora, I'm tempted to just revert the commit, at this point. |
Note the offending commit also breaks apitrace/gtk4 - see #240 |
I think that yes, it should be reverted, I just do not understand, how usage of different lib (libOpenGL.so vs libGL.so) broke OpenGL context, if libepoxy is not doing anything with it. |
Okay, let's close this. |
Hello,
Basic info:
I encountered this issue after an recent Manjaro update which amongst other things updated the libepoxy version from 1.5.5 to 1.5.7 which (as I later found) was the package causing my Xorg to crash on boot.
Using the
git bisect
I managed to find the problematic commit, which is: dbfa4b2This is the Xorg log after it crashed:
Link to the Manjaro forum discussing the issue: https://forum.manjaro.org/t/upgrading-libepoxy-from-1-5-5-to-1-5-7-results-in-xorg-crashing-on-boot/66195
The text was updated successfully, but these errors were encountered: