VirtualBox

Opened 7 years ago

Closed 7 years ago

#17623 closed defect (fixed)

Ubuntu 17.10 + distro-vbox-guest 5.1.30 + compton => undef glFramebufferTexture2D -> fixed in 5.2.12

Reported by: Justin5683 Owned by:
Component: guest additions/x11/graphics Version: VirtualBox 5.1.30
Keywords: compton Cc:
Guest type: Linux Host type: Windows

Description

ref: https://answers.launchpad.net/ubuntu/+source/virtualbox/+question/665636

In question-665636, I reported that compton fails to start due to a missing symbol. virtualbox-guest-x11 (pkg) installs an ld.so.conf.d which adds /usr/lib/virtualbox/additions to global ld-path, which ends up adding libGL.so.1 from virtualbox-guest-x11 to ld-path.

$ compton
compton: symbol lookup error: compton: undefined symbol: glFramebufferTexture2D

(vbox) libGL.so.1 does not contain glFramebufferTexture2D:

# objdump -T /usr/lib/virtualbox/additions/libGL.so.1 | grep glFramebufferTexture2D
0000000000072580 g DF .text 0000000000000015 Base glFramebufferTexture2DEXT

But, libgl1-mesa-glx's libGL.so.1 does:

# objdump -T /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 | grep glFramebufferTexture2D
0000000000054ac0 g DF .text 0000000000000000 Base glFramebufferTexture2DEXT
0000000000054ac0 g DF .text 0000000000000000 Base glFramebufferTexture2D

My work-around is to take virtualbox-guest-x11 out of global ld-path:

# update-alternatives --set x86_64-linux-gnu_egl_conf /usr/lib/x86_64-linux-gnu/mesa-egl/ld.so.conf
update-alternatives: using /usr/lib/x86_64-linux-gnu/mesa-egl/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf (x86_64-linux-gnu_egl_conf) in manual mode
# update-alternatives --set x86_64-linux-gnu_gl_conf /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf
update-alternatives: using /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf (x86_64-linux-gnu_gl_conf) in manual mode
# ldconfig

Alternately: this is a distro bug, but I'll start here.

Change History (17)

comment:1 by Peter Meiser, 7 years ago

Same on Ubuntu 18.04 with gnome-shell:

Apr  7 09:00:35 bionic org.gnome.Shell.desktop[1212]: /usr/bin/gnome-shell: symbol lookup error: /usr/lib/x86_64-linux-gnu/libmutter-2.so.0: undefined symbol: glFramebufferTexture2D
Apr  7 09:00:35 bionic gnome-session[1190]: gnome-session-binary[1190]: WARNING: App 'org.gnome.Shell.desktop' exited with code 127
Apr  7 09:00:35 bionic gnome-session-binary[1190]: WARNING: App 'org.gnome.Shell.desktop' exited with code 127
Apr  7 09:00:35 bionic org.gnome.Shell.desktop[1214]: /usr/bin/gnome-shell: symbol lookup error: /usr/lib/x86_64-linux-gnu/libmutter-2.so.0: undefined symbol: glFramebufferTexture2D
Apr  7 09:00:35 bionic gnome-session[1190]: gnome-session-binary[1190]: WARNING: App 'org.gnome.Shell.desktop' exited with code 127
Apr  7 09:00:35 bionic gnome-session-binary[1190]: WARNING: App 'org.gnome.Shell.desktop' exited with code 127

Here the objdump comparison (first mesa, second vbox):

$ objdump -T /usr/lib/x86_64-linux-gnu/libGL.so.1 | grep glFramebufferTexture2D
0000000000049ea0 g    DF wtext	0000000000000000  Base        glFramebufferTexture2DMultisampleIMG
0000000000049e80 g    DF wtext	0000000000000000  Base        glFramebufferTexture2DMultisampleEXT
0000000000049e40 g    DF wtext	0000000000000000  Base        glFramebufferTexture2D
0000000000049ec0 g    DF wtext	0000000000000000  Base        glFramebufferTexture2DOES
0000000000049e60 g    DF wtext	0000000000000000  Base        glFramebufferTexture2DEXT

$ objdump -T /usr/lib/virtualbox/additions/libGL.so.1 | grep glFramebufferTexture2D
00000000000406a0 g    DF .text	0000000000000015  Base        glFramebufferTexture2DEXT
Last edited 7 years ago by Peter Meiser (previous) (diff)

comment:2 by janitor, 7 years ago

Problems with distribution builds of VirtualBox should be addressed by the distribution. However, please test with an Oracle build first to see if it really is a distribution issue.

comment:3 by Peter Meiser, 7 years ago

This is also reproducable with the original Oracle VBoxLinuxAdditions.run.

comment:4 by Michael Thayer, 7 years ago

Please try the latest test builds (the Additions test build should be enough), as of r122125. They should be visible in a few minutes.

Version 0, edited 7 years ago by Michael Thayer (next)

comment:5 by Michael Thayer, 7 years ago

Summary: Ubuntu 17.10 + distro-vbox-guest 5.1.30 + compton => undef glFramebufferTexture2DUbuntu 17.10 + distro-vbox-guest 5.1.30 + compton => undef glFramebufferTexture2D -> fixed after (not in) 5.2.10

comment:6 by Michael Thayer, 7 years ago

Test builds are at wiki:Testbuilds.

in reply to:  4 comment:7 by SinisterMinister, 7 years ago

It looks like that fixed the specific glFramebufferTexture2D issue but it either surfaced or caused another:

# Error received
undefined symbol: glCheckFramebufferStatus

# VBoxGuestAdditions
objdump -T /var/lib/VBoxGuestAdditions/lib/libGL.so.1 | grep glCheckFramebufferStatus
0000000000042560 g    DF .text	0000000000000016  Base        glCheckFramebufferStatusEXT

# MESA
objdump -T /usr/lib/x86_64-linux-gnu/libGL.so.1 | grep glCheckFramebufferStatus
0000000000045560 g    DF wtext	0000000000000000  Base        glCheckFramebufferStatusOES
0000000000045540 g    DF wtext	0000000000000000  Base        glCheckFramebufferStatusEXT
0000000000045520 g    DF wtext	0000000000000000  Base        glCheckFramebufferStatus

comment:8 by Max Fedotov, 7 years ago

I have the same issue with Oracle Linux 7.2 guest VirtualBox 5.2.10, but only with guest kernel 3.8, with 3.10 kernel everything is fine.

comment:9 by Michael Thayer, 7 years ago

@the_source_him That sounds like something different, as this issue is not kernel related. Did you try the forums?

@SinisterMinister What environment are you using? Compton? Could you please check the full error message - as in which binary cannot find the symbol glCheckFramebufferStatus - and use objdump -T to find all gl* symbols that that binary requires? Also, are you able to build yourself if I supply a patch?

comment:10 by Zeppe, 7 years ago

still happening with 18.04 beta and the latest VirtualBox 5.2.11.r122125

gpassino@spring:~$ compton
compton: symbol lookup error: compton: undefined symbol: glFramebufferTexture2D

gpassino@spring:~$ ll /var/lib/VBoxGuestAdditions/lib/libGL.so.1
lrwxrwxrwx 1 root root 45 Apr 19 11:00 /var/lib/VBoxGuestAdditions/lib/libGL.so.1 -> /opt/VBoxGuestAdditions-5.2.11/lib/VBoxOGL.so*

gpassino@spring:~$ objdump -T  /var/lib/VBoxGuestAdditions/lib/libGL.so.1 | grep glFramebufferTexture2D
0000000000043500 g    DF .text	0000000000000016  Base	      glFramebufferTexture2DEXT

gpassino@spring:~$ objdump -T  /usr/lib/x86_64-linux-gnu/libGL.so.1 | grep glFramebufferTexture2D
0000000000049ea0 g    DF wtext	0000000000000000  Base	      glFramebufferTexture2DMultisampleIMG
0000000000049e80 g    DF wtext	0000000000000000  Base	      glFramebufferTexture2DMultisampleEXT
0000000000049e40 g    DF wtext	0000000000000000  Base	      glFramebufferTexture2D
0000000000049ec0 g    DF wtext	0000000000000000  Base	      glFramebufferTexture2DOES
0000000000049e60 g    DF wtext	0000000000000000  Base	      glFramebufferTexture2DEXT

comment:11 by Michael Thayer, 7 years ago

I am not currently on a good Internet connection to check, but could you try the Additions-only build from the test builds page? It could be that the Additions images in the other test builds are older.

https://www.virtualbox.org/download/testcase/VBoxGuestAdditions_5.2.11-122125.iso

in reply to:  9 comment:12 by SinisterMinister, 7 years ago

Replying to michael:

@SinisterMinister What environment are you using?

Ubuntu 18.04 LTS Beta.2 with custom Openbox desktop

Compton?

It's a desktop compositor that does effects like transparency.

Could you please check the full error message - as in which binary cannot find the symbol glCheckFramebufferStatus - and use objdump -T to find all gl* symbols that that binary requires?

This should be everything that's missing from the testbuild I downloaded yesterday.

$ grep -Fxv -f <(objdump -T /var/lib/VBoxGuestAdditions/lib/libGL.so.1 | awk '{print $7}' | grep 'gl[[:upper:]].*' | sort -h) <(objdump -T /usr/bin/compton | awk '{print $5}' | grep 'gl[[:upper:]].*' | sort -h)
glCheckFramebufferStatus
glDeleteFramebuffers

Here's the complete list just in case I borked that command.

$ objdump -T /usr/bin/compton | awk '{print $5}' | grep 'gl[[:upper:]].*' | sort -h
glActiveTexture
glAttachShader
glBegin
glBindFramebuffer
glBindTexture
glBitmap
glBlendFunc
glCheckFramebufferStatus
glClear
glClearColor
glColor4f
glColorMask
glCompileShader
glCopyPixels
glCopyTexSubImage2D
glCreateProgram
glCreateShader
glDeleteFramebuffers
glDeleteProgram
glDeleteShader
glDeleteTextures
glDepthMask
glDetachShader
glDisable
glDrawBuffers
glEnable
glEnd
glFinish
glFlush
glFramebufferTexture2D
glGenFramebuffers
glGenTextures
glGetFloatv
glGetIntegerv
glGetProgramInfoLog
glGetProgramiv
glGetShaderInfoLog
glGetShaderiv
glGetString
glGetUniformLocation
glIsEnabled
glLinkProgram
glLoadIdentity
glLogicOp
glMatrixMode
glMultiTexCoord2f
glOrtho
glPixelStorei
glRasterPos2f
glRasterPos4fv
glReadBuffer
glReadPixels
glScissor
glShaderSource
glStencilFunc
glStencilMask
glStencilOp
glTexCoord2f
glTexEnvf
glTexEnvi
glTexImage2D
glTexParameteri
glUniform1f
glUniform1i
glUseProgram
glVertex3f
glVertex3i
glViewport
glXCreateContext
glXCreatePixmap
glXDestroyContext
glXDestroyPixmap
glXGetConfig
glXGetFBConfigAttrib
glXGetFBConfigs
glXGetProcAddress
glXGetVisualFromFBConfig
glXMakeCurrent
glXQueryDrawable
glXQueryExtension
glXQueryExtensionsString
glXSwapBuffers
glXWaitX

Also, are you able to build yourself if I supply a patch?

Not quickly but I can try.

in reply to:  11 comment:13 by Zeppe, 7 years ago

Replying to michael:

I am not currently on a good Internet connection to check, but could you try the Additions-only build from the test builds page? It could be that the Additions images in the other test builds are older.

https://www.virtualbox.org/download/testcase/VBoxGuestAdditions_5.2.11-122125.iso

The above fixes the problem.

comment:14 by Zeppe, 7 years ago

i.e. compton still doesn't run (another undefined symbol), but the original symbol is present, and e.g. gnome starts. The error on compton now is:

gpassino@spring:~$ compton
compton: symbol lookup error: compton: undefined symbol: glCheckFramebufferStatus

comment:15 by Michael Thayer, 7 years ago

Please try the latest Guest Additions test build.

wiki:Testbuilds

comment:16 by Zeppe, 7 years ago

@michael it works for me now with VBoxGuestAdditions_5.2.11-122181.iso

comment:17 by Michael Thayer, 7 years ago

Resolution: fixed
Status: newclosed
Summary: Ubuntu 17.10 + distro-vbox-guest 5.1.30 + compton => undef glFramebufferTexture2D -> fixed after (not in) 5.2.10Ubuntu 17.10 + distro-vbox-guest 5.1.30 + compton => undef glFramebufferTexture2D -> fixed in 5.2.12
Note: See TracTickets for help on using tickets.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette