Don't generate crash reports on the Dev channel (#35915)
We only want minidumps to be generated on actual release builds. Now we avoid spawning crash handler processes for dev builds. To test minidumping you can still set the `ZED_GENERATE_MINIDUMPS` env var which force-enable the feature. Release Notes: - N/A
This commit is contained in:
parent
7862c0c945
commit
021681d456
3 changed files with 14 additions and 1 deletions
1
Cargo.lock
generated
1
Cargo.lock
generated
|
@ -4014,6 +4014,7 @@ dependencies = [
|
|||
"log",
|
||||
"minidumper",
|
||||
"paths",
|
||||
"release_channel",
|
||||
"smol",
|
||||
"workspace-hack",
|
||||
]
|
||||
|
|
|
@ -10,6 +10,7 @@ crash-handler.workspace = true
|
|||
log.workspace = true
|
||||
minidumper.workspace = true
|
||||
paths.workspace = true
|
||||
release_channel.workspace = true
|
||||
smol.workspace = true
|
||||
workspace-hack.workspace = true
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
use crash_handler::CrashHandler;
|
||||
use log::info;
|
||||
use minidumper::{Client, LoopAction, MinidumpBinary};
|
||||
use release_channel::{RELEASE_CHANNEL, ReleaseChannel};
|
||||
|
||||
use std::{
|
||||
env,
|
||||
|
@ -9,7 +10,7 @@ use std::{
|
|||
path::{Path, PathBuf},
|
||||
process::{self, Command},
|
||||
sync::{
|
||||
OnceLock,
|
||||
LazyLock, OnceLock,
|
||||
atomic::{AtomicBool, Ordering},
|
||||
},
|
||||
thread,
|
||||
|
@ -22,7 +23,14 @@ pub static CRASH_HANDLER: AtomicBool = AtomicBool::new(false);
|
|||
pub static REQUESTED_MINIDUMP: AtomicBool = AtomicBool::new(false);
|
||||
const CRASH_HANDLER_TIMEOUT: Duration = Duration::from_secs(60);
|
||||
|
||||
pub static GENERATE_MINIDUMPS: LazyLock<bool> = LazyLock::new(|| {
|
||||
*RELEASE_CHANNEL != ReleaseChannel::Dev || env::var("ZED_GENERATE_MINIDUMPS").is_ok()
|
||||
});
|
||||
|
||||
pub async fn init(id: String) {
|
||||
if !*GENERATE_MINIDUMPS {
|
||||
return;
|
||||
}
|
||||
let exe = env::current_exe().expect("unable to find ourselves");
|
||||
let zed_pid = process::id();
|
||||
// TODO: we should be able to get away with using 1 crash-handler process per machine,
|
||||
|
@ -138,6 +146,9 @@ impl minidumper::ServerHandler for CrashServer {
|
|||
}
|
||||
|
||||
pub fn handle_panic() {
|
||||
if !*GENERATE_MINIDUMPS {
|
||||
return;
|
||||
}
|
||||
// wait 500ms for the crash handler process to start up
|
||||
// if it's still not there just write panic info and no minidump
|
||||
let retry_frequency = Duration::from_millis(100);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue