Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 686900 - >=x11-drivers/nvidia-drivers-430.09 with "+compat" USE flag raises segmentation faults on X11 startup
Summary: >=x11-drivers/nvidia-drivers-430.09 with "+compat" USE flag raises segmentati...
Status: RESOLVED DUPLICATE of bug 684324
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Linux bug wranglers
Depends on:
Reported: 2019-05-28 06:25 UTC by B.W.Curry
Modified: 2019-05-28 08:03 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---

"emerge --info" output. (,21.02 KB, application/x-info)
2019-05-28 06:25 UTC, B.W.Curry

Note You need to log in before you can comment on or make changes to this bug.
Description B.W.Curry 2019-05-28 06:25:56 UTC
Created attachment 577922 [details]
"emerge --info" output.

tl;dr: Nvidia accidentally broke non-GLVND libGL backwards compatibility in >= 430.09. The only means of resolving this is to remove the "compat" option from our x11-drivers/nvidia-drivers-430.14 ebuild.

Nvidia accidentally broke backward compatibility in their recent line of proprietary drivers in a sufficiently severe fashion that breaks X11 startup across multiple Linux distributions. This includes Gentoo, Arch, and OpenSUSE, as confirmed by at least one Nvidia developer (Arthur Huillet) and multiple third-party users and developers in the following Nvidia forum thread:

As further confirmation, see also the following relevant Gentoo forum threads:

Specifically, the "--no-glvnd-glx-client" and "--no-glvnd-egl-client" options passed to the Nvidia .run installer by the x11-drivers/nvidia-drivers-430.14 ebuild when the "compat" USE flag is enabled reliably raises segmentation faults resembling the following "/var/log/Xorg.0.log" stacktrace:

    (EE) Backtrace:
    (EE) 0: /usr/bin/X (OsLookupColor+0x149) [0x55f4410c0529]
    (EE) 1: /lib64/ (killpg+0x90) [0x7f4974d1089f]
    (EE) 2: /lib64/ (memcpy+0x1f) [0x7f4974d82b4f]
    (EE) 3: /usr/lib64/ (_nv043glcore+0x27f659) [0x7f49716c2869]
    (EE) 4: /usr/lib64/ (_nv043glcore+0x27f7bd) [0x7f49716c2b8d]
    (EE) 5: /usr/lib64/ (_nv015glcore+0x49ad8) [0x7f4971176418]
    (EE) unw_get_proc_name failed: no unwind info found [-10]
    (EE) 6: /usr/lib64/xorg/modules/extensions/ (?+0x0) [0x7f496e8a6d32]
    (EE) Segmentation fault at address 0x7f496e9a0008
    Fatal server error:
    (EE) Caught signal 11 (Segmentation fault). Server aborting

I can personally confirm that disabling the "compat" USE flag trivially resolves this issue on my end.

Nvidia has already scheduled the "--no-glvnd-glx-client" and "--no-glvnd-egl-client" options underlying this USE flag to be removed with the next stable release. It seems likely that Nvidia accidentally broke these options prior to their scheduled removal (e.g., due to their ongoing transition to the full GLVND libGL stack). 

Since these options were scheduled to be removed shortly anyway, our premature removal of this USE flag shouldn't impose too much of an additional hardship on end users. There is one notable exception, however: the unstable "x11-misc/primus" package, which requires "x11-drivers/nvidia-drivers[compat]" as a hard runtime dependency. The "primus-0.2.ebuild" will also need to be patched to blacklist "!>=x11-drivers/nvidia-drivers-430.14". 

Yet again, the high price of binary kernel blobs is unmasked for all to see.
Comment 1 Jeroen Roovers gentoo-dev 2019-05-28 08:03:39 UTC

*** This bug has been marked as a duplicate of bug 684324 ***