Bug 1079607 - 15.0B & TW20180203 Xorg terminates with error if Composite is disabled
15.0B & TW20180203 Xorg terminates with error if Composite is disabled
Status: RESOLVED FIXED
Classification: openSUSE
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: X.Org
Current
x86-64 Other
: P3 - Medium : Major (vote)
: ---
Assigned To: Michal Srb
E-mail List
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2018-02-06 14:45 UTC by Felix Miata
Modified: 2018-06-21 21:46 UTC (History)
1 user (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
/var/lib/systemd/coredump/core.X.0....lz4 from TW host big41 (2.83 MB, application/octet-stream)
2018-02-06 14:45 UTC, Felix Miata
Details
Xorg.0.log from 15.0 host big41 (19.90 KB, text/plain)
2018-02-06 19:07 UTC, Felix Miata
Details
Xorg.0.log from TW20180203 host big41 (19.70 KB, text/plain)
2018-02-06 19:07 UTC, Felix Miata
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Felix Miata 2018-02-06 14:45:58 UTC
Created attachment 759043 [details]
/var/lib/systemd/coredump/core.X.0....lz4 from TW host big41

TW20180102 worked as expected. Same failure with 3 installations across two machines, one with Q45, the other with G41. Same problem whether startx or KDM or KDM3 initializing X, or with xf86-video-intel installed.

Xorg.0.log excerpt from G41 host big41.
[  4437.424] 
X.Org X Server 1.19.6
Release Date: 2017-12-20
[  4437.427] X Protocol Version 11, Revision 0
[  4437.428] Build Operating System: openSUSE SUSE LINUX
[  4437.429] Current Operating System: Linux big41 4.14.9-1-default #1 SMP PREEMPT Mon Dec 25 15:42:48 UTC 2017 (9423ca2) x86_64
[  4437.429] Kernel command line: root=LABEL=sTWp23sv5 ipv6.disable=1 net.ifnames=0 noresume vga=791 video=1280x720@60 video=1024x768@60 video=1440x900@60 3
[  4437.492] (EE) Failed to load module "intel" (module does not exist, 0)
[  4438.369] (II) modeset(0): Output HDMI-1 connected
[  4438.537] (II) AIGLX: GLX_EXT_texture_from_pixmap backed by buffer objects
[  4438.537] (EE) Backtrace:
[  4438.537] (EE) 0: X (xorg_backtrace+0x65) [0x561d49c94585]
[  4438.537] (EE) 1: X (0x561d49adf000+0x1b9339) [0x561d49c98339]
[  4438.537] (EE) 2: /lib64/libpthread.so.0 (0x7f0a6d869000+0x12270) [0x7f0a6d87b270]
[  4438.537] (EE) 3: /lib64/libc.so.6 (gsignal+0x110) [0x7f0a6d4e50d0]
[  4438.537] (EE) 4: /lib64/libc.so.6 (abort+0x151) [0x7f0a6d4e66b1]
[  4438.537] (EE) 5: /lib64/libc.so.6 (0x7f0a6d4af000+0x2e6fa) [0x7f0a6d4dd6fa]
[  4438.537] (EE) 6: /lib64/libc.so.6 (0x7f0a6d4af000+0x2e772) [0x7f0a6d4dd772]
[  4438.537] (EE) 7: X (0x561d49adf000+0x3ffe7) [0x561d49b1efe7]
[  4438.537] (EE) 8: X (0x561d49adf000+0xe354f) [0x561d49bc254f]
[  4438.537] (EE) 9: /usr/lib64/xorg/modules/extensions/libglx.so (0x7f0a6b0d8000+0x29307) [0x7f0a6b101307]
[  4438.537] (EE) 10: /usr/lib64/xorg/modules/extensions/libglx.so (0x7f0a6b0d8000+0x30246) [0x7f0a6b108246]
[  4438.537] (EE) 11: /usr/lib64/xorg/modules/extensions/libglx.so (0x7f0a6b0d8000+0x27db5) [0x7f0a6b0ffdb5]
[  4438.537] (EE) 12: X (InitExtensions+0x3d) [0x561d49ba5edd]
[  4438.537] (EE) 13: X (0x561d49adf000+0x5809f) [0x561d49b3709f]
[  4438.537] (EE) 14: /lib64/libc.so.6 (__libc_start_main+0xea) [0x7f0a6d4cff4a]
[  4438.537] (EE) 15: X (_start+0x2a) [0x561d49b20f3a]
Fatal server error:
[  4438.537] (EE) Caught signal 6 (Aborted). Server aborting
[  4438.556] (EE) Server terminated with error (1). Closing log file.

Partial package status on host gx780:
  | Mesa-demo             | package | 8.3.0-3.3   | x86_64 | OSS
  | Mesa-dri-nouveau      | package | 18.0.0-185.1| x86_64 | OSS
  | Mesa-libGLESv1_CM1    | package | 18.0.0-185.1| x86_64 | OSS
  | Mesa-libOpenCL        | package | 18.0.0-185.1| x86_64 | OSS
  | Mesa-libd3d           | package | 18.0.0-185.1| x86_64 | OSS
  | Mesa-libva            | package | 18.0.0-185.1| x86_64 | OSS
  | glxosd                | package | 3.2.2-2.1   | x86_64 | OSS
  | glxosd-nvidia-plugin  | package | 3.2.2-2.1   | noarch | OSS
  | glxosd-sensors-plugin | package | 3.2.2-2.1   | noarch | OSS
  | libOSMesa8            | package | 18.0.0-185.1| x86_64 | OSS
  | libva-glx2            | package | 2.0.0-2.1   | x86_64 | OSS
  | libva-utils           | package | 2.0.0-2.1   | x86_64 | OSS
  | libva-vdpau-driver    | package | 0.7.4-4.1   | x86_64 | OSS
  | libvacuumutils37      | package | 1.3.0+git151| x86_64 | OSS
  | libvala-0_38-0        | package | 0.38.6-1.1  | x86_64 | OSS
  | libvaladoc-0_38-0     | package | 0.38.6-1.1  | x86_64 | OSS
  | libvamp-hostsdk3      | package | 2.7.1-1.2   | x86_64 | OSS
  | libvamp-sdk2          | package | 2.7.1-1.2   | x86_64 | OSS
  | libvarnishapi1        | package | 5.1.2-2.2   | x86_64 | OSS
  | rss-glx               | package | 0.9.1-21.2  | x86_64 | OSS
i | Mesa                  | package | 18.0.0-185.1| x86_64 | OSS
i | Mesa-demo-x           | package | 8.3.0-3.3   | x86_64 | OSS
i | Mesa-dri              | package | 18.0.0-185.1| x86_64 | OSS
i | Mesa-gallium          | package | 18.0.0-185.1| x86_64 | OSS
i | Mesa-libEGL1          | package | 18.0.0-185.1| x86_64 | OSS
i | Mesa-libGL1           | package | 18.0.0-185.1| x86_64 | OSS
i | Mesa-libGLESv2-2      | package | 18.0.0-185.1| x86_64 | OSS
i | Mesa-libglapi0        | package | 18.0.0-185.1| x86_64 | OSS
i | libva-drm2            | package | 2.0.0-2.1   | x86_64 | OSS
i | libva-wayland2        | package | 2.0.0-2.1   | x86_64 | OSS
i | libva-x11-2           | package | 2.0.0-2.1   | x86_64 | OSS
i | libva2                | package | 2.0.0-2.1   | x86_64 | OSS
i | libvapoursynth        | package | R38-3.3     | x86_64 | Packman
i | libvapoursynth-40     | package | 40-1.2      | x86_64 | OSS
i | libvapoursynth-script0| package | 40-1.2      | x86_64 | OSS
i | libxcb-glx0           | package | 1.12-4.1    | x86_64 | OSS
v | libvapoursynth-script0| package | R38-3.3     | x86_64 | Packman
Comment 1 Stefan Dirsch 2018-02-06 15:26:49 UTC
Could you please provide the complete X logfile? Thanks!
Comment 2 Felix Miata 2018-02-06 19:07:44 UTC
Created attachment 759088 [details]
Xorg.0.log from 15.0 host big41
Comment 3 Felix Miata 2018-02-06 19:07:56 UTC
Created attachment 759089 [details]
Xorg.0.log from TW20180203 host big41
Comment 4 Stefan Dirsch 2018-02-07 11:32:02 UTC
[    98.129] (--) PCI:*(0:0:2:0) 8086:2e32:1565:3103 rev 3, Mem @ 0xfe400000/4194304, 0xd0000000/268435456, I/O @ 0x0000cc00/8, BIOS @ 0x????????/131072
[    98.129] (--) PCI: (0:0:2:1) 8086:2e33:1565:3103 rev 3, Mem @ 0xfe800000/1048576

This looks like X dectects two Intel GPUs. We had the issue, that with the automatic setup of two graphics drivers, where one is not a native one (like fbdev or modeset), this can lead to X crashes - *if* I remember correctly.

Michal may remember more. He investigated this.

It's a bit weird, since 2e33 is an unknown Intel PCI ID. Only 2e32 is known (G41).
Comment 5 Stefan Dirsch 2018-02-07 11:32:43 UTC
Adding Michal.
Comment 6 Michal Srb 2018-02-07 12:09:31 UTC
(In reply to Stefan Dirsch from comment #4)
> This looks like X dectects two Intel GPUs. We had the issue, that with the
> automatic setup of two graphics drivers, where one is not a native one (like
> fbdev or modeset), this can lead to X crashes - *if* I remember correctly.
> 
> Michal may remember more. He investigated this.

That was bug #1068961. But that happens only if two drivers, one using RandR < 1.2 and other using RandR >= 1.2, are combined together. The crash would originate from some of the RandR functions.

This seems to be different problem. I don't know if it is somehow caused/related to the two GPUs.

I have checked the core dump and it is crashing during the GLX extension initialization. It calls `compIsAlternateVisual` to get some information from the Composite extension, but that eventually aborts because the `CompScreenPrivateKey` was never initialized. It was not initialized because the Composite extension is disabled:

    [  4437.486] (**) Extension "Composite" is disabled

First of all I wonder why is the Composite extension disabled. Is it intentional?

But in any case, disabling it is a valid usage and X server should not crash. It seems that since commit f84e59a4f4 the GLX depends on Composite. So disabling Composite should disable GLX or it should skip the calls into Composite.
Comment 7 Michal Srb 2018-02-07 12:12:45 UTC
I was able to reproduce it in virtual machine by simply disabling Composite extension in xorg.conf. So it does not seem to be hardware specific.
Comment 8 Michal Srb 2018-02-07 13:16:13 UTC
Well, one solution would be to wrap all the calls from GLX code to Composite code in `if (!noCompositeExtension) { ... }` blocks, but I am not sure if that is the best solution.

I have created bug upstream:
https://bugs.freedesktop.org/show_bug.cgi?id=104993
Comment 9 Felix Miata 2018-02-07 14:22:10 UTC
All my installations are intended to have
 
	Section "Extensions"
	        Option          "Composite" "Disable"
	EndSection

in /etc/X11/xorg.conf.d/70-extensions.conf with 2011 timestamp.

In TW, I also get the crash from Broadwater (older, Q965, 8086:2992; VGA only), another Eaglelake (Q43 8086:2e12/2e13 VGA/DP), and on  UEFI Kabylake (much newer HD 630 8086:5912 VGA/DP/HDMI/DVI).
Comment 10 Stefan Dirsch 2018-04-18 09:59:14 UTC
Fix is in now. (X11:XOrg/xorg-x11-server)

Also submitrequested for factory and sle15/Leap 15

Closing
Comment 12 Felix Miata 2018-04-25 14:53:34 UTC
Fix made it into TW20180424, but not yesterday's 15.0 build 213.2.