Bug 70926

Summary: [PIGLIT,radeonsi] Crash (SIGPIPE) in X triggered by Piglit test "glx/GLX_EXT_import_context/get current display"
Product: xorg Reporter: Kai <kai>
Component: Server/GeneralAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED INVALID QA Contact: Xorg Project Team <xorg-team>
Severity: major    
Priority: medium    
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Full GDB backtrace and register info (captured over SSH)
none
GDB backtrace with handle SIGPIPE
none
Log of the piglit run resulting in the crash none

Description Kai 2013-10-27 17:40:35 UTC
Created attachment 88188 [details]
Full GDB backtrace and register info (captured over SSH)

While running Piglit on radeonsi (full graphics stack detailed below) I encountered an crash in "glx/GLX_EXT_import_context/get current display". See the attached GDB backtrace and register dump for more details.

I can trigger this crash repeatedly when I invoke bin/glx-get-current-display-ext from the build directory of Piglit.


Stack:
GPU: "PITCAIRN" (ChipID = 0x6819)
Linux: 3.11.6
libdrm: 2.4.47
LLVM: SVN:trunk/r193475
libclc: Git:master/4c18120c1a
Mesa: Git:master/64c081e8b7
GLAMOR: Git:master/ba209eeef2
DDX: Git:master/f1dc677e79
Xorg: 1.14.3 [xorg-server 2:1.14.3-4 (Julien Cristau <jcristau@debian.org>)]

Let me know, if you need further information.
Comment 1 Michel Dänzer 2013-10-27 18:06:29 UTC
Sorry, I failed to notice on IRC that this is SIGPIPE, which is not a crash but normal during X server operation. You have to tell gdb to ignore it:

handle SIGPIPE nostop noprint
Comment 2 Kai 2013-10-28 18:12:02 UTC
Created attachment 88245 [details]
GDB backtrace with handle SIGPIPE

When I run Piglit in non-concurrent mode (ie. with -1) and attach GDB to X, use the handle statement from comment 1 I'm getting the attached output.

The last lines in the test log are
>         "spec/glsl-1.30/compiler/built-in-functions/op-mod-uint-uint.vert": {
>             "info": "Returncode: 0\n\nErrors:\n\n\nOutput:\nSuccessfully compiled vertex shader <PIGLITPATH>/build/generated_tests/spec/glsl-1.30/compiler/built-in-functions/op-mod-uint-uint.vert: \n", 
>             "dmesg": "", 
>             "returncode": 0, 
>             "command": "<PIGLITPATH>/build/bin/glslparsertest <PIGLITPATH>/build/generated_tests/spec/glsl-1.30/compiler/built-in-functions/op-mod-uint-uint.vert pass 1.30", 
>             "result": "pass", 
>             "time": 0.02897810935974121
>         },
>         "glx/GLX_EXT_import_context/get current display": {
>             "info": "Returncode: 1\n\nErrors:\nGot (nil) display, expected 0x1ff6010.\n\n\nOutput:\n", 
>             "dmesg": "", 
>             "returncode": 1, 
>             "note": "Returncode was 1", 
>             "errors": [
>                 "Got (nil) display, expected 0x1ff6010."
>             ], 
>             "command": "<PIGLITPATH>/build/bin/glx-get-current-display-ext", 
>             "result": "fail", 
>             "time": 0.03241395950317383
>         },
>         "spec/glsl-1.10/execution/built-in-functions/fs-op-div-vec2-vec2": {
>             "info": "Returncode: 1\n\nErrors:\nXIO:  fatal IO error 11 (Resource temporarily unavailable) on X server \":0\"\n      after 20 requests (20 known processed) with 0 events remaining.\n\n\nOutput:\n", 
>             "dmesg": "", 
>             "returncode": 1, 
>             "note": "Returncode was 1", 
>             "errors": [
>                 "XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server \":0\"", 
>                 "after 20 requests (20 known processed) with 0 events remaining."
>             ], 
>             "command": "<PIGLITPATH>/build/bin/shader_runner <PIGLITPATH>/build/generated_tests/spec/glsl-1.10/execution/built-in-functions/fs-op-div-vec2-vec2.shader_test -auto", 
>             "result": "fail", 
>             "time": 0.28762006759643555
>         },
>         "spec/glsl-1.30/compiler/built-in-functions/op-sub-uvec3-uint.frag": {
>             "info": "Returncode: 1\n\nErrors:\npiglit: error: waffle_display_connect failed due to WAFFLE_ERROR_UNKNOWN: XOpenDisplay failed\n\n\nOutput:\n", 
>             "dmesg": "", 
>             "returncode": 1, 
>             "note": "Returncode was 1", 
>             "errors": [
>                 "piglit: error: waffle_display_connect failed due to WAFFLE_ERROR_UNKNOWN: XOpenDisplay failed"
>             ], 
>             "command": "<PIGLITPATH>/build/bin/glslparsertest <PIGLITPATH>/build/generated_tests/spec/glsl-1.30/compiler/built-in-functions/op-sub-uvec3-uint.frag pass 1.30", 
>             "result": "fai

With "glx/GLX_EXT_import_context/get current display" being the first obviously failing one. If I run those tests on their own, I'm not getting a crash ("glx/GLX_EXT_import_context/get current display" still fails with something like "Got (nil) display, expected 0x1ff6010.").

If anybody has an idea how I might be able to nail this down to a testcase, please let me know.
Comment 3 Kai 2013-10-28 18:18:14 UTC
Created attachment 88248 [details]
Log of the piglit run resulting in the crash

Just for reference: a log of a piglit run resulting in a crash.

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.