Use of grease pencil consistanly crashes display server #54210

Closed
opened 2018-03-03 10:52:31 +01:00 by Mai Lavelle · 12 comments
Member

Blender (both master and 2.8) somehow is able to crash the display server while doing grease pencil drawing using a Wacom tablet. I'm able to reproduce this consistently, but so far this is the only error I've been able to find in any log:

after 95493 requests (95493 known processed) with 2 events remaining.```

Theres no backtrace, Blender (and every other process in the session) exits with code 1.

Perhaps this is some bug in the display server, but this only ever happens when drawing in Blender, other apps work just fine without causing this problem, so maybe there is something in how Blender is interacting with input / display that should be fixed.

Not really sure how to debug this...

Arch Linux
Xorg 1.19.6
Blender (both master and 2.8) somehow is able to crash the display server while doing grease pencil drawing using a Wacom tablet. I'm able to reproduce this consistently, but so far this is the only error I've been able to find in any log: ```XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":1" ``` after 95493 requests (95493 known processed) with 2 events remaining.``` ``` Theres no backtrace, Blender (and every other process in the session) exits with code 1. Perhaps this is some bug in the display server, but this only ever happens when drawing in Blender, other apps work just fine without causing this problem, so maybe there is something in how Blender is interacting with input / display that should be fixed. Not really sure how to debug this... Arch Linux Xorg 1.19.6
Author
Member

Added subscriber: @MaiLavelle

Added subscriber: @MaiLavelle

Added subscriber: @antoniov

Added subscriber: @antoniov

I use Windows and I cannot reproduce the error in my system. In the production of Hero open movie some artist are using Linux with tablet/Cintiq and they have not reported any issue.

Coud you try to review Wacom drivers?

I use Windows and I cannot reproduce the error in my system. In the production of Hero open movie some artist are using Linux with tablet/Cintiq and they have not reported any issue. Coud you try to review Wacom drivers?

Added subscriber: @brecht

Added subscriber: @brecht

Suggestions for debugging:

  • Check Xorg.0.log or other system logs for related error message.
  • Try disabling various tablet related code in GHOST X11, like refreshXInputDevices, proximity checks, tilt, .. and see if any of that is the cause of the problem.
  • Add various printfs to see what the code is doing and check if anything is out of the ordinary, something specific happens right before the crash, etc.
Suggestions for debugging: * Check Xorg.0.log or other system logs for related error message. * Try disabling various tablet related code in GHOST X11, like refreshXInputDevices, proximity checks, tilt, .. and see if any of that is the cause of the problem. * Add various printfs to see what the code is doing and check if anything is out of the ordinary, something specific happens right before the crash, etc.
Author
Member

Bit of an update...

Still haven't found anything useful in system logs. I've managed to cause the crash without a tablet, tho doing so requires quite some erratic mouse movements.

I also tried disabling all tablet related code, and also disabling all grease pencil drawing code. The display server still crashes without that code.

Tried using the tablet and erratic movements in other areas of blender and other apps, the crash only happens when using grease pencil.

Unsure at the moment what to try next..

Bit of an update... Still haven't found anything useful in system logs. I've managed to cause the crash without a tablet, tho doing so requires quite some erratic mouse movements. I also tried disabling all tablet related code, and also disabling all grease pencil drawing code. The display server still crashes without that code. Tried using the tablet and erratic movements in other areas of blender and other apps, the crash only happens when using grease pencil. Unsure at the moment what to try next..

@MaiLavelle When you talk about disable grease pencil drawing code, what code did you disable?

The actual drawing code is in gpencil_engine.c in bf_draw. Maybe you could disable all callback and enable one by one to try to find where is the problem.

@MaiLavelle When you talk about disable grease pencil drawing code, what code did you disable? The actual drawing code is in gpencil_engine.c in bf_draw. Maybe you could disable all callback and enable one by one to try to find where is the problem.
Author
Member

To disable drawing I had made the ED_gpencil_draw_* functions in drawgpencil.c in master branch noops.

After some after several sessions crashes and gdb via tmux, I was able to get a backtrace, and altho that itself wasn't reliable or provided much info, I've been able to narrow things down to GHOST_WindowX11::setWindowCustomCursorShape.

So what I gather at this point is that it isn't exactly related to grease pencil, but rather what ever is happening is possibility some sort of timing issue, which is triggered by a high rate of events and calls to setWindowCustomCursorShape (which is what you get with a tablet and the code from 2b9d80643). After discovering this I tried provoking the crash from other areas where a custom cursor shape is used and was able to reproduce in the text editor by moving the mouse pointer quickly in and out of the area.

To disable drawing I had made the `ED_gpencil_draw_*` functions in drawgpencil.c in master branch noops. After some after several sessions crashes and gdb via tmux, I was able to get a backtrace, and altho that itself wasn't reliable or provided much info, I've been able to narrow things down to `GHOST_WindowX11::setWindowCustomCursorShape`. So what I gather at this point is that it isn't exactly related to grease pencil, but rather what ever is happening is possibility some sort of timing issue, which is triggered by a high rate of events and calls to `setWindowCustomCursorShape` (which is what you get with a tablet and the code from 2b9d80643). After discovering this I tried provoking the crash from other areas where a custom cursor shape is used and was able to reproduce in the text editor by moving the mouse pointer quickly in and out of the area.

In new greasepencil-object branch (base on 2.8 branch) the drawpencil.c are not used in viewport. Now all drawing code is using the draw manager and is included in bf_draw project.

In new greasepencil-object branch (base on 2.8 branch) the drawpencil.c are not used in viewport. Now all drawing code is using the draw manager and is included in bf_draw project.
Author
Member

Changed status from 'Open' to: 'Archived'

Changed status from 'Open' to: 'Archived'
Mai Lavelle self-assigned this 2018-03-10 10:01:54 +01:00
Author
Member

Narrowed this down further to some bug in the proprietary Nvidia drivers, at some point after version 381.22. Still nothing in the logs.

Since this appears to be a driver issue I'll close this task, and try to report to Nvidia. Thanks for the help with this.

In summary: High rate of setting a custom X11 cursor shape crashes proprietary Nvidia drivers (bug introduced between versions 381.22 and 387.34).

Narrowed this down further to some bug in the proprietary Nvidia drivers, at some point after version 381.22. Still nothing in the logs. Since this appears to be a driver issue I'll close this task, and try to report to Nvidia. Thanks for the help with this. In summary: High rate of setting a custom X11 cursor shape crashes proprietary Nvidia drivers (bug introduced between versions 381.22 and 387.34).

Thanks @MaiLavelle for the info. I will inform the Hero team to be careful with driver version.

Thanks @MaiLavelle for the info. I will inform the Hero team to be careful with driver version.
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#54210
No description provided.