Bug 105629 - WebGL shader regular update crashes nouveau driver 17.3.3
Summary: WebGL shader regular update crashes nouveau driver 17.3.3
Status: RESOLVED MOVED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/nouveau (show other bugs)
Version: 17.3
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Nouveau Project
QA Contact: Nouveau Project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-03-20 17:31 UTC by Hugues Evrard
Modified: 2019-09-18 20:46 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Standalone HTML file for reproduction (15.09 KB, text/html)
2018-03-20 17:31 UTC, Hugues Evrard
Details
Trace of nouveau crash from Chromium output (109.36 KB, text/plain)
2018-03-20 17:32 UTC, Hugues Evrard
Details
Longer dmesg log showing chrome errors (42.92 KB, text/plain)
2018-03-23 10:30 UTC, Hugues Evrard
Details

Description Hugues Evrard 2018-03-20 17:31:29 UTC
Created attachment 138227 [details]
Standalone HTML file for reproduction

The repetitive updating + rendering of a fragment shader leads to a crash of the nouveau driver.

Reproduction steps:
 - OS: Linux 4.13.0-37-generic #42~16.04.1-Ubuntu SMP Wed Mar 7 16:03:28 UTC 2018 x86_64
 - Mesa 17.3.3 (from ppa:ubuntu-x-swat)
 - GPU: NVIDIA Corporation GK107 [GeForce GT 630 OEM] (rev a1)

Using chromium (64.0.3282.167, firefox does not reproduce), visit the html page attached to that bug report, and wait for approx. 30 times of shader update. Nouveau crashes with error:

nouveau: kernel rejected pushbuf: No such file or directory
nouveau: ch7: krec 0 pushes 1 bufs 24 relocs 0
nouveau: ch7: buf 00000000 00000004 00000004 00000004 00000000
nouveau: ch7: buf 00000001 00000006 00000004 00000000 00000004
nouveau: ch7: buf 00000002 00000008 00000002 00000002 00000002
...

See attachment for the whole error trace.

Reproduction is non-deterministic as the number of time to render the shader may vary, but it does crash reliably within the first 50 shader updates (sometimes less than 20 updates are enough) on my setup.
Comment 1 Hugues Evrard 2018-03-20 17:32:26 UTC
Created attachment 138228 [details]
Trace of nouveau crash from Chromium output
Comment 2 Ilia Mirkin 2018-03-20 17:42:36 UTC
What's in dmesg when this happens?
Comment 3 Hugues Evrard 2018-03-21 09:29:20 UTC
This is the two lines of dmesg related to such a crash:

[ 1524.609065] show_signal_msg: 13 callbacks suppressed
[ 1524.609067] chromium-browse[2200]: segfault at 840 ip 00007f66b4a7032c sp 00007ffe7e040960 error 6 in libdrm_nouveau.so.2.0.0[7f66b4a6c000+7000]
Comment 4 Ilia Mirkin 2018-03-21 13:50:11 UTC
The long print is a result of an ioctl failure. The kernel will usually print more information about why the submit ioctl fails in dmesg. What you provided was the fact that there's a segfault somewhere down the line... ioctl failures are very poorly handled by the nouveau 3d driver, so I'm not terribly surprised.
Comment 5 Hugues Evrard 2018-03-23 10:30:40 UTC
Created attachment 138308 [details]
Longer dmesg log showing chrome errors

Add a new attachment: longer dmesg trace which shows many duplicate of this Chrome error just before reporting the segfault in nouveau:

[ 5188.843931] nouveau 0000:01:00.0: chromium-browse[8083]: Unknown handle 0x00000000
[ 5188.843935] nouveau 0000:01:00.0: chromium-browse[8083]: validate_init
[ 5188.843936] nouveau 0000:01:00.0: chromium-browse[8083]: validate: -2
[... the above repeated many times ...]
[ 5195.280913] chromium-browse[8083]: segfault at 4b0 ip 00007f9620a5fd73 sp 00007fffb5af7bc0 error 4 in libdrm_nouveau.so.2.0.0[7f9620a5d000+7000]

Given that I cannot reproduce on Firefox, could it be the case that it is a Chrome issue?
Comment 6 GitLab Migration User 2019-09-18 20:46:34 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/1153.


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.