Bug 47357 - [Pineview GM] [SNA] X server segfaults when run with xinit
Summary: [Pineview GM] [SNA] X server segfaults when run with xinit
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: git
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: Chris Wilson
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-03-15 06:56 UTC by Thierry Reding
Modified: 2012-03-16 00:12 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
backtraces for both segfaults (4.56 KB, text/plain)
2012-03-15 07:01 UTC, Thierry Reding
no flags Details
Xorg log with --enable-debug=full (76.08 KB, text/plain)
2012-03-15 08:33 UTC, Thierry Reding
no flags Details

Description Thierry Reding 2012-03-15 06:56:33 UTC
When I enable SNA and boot the system, the X server segfaults with the
following backtrace:

  # gdb /usr/bin/Xorg /tmp/X-2195
  Core was generated by `X :0 vt8'.
  Program terminated with signal 11, Segmentation fault.
  #0  0x08128839 in dixGetPrivate (key=0x8225c38, privates=0x9dbdaf8) at /home/thierry.reding/src/pbs.git/build/medatom-rootfs/build/packages/xorg/xorg-server/xorg-server-1.12.0/include/privates.h:131
  131     /home/thierry.reding/src/pbs.git/build/medatom-rootfs/build/packages/xorg/xorg-server/xorg-server-1.12.0/include/privates.h: No such file or directory.
  (gdb) bt
  #0  0x08128839 in dixGetPrivate (key=0x8225c38, privates=0x9dbdaf8) at /home/thierry.reding/src/pbs.git/build/medatom-rootfs/build/packages/xorg/xorg-server/xorg-server-1.12.0/include/privates.h:131
  #1  dixLookupPrivate (key=0x8225c38, privates=0x9dbdaf8) at /home/thierry.reding/src/pbs.git/build/medatom-rootfs/build/packages/xorg/xorg-server/xorg-server-1.12.0/include/privates.h:161
  #2  CreatePicture (pid=0, pDrawable=0x9dd98b8, pFormat=0x9e18148, vmask=4096, vlist=0xbfde77b8, client=0x9d991f0, error=0xbfde77bc)
      at /home/thierry.reding/src/pbs.git/build/medatom-rootfs/build/packages/xorg/xorg-server/xorg-server-1.12.0/render/picture.c:757
  #3  0xb721c01c in realize_glyph_caches (sna=0x9daba08) at /home/thierry.reding/src/pbs.git/build/medatom-rootfs/build/packages/xorg/driver/xf86-video-intel/xf86-video-intel-2.18.0/src/sna/sna_glyphs.c:187
  #4  sna_glyphs_create (sna=0x9daba08) at /home/thierry.reding/src/pbs.git/build/medatom-rootfs/build/packages/xorg/driver/xf86-video-intel/xf86-video-intel-2.18.0/src/sna/sna_glyphs.c:935
  #5  0xb71f7dc8 in sna_accel_create (sna=0x9daba08) at /home/thierry.reding/src/pbs.git/build/medatom-rootfs/build/packages/xorg/driver/xf86-video-intel/xf86-video-intel-2.18.0/src/sna/sna_accel.c:12032
  #6  0xb721957a in sna_create_screen_resources (screen=0x9efa920) at /home/thierry.reding/src/pbs.git/build/medatom-rootfs/build/packages/xorg/driver/xf86-video-intel/xf86-video-intel-2.18.0/src/sna/sna_driver.c:212
  #7  0x080ecc30 in xf86CrtcCreateScreenResources (screen=0x9efa920) at /home/thierry.reding/src/pbs.git/build/medatom-rootfs/build/packages/xorg/xorg-server/xorg-server-1.12.0/hw/xfree86/modes/xf86Crtc.c:725
  #8  0x080643f3 in main (argc=3, argv=0xbfde7934, envp=0xbfde7944) at /home/thierry.reding/src/pbs.git/build/medatom-rootfs/build/packages/xorg/xorg-server/xorg-server-1.12.0/dix/main.c:216

I use the vanilla X server (1.12) with xf86-video-intel from latest git.
X is started via xinit, but curiously the behaviour differs when I run X
manually like so:

  # X :0 vt8

This is probably due to the fact that the latter doesn't initialize the
whole session (awesome window manager). I can manually start and use an
xterm in that case. However, when I close the xterm I get a segfault
very similar to that mentioned above:

  # gdb /usr/bin/Xorg /tmp/X-864
  Core was generated by `X :0 vt8'.
  Program terminated with signal 11, Segmentation fault.
  #0  0x0812817b in ChangePicture (pPicture=0x8d70cf8, vmask=0, vlist=0xbff9671c, ulist=0x0, client=0x8cf91f0) at /home/thierry.reding/src/pbs.git/build/medatom-rootfs/build/packages/xorg/xorg-server/xorg-server-1.12.0/render/picture.c:1228
  1228    /home/thierry.reding/src/pbs.git/build/medatom-rootfs/build/packages/xorg/xorg-server/xorg-server-1.12.0/render/picture.c: No such file or directory.
  (gdb) bt
  #0  0x0812817b in ChangePicture (pPicture=0x8d70cf8, vmask=0, vlist=0xbff9671c, ulist=0x0, client=0x8cf91f0) at /home/thierry.reding/src/pbs.git/build/medatom-rootfs/build/packages/xorg/xorg-server/xorg-server-1.12.0/render/picture.c:1228
  #1  0x08128906 in CreatePicture (pid=0, pDrawable=0x8d398b8, pFormat=0x8d78148, vmask=4096, vlist=0xbff96718, client=0x8cf91f0, error=0xbff9671c)
      at /home/thierry.reding/src/pbs.git/build/medatom-rootfs/build/packages/xorg/xorg-server/xorg-server-1.12.0/render/picture.c:791
  #2  0xb717c01c in realize_glyph_caches (sna=0x8d0ba08) at /home/thierry.reding/src/pbs.git/build/medatom-rootfs/build/packages/xorg/driver/xf86-video-intel/xf86-video-intel-2.18.0/src/sna/sna_glyphs.c:187
  #3  sna_glyphs_create (sna=0x8d0ba08) at /home/thierry.reding/src/pbs.git/build/medatom-rootfs/build/packages/xorg/driver/xf86-video-intel/xf86-video-intel-2.18.0/src/sna/sna_glyphs.c:935
  #4  0xb7157dc8 in sna_accel_create (sna=0x8d0ba08) at /home/thierry.reding/src/pbs.git/build/medatom-rootfs/build/packages/xorg/driver/xf86-video-intel/xf86-video-intel-2.18.0/src/sna/sna_accel.c:12032
  #5  0xb717957a in sna_create_screen_resources (screen=0x8e5a920) at /home/thierry.reding/src/pbs.git/build/medatom-rootfs/build/packages/xorg/driver/xf86-video-intel/xf86-video-intel-2.18.0/src/sna/sna_driver.c:212
  #6  0x080ecc30 in xf86CrtcCreateScreenResources (screen=0x8e5a920) at /home/thierry.reding/src/pbs.git/build/medatom-rootfs/build/packages/xorg/xorg-server/xorg-server-1.12.0/hw/xfree86/modes/xf86Crtc.c:725
  #7  0x080643f3 in main (argc=3, argv=0xbff96894, envp=0xbff968a4) at /home/thierry.reding/src/pbs.git/build/medatom-rootfs/build/packages/xorg/xorg-server/xorg-server-1.12.0/dix/main.c:216

I'm happy to provide more information if necessary?

Thierry
Comment 1 Chris Wilson 2012-03-15 07:01:16 UTC
Can you please recompile with --enable-debug=full and attach the xorg.log? The last time I've seen such a backtrace was when the DDX and the Xserver disagreed on the sizes of various structures. In gdb, can you print the sizeof(PixmapRec) for each frame?
Comment 2 Thierry Reding 2012-03-15 07:01:19 UTC
Created attachment 58511 [details]
backtraces for both segfaults
Comment 3 Thierry Reding 2012-03-15 07:48:28 UTC
(In reply to comment #1)
> Can you please recompile with --enable-debug=full and attach the xorg.log? The
> last time I've seen such a backtrace was when the DDX and the Xserver disagreed
> on the sizes of various structures. In gdb, can you print the sizeof(PixmapRec)
> for each frame?

gdb says PixmapRec is 48 bytes for each of the frames. Do I perhaps need to
configure the server in a special way to support SNA? Currently I'm using
the same build as for UXA.
Comment 4 Chris Wilson 2012-03-15 08:18:22 UTC
(In reply to comment #3)
> gdb says PixmapRec is 48 bytes for each of the frames. Do I perhaps need to
> configure the server in a special way to support SNA? Currently I'm using
> the same build as for UXA.

No, it should behave exactly like UXA (given it has the same build infrastructure!). The structure mismatch is just something I have to seen to cause very similar segfaults.
Comment 5 Thierry Reding 2012-03-15 08:33:55 UTC
Created attachment 58518 [details]
Xorg log with --enable-debug=full
Comment 6 Chris Wilson 2012-03-15 14:38:05 UTC
commit fe4ad66aadcfa0c907ba6460a88c49e65225602c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Mar 15 21:33:00 2012 +0000

    sna: Correct the order of screen private teardown
    
    So that we do not keep a stale references of the last cached pixmap
    across server regeneration (or shutdown).
    
    Reported-by: Thierry Reding <thierry.reding@avionic-design.de>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=47357
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Comment 7 Thierry Reding 2012-03-16 00:12:46 UTC
Just for completeness, I've tested the latest master and can confirm that the
segfault no longer occurs.

Thanks for fixing this!


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.