Crash (Seg Fault) When Rendering Grease Pencil Stroke on Render Farm #78449

Open
opened 2020-06-30 02:22:34 +02:00 by Daniel Houghton · 10 comments

System Information
Operating system: Darwin-19.5.0-x86_64-i386-64bit 64 Bits
Graphics card: AMD Radeon Pro 5500M OpenGL Engine ATI Technologies Inc. 4.1 ATI-3.9.15

Blender Version
Broken: version: 2.83.1, branch: master, commit date: 2020-06-25 09:47, hash: 8289fc688b
Worked: (newest version of Blender that worked as expected)

Short description of error
Our render farm of 70 iMacs has been running for 3 years through the 2.7x series up till 2.81a.
When we switched to 2.83 last week it started crashing consistently when rendering Grease Pencil strokes.
The crash occurs when using Blender to do command line rendering via an SSH session on a machine without the user physically logged in. (Crashes on Mac and Linux)

Command Line Rendering on my own machine works fine.
Command Line Rendering on a remote machine via SSH works fine if I'm also logged into that machine.
But as soon as I log out of the machine so that the SSH session is the only active user on the machine, then the error shows up.

I tested this on 2.81a and the error (below) shows up there too, but in 2.81a it doesn't also lead to the Segmentation Fault that crashes Blender.
It's only in 2.83 (and 2.83.1) that the error is followed by the Seg Fault 11

_RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.
Writing: /var/folders/jk/7b488ncn6c13t515bnt6q_8w68xcj1/T/test.crash.txt
Segmentation fault: 11

on Linux the error message is slightly different, but still a crash:
Unable to open a display
Aborted (core dumped)

Contents of test.crash.txt (from the Mac crash)

Blender 2.83.1, Commit date: 2020-06-25 09:47, Hash 8289fc688b

backtrace

0 Blender 0x00000001079eb9d7 BLI_system_backtrace + 55
1 Blender 0x000000010159ddb8 sig_handle_crash + 392
2 libsystem_platform.dylib 0x00007fff5db5fb3d _sigtramp + 29
3 ??? 0x00007f8594802010 0x0 + 140211698802704
4 Blender 0x0000000101a39da2 DRW_opengl_context_create + 66
5 Blender 0x00000001018f47d5 WM_init_opengl + 37
6 Blender 0x0000000101a374ff DRW_render_gpencil + 127
7 Blender 0x0000000105de5ef4 RE_engine_render + 1156
8 Blender 0x0000000105df06d3 do_render_all_options + 387
9 Blender 0x0000000105df2a14 RE_RenderAnim + 2260
10 Blender 0x000000010159c9dd arg_handle_render_animation + 141
11 Blender 0x000000010797880d BLI_argsParse + 173
12 Blender 0x000000010159a497 main + 855
13 libdyld.dylib 0x00007fff5d974ed9 start + 1
14 ??? 0x000000000000000a 0x0 + 10

Exact steps for others to reproduce the error

  1. Make a new default file.
  2. Delete the Cube
  3. Add->Grease Pencil->Monkey
  4. Save as test.blend
  5. Copy test.blend onto a remote machine
  6. Make sure the machine is at the login prompt (showing the username password boxes).
  7. ssh into the remote machine
  8. command line render one frame from test.blend something like:
    Blender -b /test.blend -s 1 -e 1 -a
**System Information** Operating system: Darwin-19.5.0-x86_64-i386-64bit 64 Bits Graphics card: AMD Radeon Pro 5500M OpenGL Engine ATI Technologies Inc. 4.1 ATI-3.9.15 **Blender Version** Broken: version: 2.83.1, branch: master, commit date: 2020-06-25 09:47, hash: `8289fc688b` Worked: (newest version of Blender that worked as expected) **Short description of error** Our render farm of 70 iMacs has been running for 3 years through the 2.7x series up till 2.81a. When we switched to 2.83 last week it started crashing consistently when rendering Grease Pencil strokes. The crash occurs when using Blender to do command line rendering via an SSH session on a machine without the user physically logged in. (Crashes on Mac and Linux) Command Line Rendering on my own machine works fine. Command Line Rendering on a remote machine via SSH works fine if I'm also logged into that machine. But as soon as I log out of the machine so that the SSH session is the only active user on the machine, then the error shows up. I tested this on 2.81a and the error (below) shows up there too, but in 2.81a it doesn't also lead to the Segmentation Fault that crashes Blender. It's only in 2.83 (and 2.83.1) that the error is followed by the Seg Fault 11 **_RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL. Writing: /var/folders/jk/7b488ncn6c13t515bnt6q_8w68xcj1/T/test.crash.txt Segmentation fault: 11** on Linux the error message is slightly different, but still a crash: Unable to open a display Aborted (core dumped) Contents of test.crash.txt (from the Mac crash) # Blender 2.83.1, Commit date: 2020-06-25 09:47, Hash 8289fc688b3e # backtrace 0 Blender 0x00000001079eb9d7 BLI_system_backtrace + 55 1 Blender 0x000000010159ddb8 sig_handle_crash + 392 2 libsystem_platform.dylib 0x00007fff5db5fb3d _sigtramp + 29 3 ??? 0x00007f8594802010 0x0 + 140211698802704 4 Blender 0x0000000101a39da2 DRW_opengl_context_create + 66 5 Blender 0x00000001018f47d5 WM_init_opengl + 37 6 Blender 0x0000000101a374ff DRW_render_gpencil + 127 7 Blender 0x0000000105de5ef4 RE_engine_render + 1156 8 Blender 0x0000000105df06d3 do_render_all_options + 387 9 Blender 0x0000000105df2a14 RE_RenderAnim + 2260 10 Blender 0x000000010159c9dd arg_handle_render_animation + 141 11 Blender 0x000000010797880d BLI_argsParse + 173 12 Blender 0x000000010159a497 main + 855 13 libdyld.dylib 0x00007fff5d974ed9 start + 1 14 ??? 0x000000000000000a 0x0 + 10 **Exact steps for others to reproduce the error** 1) Make a new default file. 2) Delete the Cube 3) Add->Grease Pencil->Monkey 4) Save as test.blend 5) Copy test.blend onto a remote machine 6) Make sure the machine is at the login prompt (showing the username password boxes). 7) ssh into the remote machine 8) command line render one frame from test.blend something like: Blender -b /test.blend -s 1 -e 1 -a
Author
Member

Added subscriber: @DanielHoughton

Added subscriber: @DanielHoughton

Added subscribers: @fclem, @brecht, @antoniov

Added subscribers: @fclem, @brecht, @antoniov

@fclem @brecht Thoughts?

@fclem @brecht Thoughts?
Member

Added subscriber: @Jeroen-Bakker

Added subscriber: @Jeroen-Bakker
Member

Probably there isn't an active OpenGL context to perform the rendering in. This is normal for Windows and Linux doing OpenGL renders. Monitor needs to be connected and context needs to be there (eg user needs to be logged in). This seems like a known limitation for render farm rendering, but strange that the report says it used to work for 2.81. I am not familiar how Mac handles OpenGL contexts.

Probably there isn't an active OpenGL context to perform the rendering in. This is normal for Windows and Linux doing OpenGL renders. Monitor needs to be connected and context needs to be there (eg user needs to be logged in). This seems like a known limitation for render farm rendering, but strange that the report says it used to work for 2.81. I am not familiar how Mac handles OpenGL contexts.

I don't think the report says it works in 2.81, just that it doesn't crash.

It would be good to ensure we don't crash and print a more helpful error message that headless rendering is not supported.

I don't think the report says it works in 2.81, just that it doesn't crash. It would be good to ensure we don't crash and print a more helpful error message that headless rendering is not supported.
Author
Member

I checked this morning and found that the iMac, when running 2.81a reported the error, but was able to render the Grease Pencil Monkey Object.

The command:
./Blender.app/Contents/MacOS/Blender -b ~/test.blend -s 1 -e 1 -o /tmp/ -a

The error:
_RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.

And somehow it manages to render the grease pencil object:
0001.png

I also tested on the headless Linux box but 2.81a failed just as 2.83 did.
The Render Farm is on iMacs in computer labs across campus, so maybe they aren't entirely headless since they all have built in monitors?

I checked this morning and found that the iMac, when running 2.81a reported the error, but was able to render the Grease Pencil Monkey Object. The command: ./Blender.app/Contents/MacOS/Blender -b ~/test.blend -s 1 -e 1 -o /tmp/ -a The error: _RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL. And somehow it manages to render the grease pencil object: ![0001.png](https://archive.blender.org/developer/F8655396/0001.png) I also tested on the headless Linux box but 2.81a failed just as 2.83 did. The Render Farm is on iMacs in computer labs across campus, so maybe they aren't entirely headless since they all have built in monitors?
Member

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk
Member

Changed status from 'Needs Triage' to: 'Needs Developer To Reproduce'

Changed status from 'Needs Triage' to: 'Needs Developer To Reproduce'
Member

Dont think there is much to do from the triaging side here, so would kindly ask the corresponding modules to proceed instead.

Dont think there is much to do from the triaging side here, so would kindly ask the corresponding modules to proceed instead.
Philipp Oeser removed the
Interest
Grease Pencil
label 2023-02-09 15:19:53 +01:00
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
5 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#78449
No description provided.