VirtualBox

Ticket #17623 (closed defect: fixed)

Opened 5 years ago

Last modified 5 years ago

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

comment:1 Changed 5 years ago by meiser1979

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 5 years ago by meiser1979 (previous) (diff)

comment:2 Changed 5 years ago by janitor

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 Changed 5 years ago by meiser1979

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

comment:4 follow-up: ↓ 7 Changed 5 years ago by michael

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

Last edited 5 years ago by michael (previous) (diff)

comment:5 Changed 5 years ago by michael

  • Summary changed from Ubuntu 17.10 + distro-vbox-guest 5.1.30 + compton => undef glFramebufferTexture2D to Ubuntu 17.10 + distro-vbox-guest 5.1.30 + compton => undef glFramebufferTexture2D -> fixed after (not in) 5.2.10

comment:6 Changed 5 years ago by michael

Test builds are at wiki:Testbuilds.

comment:7 in reply to: ↑ 4 Changed 5 years ago by SinisterMinister

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 Changed 5 years ago by the_source_him

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 follow-up: ↓ 12 Changed 5 years ago by michael

@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 Changed 5 years ago by zeppe

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 follow-up: ↓ 13 Changed 5 years ago by 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

comment:12 in reply to: ↑ 9 Changed 5 years ago by SinisterMinister

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.

comment:13 in reply to: ↑ 11 Changed 5 years ago by zeppe

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 Changed 5 years ago by zeppe

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 Changed 5 years ago by michael

Please try the latest Guest Additions test build.

wiki:Testbuilds

comment:16 Changed 5 years ago by zeppe

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

comment:17 Changed 5 years ago by michael

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

www.oracle.com
ContactPrivacy policyTerms of Use