When flushing delayed span bugs, write to the ICE dump file even if it doesn't exist

Fix #113881.
This commit is contained in:
Esteban Küber 2023-07-27 12:32:22 +00:00
parent c06b2b9117
commit 656213cc83
2 changed files with 3 additions and 3 deletions

View File

@ -1673,11 +1673,11 @@ impl HandlerInner {
let backtrace = std::env::var_os("RUST_BACKTRACE").map_or(true, |x| &x != "0"); let backtrace = std::env::var_os("RUST_BACKTRACE").map_or(true, |x| &x != "0");
for bug in bugs { for bug in bugs {
if let Some(file) = self.ice_file.as_ref() if let Some(file) = self.ice_file.as_ref()
&& let Ok(mut out) = std::fs::File::options().append(true).open(file) && let Ok(mut out) = std::fs::File::options().create(true).append(true).open(file)
{ {
let _ = write!( let _ = write!(
&mut out, &mut out,
"\n\ndelayed span bug: {}\n{}", "delayed span bug: {}\n{}\n",
bug.inner.styled_message().iter().filter_map(|(msg, _)| msg.as_str()).collect::<String>(), bug.inner.styled_message().iter().filter_map(|(msg, _)| msg.as_str()).collect::<String>(),
&bug.note &bug.note
); );

View File

@ -300,7 +300,7 @@ pub fn panic_hook_with_disk_dump(info: &PanicInfo<'_>, path: Option<&crate::path
}; };
if let Some(path) = path if let Some(path) = path
&& let Ok(mut out) = crate::fs::File::options().create(true).write(true).open(&path) && let Ok(mut out) = crate::fs::File::options().create(true).append(true).open(&path)
{ {
write(&mut out, BacktraceStyle::full()); write(&mut out, BacktraceStyle::full());
} }