Evolution segfaults when NVidia driver is installed but not used [in __GI_____strtoul_l_internal() from __GI___strtoul_l() from g_ascii_strtoull() from _cogl_gpu_info_parse_version_string() from check_mesa_driver_package() from _cogl_gpu_info_init() from _cogl_driver_update_features() from _cogl_winsys_context_init()]

Bug #1730241 reported by Michael Scott
78
This bug affects 12 people
Affects Status Importance Assigned to Milestone
clutter-gtk (Ubuntu)
Confirmed
High
Unassigned
cogl (Ubuntu)
Confirmed
High
Unassigned
evolution (Ubuntu)
Invalid
High
Unassigned

Bug Description

To use CUDA I have installed the NVidia driver but disabled the card in the BIOS and set the main output to the onboard GPU. I also edited the xorg.conf accordingly. Now I can no longer start evolution. It crashes with a segfault. I cannot reproduce the segfault with other clutter apps.

Attached is a backtrace of the crash, my xorg.conf, and the Xorg log.

Revision history for this message
Michael Scott (scottmmm) wrote :
Revision history for this message
Michael Scott (scottmmm) wrote :
Revision history for this message
Michael Scott (scottmmm) wrote :
description: updated
Michael Scott (scottmmm)
summary: - Evolution segfaults when NVidia driver is install but not used
+ Evolution segfaults when NVidia driver is installed but not used
Michael Scott (scottmmm)
no longer affects: evolution
Revision history for this message
Sebastien Bacher (seb128) wrote : Re: Evolution segfaults when NVidia driver is installed but not used

Thank you for taking the time to report this bug and helping to make Ubuntu better. The issue you are reporting is an upstream one and it would be nice if somebody having it could send the bug to the developers of the software by following the instructions at https://wiki.ubuntu.com/Bugs/Upstream/GNOME. If you have done so, please tell us the number of the upstream bug (or the link), so we can add a bugwatch that will inform us about its status. Thanks in advance.

Revision history for this message
Michael Scott (scottmmm) wrote :

I resolved the problem by forcing the GL library to be taken from Mesa.

sudo update-alternatives --set x86_64-linux-gnu_gl_conf /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf
sudo update-alternatives --set x86_64-linux-gnu_egl_conf /usr/lib/x86_64-linux-gnu/mesa-egl/ld.so.conf
sudo update-alternatives --set i386-linux-gnu_gl_conf /usr/lib/i386-linux-gnu/mesa/ld.so.conf
sudo update-alternatives --set i386-linux-gnu_egl_conf /usr/lib/i386-linux-gnu/mesa-egl/ld.so.conf

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in clutter-gtk (Ubuntu):
status: New → Confirmed
Changed in cogl (Ubuntu):
status: New → Confirmed
Changed in evolution (Ubuntu):
status: New → Confirmed
Changed in evolution (Ubuntu):
status: Confirmed → Invalid
importance: Undecided → High
Changed in clutter-gtk (Ubuntu):
importance: Undecided → High
Changed in cogl (Ubuntu):
importance: Undecided → High
Revision history for this message
Sebastien Bacher (seb128) wrote :

what's the output of "glxinfo" on your machine? it seems there that glGetString() doesn't return what it should

Revision history for this message
Paul Smith (psmith-gnu) wrote :

I just restarted Evolution (but did not reboot my system or make any other changes) and now Evolution is crashing for me in the identical way described here. I literally just quit Evolution, it was running fine, and restarted it and now it just crashes with the same stacktrace shown above, a null pointer passed to g_ascii_strtoull() (will add it as an attachment) after this error:

  (evolution:14770): GLib-CRITICAL **: 19:35:04.237: g_strsplit: assertion 'string != NULL' failed

I'm now a little afraid to restart my system in case more things start to fail.

FYI, glxinfo shows:

$ glxinfo
name of display: :1
X Error of failed request: BadValue (integer parameter out of range for operation)
  Major opcode of failed request: 154 (GLX)
  Minor opcode of failed request: 24 (X_GLXCreateNewContext)
  Value in failed request: 0x0
  Serial number of failed request: 93
  Current serial number in output stream: 94

I think if nothing else, a bug should be filed with libcogl asking them to be more defensive in their programming here and handle badly formatted GPU version string. For example in my backtrace I can clearly see that the strings being taken from the context are all null, and that _cogl_gpu_info_parse_version_string() simply passes this to g_ascii_strtoull() without checking.

I have Ubuntu 18.04.1 with:

ii evolution 3.28.5-0ubuntu0.18.04.1
ii evolution-common 3.28.5-0ubuntu0.18.04.1
ii evolution-data-server 3.28.5-0ubuntu0.18.04.1
ii evolution-data-server-common 3.28.5-0ubuntu0.18.04.1
ii evolution-plugin-bogofilter 3.28.5-0ubuntu0.18.04.1
ii evolution-plugin-pstimport 3.28.5-0ubuntu0.18.04.1
ii evolution-plugins 3.28.5-0ubuntu0.18.04.1
ii libclutter-1.0-0:amd64 1.26.2+dfsg-4
ii libclutter-1.0-0-dbgsym:amd64 1.26.2+dfsg-4
ii libclutter-1.0-common 1.26.2+dfsg-4
ii libclutter-gst-3.0-0:amd64 3.0.26-1
ii libclutter-gtk-1.0-0:amd64 1.8.4-3
ii libclutter-gtk-1.0-0-dbgsym:amd64 1.8.4-3
ii libcogl-common 1.22.2-3
ii libcogl-pango20:amd64 1.22.2-3
ii libcogl-path20:amd64 1.22.2-3
ii libcogl20:amd64 1.22.2-3
ii libcogl20-dbgsym:amd64 1.22.2-3
ii libglib2.0-0:amd64 2.56.2-0ubuntu0.18.04.2
ii libglib2.0-0-dbgsym:amd64 2.56.2-0ubuntu0.18.04.2
ii libglib2.0-bin 2.56.2-0ubuntu0.18.04.2
ii libglib2.0-data 2.56.2-0ubuntu0.18.04.2
ii libglib2.0-dev:amd64 2.56.2-0ubuntu0.18.04.2
ii libglib2.0-dev-bin 2.56.2-0ubuntu0.18.04.2

I'm running with NVidia proprietary drivers with my old crusty NVidia GeForce 8400 GS with the proprietary driver version 340.107 that I've been using, and has worked fine, for years.

Revision history for this message
Paul Smith (psmith-gnu) wrote :
Revision history for this message
Paul Smith (psmith-gnu) wrote :

Seems like it might be related to this: https://gitlab.gnome.org/GNOME/cogl/issues/1 which similarly was reported here: https://gitlab.gnome.org/GNOME/gnome-control-center/issues/109

Revision history for this message
Paul Smith (psmith-gnu) wrote :

Aha, looking at issue #109 then checking journalctl I see:

Oct 09 09:34:34 homebase kernel: NVRM: API mismatch: the client has the version 340.107, but
                                 NVRM: this kernel module has the version 340.106. Please
                                 NVRM: make sure that this kernel module and all NVIDIA driver
                                 NVRM: components have the same version.
Oct 09 09:34:34 homebase kernel: NVRM: nvidia_frontend_ioctl: minor 255, module->ioctl failed, error -22

I suspect that maybe an "apt update" ran which installed a new nvidia driver but I haven't rebooted so the old one is still active? I'll try rebooting to see if that helps.

I think it would be very helpful if libcogl could be enhanced to report some sort of error rather than just dumping core...

summary: - Evolution segfaults when NVidia driver is installed but not used
+ Apps segfault when NVidia driver is installed but not used
summary: - Apps segfault when NVidia driver is installed but not used
+ Evolution segfaults when NVidia driver is installed but not used [in
+ __GI_____strtoul_l_internal() from __GI___strtoul_l() from
+ g_ascii_strtoull() from _cogl_gpu_info_parse_version_string() from
+ check_mesa_driver_package() from _cogl_gpu_info_init() from
+ _cogl_driver_update_features() from _cogl_winsys_context_init()]
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.