Design for popup after crash #128621

Open
opened 2024-10-05 05:52:39 +02:00 by Alaska · 8 comments
Member

In a recent triaging meeting the idea of a window poping up after Blender crashing was proposed.

The window should inform users that:

  • Blender has crash.
  • Where the crash log can be found.
  • How/where to make a bug report.

This would be the most useful on Windows, but we may want to investigate adding this to Linux and macOS. It's lower priority on Linux and macOS because the crash log on Linux is useless most of the time, and macOS has a built in crash popup that shares the crash log.

Here is a mockup of the popup:

Mockup


Why do we want this feature?

My interpretation is that we want this feature to:

  • Help users find crash logs.
  • Encourage users to make bug reports after a crash (as they're one of the most disruptive bugs).

If anyone from the triaging team has anything else to add here, then please do so.


Questions:

  • Is this feasible?
    • According to @LazyDodo, adding a popup when Blender crashs on Windows should be easy. Other features (E.g. Adding a button to open a file explorer that goes straight to the crash log file) may be more difficult.
  • Do we want this feature?
    • From the perspective of the triaging team, yes. But since there's now a pop up for every crash, that can be annoying for developers (We could enable it with a build flag that's only enabled in release builds?). And it may be annoying for some users.
    • Discussion with others (Blender admins? User interface module?) on "do we want this" should be had before proceeding with the implementation.

Extra note:

LazyDodo shared useful information for anyone that wanted to implement a quick mockup:

If you want a quick proof of concept, you can just chuck a quick MessageBox into sig_handle_crash_backtrace it's in source\creator\creator_signals.cc
actually make that sig_handle_crash as it knows the filename of the crash dump

In a recent triaging meeting the idea of a window poping up after Blender crashing was proposed. The window should inform users that: - Blender has crash. - Where the crash log can be found. - How/where to make a bug report. This would be the most useful on Windows, but we may want to investigate adding this to Linux and macOS. It's lower priority on Linux and macOS because the crash log on Linux is useless most of the time, and macOS has a built in crash popup that shares the crash log. <details> <summary>Here is a mockup of the popup:</summary> ![Mockup](/attachments/9ed56c31-b08d-4906-a2cc-970b8d1f0c53) </details> --- Why do we want this feature? My interpretation is that we want this feature to: - Help users find crash logs. - Encourage users to make bug reports after a crash (as they're one of the most disruptive bugs). If anyone from the triaging team has anything else to add here, then please do so. --- Questions: - Is this feasible? - According to @LazyDodo, adding a popup when Blender crashs on Windows should be easy. Other features (E.g. Adding a button to open a file explorer that goes straight to the crash log file) may be more difficult. - Do we want this feature? - From the perspective of the triaging team, yes. But since there's now a pop up for every crash, that can be annoying for developers (We could enable it with a build flag that's only enabled in release builds?). And it may be annoying for some users. - Discussion with others (Blender admins? User interface module?) on "do we want this" should be had before proceeding with the implementation. --- Extra note: LazyDodo shared useful information for anyone that wanted to implement a quick mockup: > If you want a quick proof of concept, you can just chuck a quick MessageBox into sig_handle_crash_backtrace it's in source\creator\creator_signals.cc > actually make that sig_handle_crash as it knows the filename of the crash dump
Alaska added the
Module
Triaging
Type
Design
labels 2024-10-05 05:52:39 +02:00
Alaska added this to the Module: Triaging project 2024-10-05 05:52:40 +02:00
Author
Member

Here's a just a few extra things.

  • If one of the main goals of this change is to help users find crash logs, then this can also be done by adding a button to Blender like Help -> Show Crash Logs
  • To help users find crash logs, can we shift temporary files into %TEMP%/Blender instead of just %TEMP%?
    • Could we go further and break it up into %TEMP%/Blender/Logs/, %TEMP%/Blender/Autosaves/, etc?
Here's a just a few extra things. - If one of the main goals of this change is to help users find crash logs, then this can also be done by adding a button to Blender like `Help -> Show Crash Logs` - To help users find crash logs, can we shift temporary files into `%TEMP%/Blender` instead of just `%TEMP%`? - Could we go further and break it up into `%TEMP%/Blender/Logs/`, `%TEMP%/Blender/Autosaves/`, etc?

Another thing to consider, maybe a button to open the autosaves directory? (same as going File > Recover > Auto Save)

Another thing to consider, maybe a button to open the autosaves directory? (same as going File > Recover > Auto Save)
Member

Other features (E.g. Adding a button to open a file explorer that goes straight to the crash log file) may be more difficult.

I may have miscommunicated that ,adding a basic popup is easy (for windows, all bets are off for the other platforms) no doubt about that, opening explorer with the crash file selected may be possible but i'd (or anyone else really) would have to take a look, taking a look isn't inherently difficult, it just takes a little bit of time. (I'm actually sure it's possible, Visual Studio does it, i just don't know how... i likely spend more time replying here than it would take to google up how to do it)

with the requirements i've seen sofar, i'd still rate it currently as a "good first issue" style work item

> Other features (E.g. Adding a button to open a file explorer that goes straight to the crash log file) may be more difficult. I may have miscommunicated that ,adding a basic popup is easy (for windows, all bets are off for the other platforms) no doubt about that, opening explorer with the crash file selected may be possible but i'd (or anyone else really) would have to take a look, taking a look isn't inherently difficult, it just takes a little bit of time. (I'm actually sure it's possible, Visual Studio does it, i just don't know how... i likely spend more time replying here than it would take to google up how to do it) with the requirements i've seen sofar, i'd still rate it currently as a "good first issue" style work item

I have thought about this a bit more, and now I am not sure, whether this would be necessary. It is possibly good idea to have such feature by hand though.

Usual scenario is, that bug is submitted saying "I've got a crash" with latest release version. In this case I don't really care about latest release (unless LTS) anyway, so I instruct to download alpha and check with debug_log.cmd file, which does copy crash log, such that it is accessible easily.

Another point against this feature may be that it could be annoying.

As far as motivating users to report crashes, approach with sentry sounds more appropriate (I assume that there is bit more info and interactivity when crash occurs).

I have thought about this a bit more, and now I am not sure, whether this would be necessary. It is possibly good idea to have such feature by hand though. Usual scenario is, that bug is submitted saying "I've got a crash" with latest release version. In this case I don't really care about latest release (unless LTS) anyway, so I instruct to download alpha and check with debug_log.cmd file, which does copy crash log, such that it is accessible easily. Another point against this feature may be that it could be annoying. As far as motivating users to report crashes, approach with sentry sounds more appropriate (I assume that there is bit more info and interactivity when crash occurs).
Member

it's whatever you want it to be, the client side will be the same as what chrome uses, which in their case is completely silent.

it's whatever you want it to be, the client side will be the same as what chrome uses, which in their case is completely silent.

I second @Alaska's suggestion.

On several Discord servers I am on, many (new) Blender users ask for help about their Blender issues.

  • Most of them have no clue why Blender crashed (whether it be because of Blender itself, an add-on or a hardware issue).
  • Most of them don't check (before installing Blender) if their hardware meets the minimum Blender requirements.
  • Most of them don't how to generate log files (even though the blender_debug_log.cmd script is available in the Blender installation folder; most of them don't even know this script exists at all).

For the popup, I suggest that it contains:

  • a link that points to the Making Good Bug Reports page (advising the user to read it first).
  • a button to open a new bug report in the web browser.
  • a button to open the folder that contains the log files in the File Explorer.
  • this tip: Keep your graphics card drivers up-to-date, it often solves problems. Before posting your bug report, please update your GPU drivers and check if the issue still happens. Please read this page.

But since there's now a pop up for every crash, that can be annoying for developers (We could enable it with a build flag that's only enabled in release builds?).

If it is possible to enable this popup in the Preferences thanks to a checkbox (enabled by default but only for Stable Releases), then I vote for.

I second @Alaska's suggestion. On several Discord servers I am on, many (new) Blender users ask for help about their Blender issues. - Most of them have no clue why Blender crashed (whether it be because of Blender itself, an add-on or a hardware issue). - Most of them don't check (before installing Blender) if their hardware meets the minimum [Blender requirements](https://www.blender.org/download/requirements/). - Most of them don't how to generate log files (even though the `blender_debug_log.cmd` script is available in the Blender installation folder; most of them don't even know this script exists at all). For the popup, I suggest that it contains: - a link that points to the [Making Good Bug Reports](https://developer.blender.org/docs/handbook/bug_reports/making_good_bug_reports/) page (advising the user to read it first). - a button to open a [new bug report](https://projects.blender.org/blender/blender/issues/new?template=.gitea%2fissue_template%2fbug.yaml) in the web browser. - a button to open the folder that contains the log files in the File Explorer. - this tip: *Keep your graphics card drivers up-to-date, it often solves problems. Before posting your bug report, please update your GPU drivers and check if the issue still happens. Please read this [page](https://docs.blender.org/manual/en/latest/troubleshooting/gpu/index.html)*. > But since there's now a pop up for every crash, that can be annoying for developers (We could enable it with a build flag that's only enabled in release builds?). If it is possible to enable this popup in the Preferences thanks to a checkbox (enabled by default but only for Stable Releases), then I vote for.
image

I don't know if I'm doing something unsafe, but I just copied and edited the same popup solution used for unsupported GPUs.
For this I called the popup in the same function that prints crash details to the console.

From testing, each button works perfectly, and Bug Report can even be prefilled (I just don't know how to attach a file to it).
The popup does not interfere with the debugging process, as the debugger pauses before reaching that code.
I don't think the popup is much more annoying than Blender simply closing, but for sure the user will be annoyed to have to forcibly click "Close" without being able to save their work.
My suggestion would be to create a button "Try Recover" to give hope and avoid making users even more angry.
(One thing that bothered me a little is that you can't select the text and copy it. So you can't copy the directory shown).

Regarding the addition of reporting instructions in the popup, I would prefer that links and tips on how to make a bug report be included in the bug report itself rather than in the popup. This avoids filling the popup with too much text.

<img width="404" alt="image" src="attachments/80659504-259d-4fae-a0e8-0aca4dbd4617"> I don't know if I'm doing something unsafe, but I just copied and edited the same popup solution used for unsupported GPUs. For this I called the popup in the same function that prints crash details to the console. From testing, each button works perfectly, and Bug Report can even be prefilled (I just don't know how to attach a file to it). The popup does not interfere with the debugging process, as the debugger pauses before reaching that code. I don't think the popup is much more annoying than Blender simply closing, but for sure the user will be annoyed to have to forcibly click "Close" without being able to save their work. My suggestion would be to create a button "Try Recover" to give hope and avoid making users even more angry. (One thing that bothered me a little is that you can't select the text and copy it. So you can't copy the directory shown). Regarding the addition of reporting instructions in the popup, I would prefer that links and tips on how to make a bug report be included in the bug report itself rather than in the popup. This avoids filling the popup with too much text.

I like the idea to allow the user to Recover the blend file he/she was working on before the crash.
I suggest to use radio buttons instead of buttons, this way, depending on what the user chooses, the popup can be closed by clicking the OK button.

Here is a mock-up:

Blender-has-crashed-popup_mock-up2

As you can see on the image above, I have added an option to give the user the choice to launch the blender_debug_log.cmd script, I think it makes sense to include it in this popup. Rare are the Blender users who know that this script even exists (they don't often browse their Blender installation folder, where this script lies). This script should be made more accessible, IMO.

The blue "page" link would point to https://developer.blender.org/docs/handbook/bug_reports/making_good_bug_reports/ and the "more info" link would lead to https://docs.blender.org/manual/en/latest/troubleshooting/crash.html

I like the idea to allow the user to Recover the blend file he/she was working on before the crash. I suggest to use radio buttons instead of buttons, this way, depending on what the user chooses, the popup can be closed by clicking the OK button. Here is a mock-up: ![Blender-has-crashed-popup_mock-up2](/attachments/7e624d72-e8d5-4a04-a378-d5b8b4518a20) As you can see on the image above, I have added an option to give the user the choice to launch the `blender_debug_log.cmd` script, I think it makes sense to include it in this popup. Rare are the Blender users who know that this script even exists (they don't often browse their Blender installation folder, where this script lies). This script should be made more accessible, IMO. The blue "page" link would point to https://developer.blender.org/docs/handbook/bug_reports/making_good_bug_reports/ and the "more info" link would lead to https://docs.blender.org/manual/en/latest/troubleshooting/crash.html
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset System
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Code Documentation
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
FBX
Interest
Freestyle
Interest
Geometry Nodes
Interest
glTF
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 & 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
Viewport & EEVEE
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Asset Browser Project
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
Asset System
Module
Core
Module
Development Management
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Module
Viewport & EEVEE
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Severity
High
Severity
Low
Severity
Normal
Severity
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 Assignees
6 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#128621
No description provided.