From 2e1356c6f3375c1610916ada84b5ebae33adb80c Mon Sep 17 00:00:00 2001 From: JoshuaMoelans <60878493+JoshuaMoelans@users.noreply.github.com> Date: Tue, 25 Mar 2025 12:09:03 +0100 Subject: [PATCH 1/3] add crashpad-wait-for-upload option --- docs/platforms/native/common/configuration/options.mdx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/platforms/native/common/configuration/options.mdx b/docs/platforms/native/common/configuration/options.mdx index a65f186e391ba7..d3fc493fdf7851 100644 --- a/docs/platforms/native/common/configuration/options.mdx +++ b/docs/platforms/native/common/configuration/options.mdx @@ -60,6 +60,12 @@ This variable controls the total amount of breadcrumbs that should be captured. + + +Whether Crashpad should delay application shutdown until the upload of the crash report in the `crashpad_handler` is complete. This is useful for deployment in `Docker` or `systemd`, where the life cycle of additional processes is bound by the application life cycle. + + + ## Hooks These options can be used to hook the SDK in various ways to customize the reporting of events. From 99b53ba8e840c834cad0e4516ef63d1bd8db3b0f Mon Sep 17 00:00:00 2001 From: JoshuaMoelans <60878493+JoshuaMoelans@users.noreply.github.com> Date: Tue, 25 Mar 2025 12:38:45 +0100 Subject: [PATCH 2/3] edit backend tradeoffs for crashpad --- .../native/advanced-usage/backend-tradeoffs/index.mdx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/platforms/native/advanced-usage/backend-tradeoffs/index.mdx b/docs/platforms/native/advanced-usage/backend-tradeoffs/index.mdx index 396a1d23fec9df..e429c6376811f4 100644 --- a/docs/platforms/native/advanced-usage/backend-tradeoffs/index.mdx +++ b/docs/platforms/native/advanced-usage/backend-tradeoffs/index.mdx @@ -32,12 +32,13 @@ Sentry decided on `crashpad` as the default on all platforms because there are a * you cannot package or deploy an additional executable (the `crashpad_handler`) * you cannot allow a secondary process to connect via `ptrace` to your application (AWS Lambda, Flatpak-, Snap-Sandboxes) * IPC between your process and the `crashpad_handler` is inhibited by security settings or not available in your deployment target -* your deployment scenario cannot wait for the `crashpad_handler` to finish its work before a shutdown-after-crash (systemd, Docker) * you want to distribute your application via the macOS App Store * you want to define crash hooks on macOS because there, error handling happens entirely in the `crashpad_handler`, whereas on Linux and Windows, at least the initial handling happens in your process, after which `crashpad_handler` takes over and snapshots the process to send a crash report In the above cases, if you cannot loosen the requirements of your environment, you have to choose an in-process backend (meaning either `breakpad` or `inproc`). +When your deployment scenario should wait for the `crashpad_handler` to finish its work before a shutdown-after-crash (systemd, Docker), you can enable the option `crashpad_wait_for_upload` to delay application shutdown until the upload of the crash report is completed. + ### How do I decide between `breakpad` or `inproc`? Both backends are comparable in how they differ from `crashpad`. However, there are also considerable differences between the two: From 12eab9119a10caad690c0e28d2b497a3c478d1ba Mon Sep 17 00:00:00 2001 From: JoshuaMoelans <60878493+JoshuaMoelans@users.noreply.github.com> Date: Tue, 25 Mar 2025 14:08:01 +0100 Subject: [PATCH 3/3] apply suggestion Co-authored-by: Mischan Toosarani-Hausberger --- .../platforms/native/advanced-usage/backend-tradeoffs/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/platforms/native/advanced-usage/backend-tradeoffs/index.mdx b/docs/platforms/native/advanced-usage/backend-tradeoffs/index.mdx index e429c6376811f4..6ff84149d6beea 100644 --- a/docs/platforms/native/advanced-usage/backend-tradeoffs/index.mdx +++ b/docs/platforms/native/advanced-usage/backend-tradeoffs/index.mdx @@ -37,7 +37,7 @@ Sentry decided on `crashpad` as the default on all platforms because there are a In the above cases, if you cannot loosen the requirements of your environment, you have to choose an in-process backend (meaning either `breakpad` or `inproc`). -When your deployment scenario should wait for the `crashpad_handler` to finish its work before a shutdown-after-crash (systemd, Docker), you can enable the option `crashpad_wait_for_upload` to delay application shutdown until the upload of the crash report is completed. +When your deployment scenario should wait for the `crashpad_handler` to finish its work before a shutdown-after-crash (systemd, Docker), you can enable the option [`crashpad_wait_for_upload`](/platforms/native/configuration/options/#crashpad-wait-for-upload) to delay application shutdown until the upload of the crash report is completed. ### How do I decide between `breakpad` or `inproc`?