fix(crashtracking): guard sigchld and sigpipe during crashtracker signal handler execution#1771
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Clippy Allow Annotation ReportComparing clippy allow annotations between branches:
Summary by Rule
Annotation Counts by File
Annotation Stats by Crate
About This ReportThis report tracks Clippy allow annotations for specific rules, showing how they've changed in this PR. Decreasing the number of these annotations generally improves code quality. |
| let _ = fs::remove_file(&detector_log_path); | ||
|
|
||
| let config = CrashTestConfig::new( | ||
| BuildProfile::Debug, |
There was a problem hiding this comment.
The reason I do this
SIGCHLD -> SIG_IGN -> kernel auto-reaps collector child -> waitpid returns ECHILD -> reap_child_non_blocking returns unexpected result -> debug_assert_eq! at process_handle.rs:33 fails -> format! allocates to build the panic message -> preload detector catches malloc.
We should be running this test in release mode anyways
afaa9e2 to
007d923
Compare
|
✅ Tests 🎉 All green!❄️ No new flaky tests detected 🎯 Code Coverage (details) 🔗 Commit SHA: 7e7908c | Docs | Datadog PR Page | Was this helpful? React with 👍/👎 or give us feedback! |
007d923 to
7b3be99
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #1771 +/- ##
==========================================
+ Coverage 70.46% 70.49% +0.02%
==========================================
Files 410 411 +1
Lines 62138 62220 +82
==========================================
+ Hits 43786 43861 +75
- Misses 18352 18359 +7
🚀 New features to boost your workflow:
|
BenchmarksComparisonBenchmark execution time: 2026-03-24 18:05:11 Comparing candidate commit 7e7908c in PR branch Found 0 performance improvements and 1 performance regressions! Performance is the same for 60 metrics, 0 unstable metrics.
|
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 7e7908c | 1774374409 | gyuheon0h/PROF-14080-saguard-ct |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| redis/obfuscate_redis_string | execution_time | 33.215µs | 33.848µs ± 1.147µs | 33.333µs ± 0.035µs | 33.372µs | 36.282µs | 36.363µs | 37.812µs | 13.44% | 1.750 | 1.205 | 3.38% | 0.081µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| redis/obfuscate_redis_string | execution_time | [33.689µs; 34.007µs] or [-0.470%; +0.470%] | None | None | None |
Group 2
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 7e7908c | 1774374409 | gyuheon0h/PROF-14080-saguard-ct |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| sql/obfuscate_sql_string | execution_time | 89.188µs | 89.379µs ± 0.256µs | 89.355µs ± 0.051µs | 89.407µs | 89.535µs | 89.585µs | 92.788µs | 3.84% | 11.861 | 155.128 | 0.29% | 0.018µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| sql/obfuscate_sql_string | execution_time | [89.343µs; 89.414µs] or [-0.040%; +0.040%] | None | None | None |
Group 3
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 7e7908c | 1774374409 | gyuheon0h/PROF-14080-saguard-ct |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | execution_time | 495.198µs | 496.297µs ± 0.816µs | 496.229µs ± 0.304µs | 496.516µs | 496.878µs | 497.690µs | 505.909µs | 1.95% | 8.328 | 94.846 | 0.16% | 0.058µs | 1 | 200 |
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | throughput | 1976638.982op/s | 2014928.555op/s ± 3267.025op/s | 2015199.418op/s ± 1235.084op/s | 2016439.697op/s | 2017722.023op/s | 2018343.574op/s | 2019395.395op/s | 0.21% | -8.194 | 92.708 | 0.16% | 231.014op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | execution_time | 370.680µs | 371.518µs ± 0.312µs | 371.508µs ± 0.186µs | 371.695µs | 372.049µs | 372.285µs | 372.406µs | 0.24% | 0.247 | 0.196 | 0.08% | 0.022µs | 1 | 200 |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | throughput | 2685239.809op/s | 2691662.249op/s ± 2261.945op/s | 2691733.966op/s ± 1344.144op/s | 2692999.913op/s | 2695381.259op/s | 2696379.579op/s | 2697745.635op/s | 0.22% | -0.241 | 0.193 | 0.08% | 159.944op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | execution_time | 167.843µs | 168.203µs ± 0.171µs | 168.179µs ± 0.105µs | 168.299µs | 168.502µs | 168.725µs | 168.826µs | 0.38% | 0.830 | 1.179 | 0.10% | 0.012µs | 1 | 200 |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | throughput | 5923267.241op/s | 5945192.954op/s ± 6033.373op/s | 5946029.550op/s ± 3704.913op/s | 5949193.473op/s | 5953783.973op/s | 5955665.666op/s | 5957947.972op/s | 0.20% | -0.823 | 1.160 | 0.10% | 426.624op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/[empty string] | execution_time | 36.821µs | 37.005µs ± 0.112µs | 36.997µs ± 0.094µs | 37.102µs | 37.194µs | 37.235µs | 37.266µs | 0.73% | 0.223 | -0.991 | 0.30% | 0.008µs | 1 | 200 |
| normalization/normalize_service/normalize_service/[empty string] | throughput | 26834077.028op/s | 27023829.352op/s ± 81785.849op/s | 27029201.087op/s ± 68658.027op/s | 27092679.314op/s | 27140230.648op/s | 27156351.118op/s | 27158600.535op/s | 0.48% | -0.214 | -0.998 | 0.30% | 5783.133op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/test_ASCII | execution_time | 46.256µs | 46.378µs ± 0.102µs | 46.368µs ± 0.036µs | 46.404µs | 46.484µs | 46.534µs | 47.573µs | 2.60% | 8.148 | 92.438 | 0.22% | 0.007µs | 1 | 200 |
| normalization/normalize_service/normalize_service/test_ASCII | throughput | 21020488.670op/s | 21562132.897op/s ± 46593.351op/s | 21566486.543op/s ± 16800.652op/s | 21583818.248op/s | 21604718.298op/s | 21609571.502op/s | 21618905.300op/s | 0.24% | -7.965 | 89.560 | 0.22% | 3294.647op/s | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | execution_time | [496.184µs; 496.410µs] or [-0.023%; +0.023%] | None | None | None |
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | throughput | [2014475.777op/s; 2015381.333op/s] or [-0.022%; +0.022%] | None | None | None |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | execution_time | [371.475µs; 371.561µs] or [-0.012%; +0.012%] | None | None | None |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | throughput | [2691348.765op/s; 2691975.733op/s] or [-0.012%; +0.012%] | None | None | None |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | execution_time | [168.180µs; 168.227µs] or [-0.014%; +0.014%] | None | None | None |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | throughput | [5944356.786op/s; 5946029.121op/s] or [-0.014%; +0.014%] | None | None | None |
| normalization/normalize_service/normalize_service/[empty string] | execution_time | [36.989µs; 37.020µs] or [-0.042%; +0.042%] | None | None | None |
| normalization/normalize_service/normalize_service/[empty string] | throughput | [27012494.620op/s; 27035164.084op/s] or [-0.042%; +0.042%] | None | None | None |
| normalization/normalize_service/normalize_service/test_ASCII | execution_time | [46.364µs; 46.392µs] or [-0.030%; +0.030%] | None | None | None |
| normalization/normalize_service/normalize_service/test_ASCII | throughput | [21555675.507op/s; 21568590.287op/s] or [-0.030%; +0.030%] | None | None | None |
Group 4
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 7e7908c | 1774374409 | gyuheon0h/PROF-14080-saguard-ct |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| write only interface | execution_time | 5.446µs | 5.499µs ± 0.030µs | 5.496µs ± 0.022µs | 5.520µs | 5.547µs | 5.595µs | 5.613µs | 2.12% | 0.723 | 1.069 | 0.54% | 0.002µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| write only interface | execution_time | [5.495µs; 5.503µs] or [-0.075%; +0.075%] | None | None | None |
Group 5
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 7e7908c | 1774374409 | gyuheon0h/PROF-14080-saguard-ct |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| benching deserializing traces from msgpack to their internal representation | execution_time | 49.913ms | 50.297ms ± 1.051ms | 50.140ms ± 0.093ms | 50.253ms | 50.466ms | 58.512ms | 58.871ms | 17.41% | 7.654 | 58.188 | 2.09% | 0.074ms | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| benching deserializing traces from msgpack to their internal representation | execution_time | [50.151ms; 50.443ms] or [-0.290%; +0.290%] | None | None | None |
Group 6
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 7e7908c | 1774374409 | gyuheon0h/PROF-14080-saguard-ct |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| two way interface | execution_time | 13.758µs | 13.916µs ± 0.167µs | 13.884µs ± 0.070µs | 13.964µs | 14.110µs | 14.284µs | 15.703µs | 13.10% | 6.372 | 63.688 | 1.20% | 0.012µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| two way interface | execution_time | [13.892µs; 13.939µs] or [-0.166%; +0.166%] | None | None | None |
Group 7
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 7e7908c | 1774374409 | gyuheon0h/PROF-14080-saguard-ct |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| benching serializing traces from their internal representation to msgpack | execution_time | 14.138ms | 14.184ms ± 0.035ms | 14.176ms ± 0.011ms | 14.188ms | 14.267ms | 14.335ms | 14.389ms | 1.50% | 2.953 | 10.936 | 0.25% | 0.002ms | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| benching serializing traces from their internal representation to msgpack | execution_time | [14.179ms; 14.189ms] or [-0.034%; +0.034%] | None | None | None |
Group 8
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 7e7908c | 1774374409 | gyuheon0h/PROF-14080-saguard-ct |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| profile_add_sample_timestamped_x1000 | execution_time | 4.199ms | 4.203ms ± 0.008ms | 4.202ms ± 0.001ms | 4.204ms | 4.207ms | 4.209ms | 4.314ms | 2.66% | 12.109 | 158.436 | 0.20% | 0.001ms | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| profile_add_sample_timestamped_x1000 | execution_time | [4.202ms; 4.204ms] or [-0.027%; +0.027%] | None | None | None |
Group 9
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 7e7908c | 1774374409 | gyuheon0h/PROF-14080-saguard-ct |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| sdk_test_data/rules-based | execution_time | 144.384µs | 146.306µs ± 1.648µs | 146.065µs ± 0.494µs | 146.571µs | 148.095µs | 152.431µs | 162.288µs | 11.11% | 5.741 | 46.769 | 1.12% | 0.117µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| sdk_test_data/rules-based | execution_time | [146.078µs; 146.534µs] or [-0.156%; +0.156%] | None | None | None |
Group 10
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 7e7908c | 1774374409 | gyuheon0h/PROF-14080-saguard-ct |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ip_address/quantize_peer_ip_address_benchmark | execution_time | 5.007µs | 5.069µs ± 0.035µs | 5.078µs ± 0.027µs | 5.095µs | 5.119µs | 5.122µs | 5.125µs | 0.93% | -0.215 | -1.343 | 0.69% | 0.002µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| ip_address/quantize_peer_ip_address_benchmark | execution_time | [5.064µs; 5.074µs] or [-0.096%; +0.096%] | None | None | None |
Group 11
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 7e7908c | 1774374409 | gyuheon0h/PROF-14080-saguard-ct |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| profile_add_sample2_frames_x1000 | execution_time | 731.038µs | 732.776µs ± 0.675µs | 732.729µs ± 0.472µs | 733.240µs | 733.943µs | 734.285µs | 735.007µs | 0.31% | 0.321 | -0.014 | 0.09% | 0.048µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| profile_add_sample2_frames_x1000 | execution_time | [732.683µs; 732.870µs] or [-0.013%; +0.013%] | None | None | None |
Group 12
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 7e7908c | 1774374409 | gyuheon0h/PROF-14080-saguard-ct |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| profile_add_sample_frames_x1000 | execution_time | 4.148ms | 4.153ms ± 0.003ms | 4.153ms ± 0.001ms | 4.154ms | 4.156ms | 4.157ms | 4.181ms | 0.67% | 5.259 | 52.340 | 0.07% | 0.000ms | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| profile_add_sample_frames_x1000 | execution_time | [4.153ms; 4.153ms] or [-0.009%; +0.009%] | None | None | None |
Group 13
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 7e7908c | 1774374409 | gyuheon0h/PROF-14080-saguard-ct |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| tags/replace_trace_tags | execution_time | 2.392µs | 2.435µs ± 0.015µs | 2.436µs ± 0.010µs | 2.443µs | 2.464µs | 2.478µs | 2.484µs | 1.97% | 0.470 | 0.452 | 0.63% | 0.001µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| tags/replace_trace_tags | execution_time | [2.433µs; 2.438µs] or [-0.088%; +0.088%] | None | None | None |
Group 14
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 7e7908c | 1774374409 | gyuheon0h/PROF-14080-saguard-ct |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| credit_card/is_card_number/ | execution_time | 3.891µs | 3.912µs ± 0.003µs | 3.912µs ± 0.002µs | 3.913µs | 3.916µs | 3.917µs | 3.917µs | 0.14% | -2.115 | 15.392 | 0.07% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/ | throughput | 255270390.521op/s | 255645460.798op/s ± 173905.142op/s | 255618549.175op/s ± 102864.557op/s | 255760018.315op/s | 255888762.694op/s | 255908356.973op/s | 256977677.300op/s | 0.53% | 2.142 | 15.636 | 0.07% | 12296.951op/s | 1 | 200 |
| credit_card/is_card_number/ 3782-8224-6310-005 | execution_time | 80.173µs | 80.824µs ± 0.314µs | 80.776µs ± 0.209µs | 81.011µs | 81.333µs | 81.702µs | 82.183µs | 1.74% | 1.040 | 2.349 | 0.39% | 0.022µs | 1 | 200 |
| credit_card/is_card_number/ 3782-8224-6310-005 | throughput | 12167995.268op/s | 12372696.823op/s ± 47805.953op/s | 12379869.719op/s ± 32140.764op/s | 12407321.563op/s | 12437109.225op/s | 12446932.363op/s | 12472968.111op/s | 0.75% | -1.002 | 2.192 | 0.39% | 3380.391op/s | 1 | 200 |
| credit_card/is_card_number/ 378282246310005 | execution_time | 72.958µs | 73.614µs ± 0.340µs | 73.576µs ± 0.269µs | 73.875µs | 74.183µs | 74.406µs | 74.716µs | 1.55% | 0.411 | -0.349 | 0.46% | 0.024µs | 1 | 200 |
| credit_card/is_card_number/ 378282246310005 | throughput | 13384065.502op/s | 13584661.293op/s ± 62609.114op/s | 13591458.458op/s ± 49782.428op/s | 13633098.120op/s | 13670875.228op/s | 13700277.442op/s | 13706531.273op/s | 0.85% | -0.390 | -0.380 | 0.46% | 4427.133op/s | 1 | 200 |
| credit_card/is_card_number/37828224631 | execution_time | 3.894µs | 3.915µs ± 0.002µs | 3.915µs ± 0.001µs | 3.916µs | 3.918µs | 3.920µs | 3.920µs | 0.13% | -4.441 | 45.663 | 0.05% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/37828224631 | throughput | 255109679.197op/s | 255430751.303op/s ± 140357.894op/s | 255442660.151op/s ± 57490.250op/s | 255496798.456op/s | 255554419.325op/s | 255610337.254op/s | 256817907.563op/s | 0.54% | 4.487 | 46.209 | 0.05% | 9924.802op/s | 1 | 200 |
| credit_card/is_card_number/378282246310005 | execution_time | 69.986µs | 70.598µs ± 0.286µs | 70.591µs ± 0.211µs | 70.802µs | 71.109µs | 71.248µs | 71.380µs | 1.12% | 0.272 | -0.445 | 0.40% | 0.020µs | 1 | 200 |
| credit_card/is_card_number/378282246310005 | throughput | 14009455.988op/s | 14164961.665op/s ± 57278.321op/s | 14166031.992op/s ± 42252.380op/s | 14209922.092op/s | 14253869.244op/s | 14270288.459op/s | 14288592.129op/s | 0.87% | -0.254 | -0.460 | 0.40% | 4050.189op/s | 1 | 200 |
| credit_card/is_card_number/37828224631000521389798 | execution_time | 52.641µs | 52.847µs ± 0.082µs | 52.842µs ± 0.054µs | 52.904µs | 52.972µs | 53.102µs | 53.113µs | 0.51% | 0.466 | 0.752 | 0.15% | 0.006µs | 1 | 200 |
| credit_card/is_card_number/37828224631000521389798 | throughput | 18827656.612op/s | 18922517.889op/s ± 29247.448op/s | 18924208.795op/s ± 19204.290op/s | 18942515.055op/s | 18966602.659op/s | 18983277.384op/s | 18996742.812op/s | 0.38% | -0.454 | 0.732 | 0.15% | 2068.107op/s | 1 | 200 |
| credit_card/is_card_number/x371413321323331 | execution_time | 6.438µs | 6.444µs ± 0.004µs | 6.444µs ± 0.002µs | 6.446µs | 6.452µs | 6.457µs | 6.461µs | 0.27% | 1.228 | 1.885 | 0.06% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/x371413321323331 | throughput | 154779566.109op/s | 155173136.573op/s ± 94846.657op/s | 155193243.803op/s ± 50402.559op/s | 155240075.562op/s | 155289240.726op/s | 155317649.496op/s | 155339417.627op/s | 0.09% | -1.223 | 1.868 | 0.06% | 6706.671op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ | execution_time | 3.896µs | 3.913µs ± 0.003µs | 3.913µs ± 0.002µs | 3.915µs | 3.919µs | 3.921µs | 3.923µs | 0.26% | -0.179 | 5.171 | 0.08% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ | throughput | 254888892.566op/s | 255537957.742op/s ± 195125.509op/s | 255551052.072op/s ± 104957.569op/s | 255657848.421op/s | 255785221.241op/s | 255886965.603op/s | 256653184.261op/s | 0.43% | 0.195 | 5.241 | 0.08% | 13797.457op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | execution_time | 64.964µs | 65.160µs ± 0.132µs | 65.137µs ± 0.074µs | 65.215µs | 65.443µs | 65.570µs | 65.777µs | 0.98% | 1.619 | 3.930 | 0.20% | 0.009µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | throughput | 15202882.467op/s | 15346833.592op/s ± 31068.363op/s | 15352222.356op/s ± 17394.606op/s | 15368239.229op/s | 15384011.705op/s | 15391917.058op/s | 15393030.036op/s | 0.27% | -1.599 | 3.834 | 0.20% | 2196.865op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 378282246310005 | execution_time | 58.194µs | 58.379µs ± 0.114µs | 58.367µs ± 0.080µs | 58.452µs | 58.604µs | 58.701µs | 58.809µs | 0.76% | 0.869 | 0.750 | 0.19% | 0.008µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 378282246310005 | throughput | 17004339.567op/s | 17129390.600op/s ± 33392.354op/s | 17132850.363op/s ± 23463.721op/s | 17155443.026op/s | 17171948.421op/s | 17182100.547op/s | 17183927.872op/s | 0.30% | -0.857 | 0.716 | 0.19% | 2361.196op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631 | execution_time | 3.894µs | 3.913µs ± 0.003µs | 3.913µs ± 0.002µs | 3.915µs | 3.918µs | 3.920µs | 3.922µs | 0.24% | -0.728 | 6.265 | 0.08% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631 | throughput | 254975588.855op/s | 255551647.548op/s ± 204237.690op/s | 255584910.118op/s ± 122996.109op/s | 255683802.443op/s | 255800359.434op/s | 255871213.920op/s | 256824273.942op/s | 0.48% | 0.746 | 6.384 | 0.08% | 14441.786op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/378282246310005 | execution_time | 55.203µs | 55.548µs ± 0.180µs | 55.538µs ± 0.102µs | 55.632µs | 55.865µs | 56.026µs | 56.352µs | 1.47% | 0.918 | 2.008 | 0.32% | 0.013µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/378282246310005 | throughput | 17745472.086op/s | 18002606.746op/s ± 58192.433op/s | 18005604.717op/s ± 33175.648op/s | 18043569.189op/s | 18088060.355op/s | 18100532.719op/s | 18114875.936op/s | 0.61% | -0.888 | 1.897 | 0.32% | 4114.826op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | execution_time | 52.631µs | 52.827µs ± 0.074µs | 52.829µs ± 0.052µs | 52.877µs | 52.943µs | 52.977µs | 52.986µs | 0.30% | -0.069 | -0.568 | 0.14% | 0.005µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | throughput | 18872851.403op/s | 18929714.957op/s ± 26498.092op/s | 18928821.971op/s ± 18672.453op/s | 18948465.443op/s | 18972337.158op/s | 18986698.389op/s | 19000096.307op/s | 0.38% | 0.075 | -0.566 | 0.14% | 1873.698op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/x371413321323331 | execution_time | 6.430µs | 6.438µs ± 0.006µs | 6.437µs ± 0.003µs | 6.440µs | 6.449µs | 6.454µs | 6.463µs | 0.39% | 1.254 | 2.028 | 0.09% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/x371413321323331 | throughput | 154738292.639op/s | 155326004.794op/s ± 133080.850op/s | 155347678.930op/s ± 76785.748op/s | 155424199.548op/s | 155485193.467op/s | 155520681.097op/s | 155532622.667op/s | 0.12% | -1.248 | 2.003 | 0.09% | 9410.237op/s | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| credit_card/is_card_number/ | execution_time | [3.911µs; 3.912µs] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number/ | throughput | [255621359.218op/s; 255669562.378op/s] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number/ 3782-8224-6310-005 | execution_time | [80.781µs; 80.868µs] or [-0.054%; +0.054%] | None | None | None |
| credit_card/is_card_number/ 3782-8224-6310-005 | throughput | [12366071.378op/s; 12379322.268op/s] or [-0.054%; +0.054%] | None | None | None |
| credit_card/is_card_number/ 378282246310005 | execution_time | [73.567µs; 73.661µs] or [-0.064%; +0.064%] | None | None | None |
| credit_card/is_card_number/ 378282246310005 | throughput | [13575984.272op/s; 13593338.314op/s] or [-0.064%; +0.064%] | None | None | None |
| credit_card/is_card_number/37828224631 | execution_time | [3.915µs; 3.915µs] or [-0.008%; +0.008%] | None | None | None |
| credit_card/is_card_number/37828224631 | throughput | [255411299.049op/s; 255450203.557op/s] or [-0.008%; +0.008%] | None | None | None |
| credit_card/is_card_number/378282246310005 | execution_time | [70.558µs; 70.637µs] or [-0.056%; +0.056%] | None | None | None |
| credit_card/is_card_number/378282246310005 | throughput | [14157023.441op/s; 14172899.890op/s] or [-0.056%; +0.056%] | None | None | None |
| credit_card/is_card_number/37828224631000521389798 | execution_time | [52.836µs; 52.859µs] or [-0.021%; +0.021%] | None | None | None |
| credit_card/is_card_number/37828224631000521389798 | throughput | [18918464.474op/s; 18926571.304op/s] or [-0.021%; +0.021%] | None | None | None |
| credit_card/is_card_number/x371413321323331 | execution_time | [6.444µs; 6.445µs] or [-0.008%; +0.008%] | None | None | None |
| credit_card/is_card_number/x371413321323331 | throughput | [155159991.738op/s; 155186281.407op/s] or [-0.008%; +0.008%] | None | None | None |
| credit_card/is_card_number_no_luhn/ | execution_time | [3.913µs; 3.914µs] or [-0.011%; +0.011%] | None | None | None |
| credit_card/is_card_number_no_luhn/ | throughput | [255510915.224op/s; 255565000.261op/s] or [-0.011%; +0.011%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | execution_time | [65.142µs; 65.179µs] or [-0.028%; +0.028%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | throughput | [15342527.815op/s; 15351139.368op/s] or [-0.028%; +0.028%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 378282246310005 | execution_time | [58.364µs; 58.395µs] or [-0.027%; +0.027%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 378282246310005 | throughput | [17124762.741op/s; 17134018.459op/s] or [-0.027%; +0.027%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631 | execution_time | [3.913µs; 3.914µs] or [-0.011%; +0.011%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631 | throughput | [255523342.168op/s; 255579952.927op/s] or [-0.011%; +0.011%] | None | None | None |
| credit_card/is_card_number_no_luhn/378282246310005 | execution_time | [55.523µs; 55.573µs] or [-0.045%; +0.045%] | None | None | None |
| credit_card/is_card_number_no_luhn/378282246310005 | throughput | [17994541.835op/s; 18010671.658op/s] or [-0.045%; +0.045%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | execution_time | [52.817µs; 52.837µs] or [-0.019%; +0.019%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | throughput | [18926042.576op/s; 18933387.337op/s] or [-0.019%; +0.019%] | None | None | None |
| credit_card/is_card_number_no_luhn/x371413321323331 | execution_time | [6.437µs; 6.439µs] or [-0.012%; +0.012%] | None | None | None |
| credit_card/is_card_number_no_luhn/x371413321323331 | throughput | [155307561.068op/s; 155344448.520op/s] or [-0.012%; +0.012%] | None | None | None |
Group 15
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 7e7908c | 1774374409 | gyuheon0h/PROF-14080-saguard-ct |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| single_flag_killswitch/rules-based | execution_time | 190.028ns | 192.551ns ± 1.979ns | 192.260ns ± 1.256ns | 193.408ns | 196.696ns | 198.031ns | 199.323ns | 3.67% | 0.972 | 0.664 | 1.03% | 0.140ns | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| single_flag_killswitch/rules-based | execution_time | [192.277ns; 192.826ns] or [-0.142%; +0.142%] | None | None | None |
Group 16
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 7e7908c | 1774374409 | gyuheon0h/PROF-14080-saguard-ct |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| benching string interning on wordpress profile | execution_time | 161.109µs | 161.945µs ± 0.285µs | 161.923µs ± 0.152µs | 162.082µs | 162.360µs | 162.653µs | 163.760µs | 1.13% | 2.212 | 12.336 | 0.18% | 0.020µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| benching string interning on wordpress profile | execution_time | [161.906µs; 161.985µs] or [-0.024%; +0.024%] | None | None | None |
Group 17
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 7e7908c | 1774374409 | gyuheon0h/PROF-14080-saguard-ct |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| normalization/normalize_trace/test_trace | execution_time | 242.945ns | 254.519ns ± 12.269ns | 249.017ns ± 4.454ns | 257.289ns | 283.644ns | 287.890ns | 289.182ns | 16.13% | 1.404 | 0.932 | 4.81% | 0.868ns | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| normalization/normalize_trace/test_trace | execution_time | [252.818ns; 256.219ns] or [-0.668%; +0.668%] | None | None | None |
Group 18
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 7e7908c | 1774374409 | gyuheon0h/PROF-14080-saguard-ct |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | execution_time | 185.548µs | 186.188µs ± 0.517µs | 186.101µs ± 0.219µs | 186.312µs | 186.894µs | 188.121µs | 190.054µs | 2.12% | 3.538 | 18.753 | 0.28% | 0.037µs | 1 | 200 |
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | throughput | 5261663.859op/s | 5370953.034op/s ± 14757.303op/s | 5373435.281op/s ± 6322.594op/s | 5379798.473op/s | 5384332.438op/s | 5385309.599op/s | 5389430.841op/s | 0.30% | -3.470 | 18.087 | 0.27% | 1043.499op/s | 1 | 200 |
| normalization/normalize_name/normalize_name/bad-name | execution_time | 17.804µs | 17.879µs ± 0.033µs | 17.873µs ± 0.012µs | 17.890µs | 17.928µs | 17.958µs | 18.165µs | 1.63% | 3.751 | 28.225 | 0.18% | 0.002µs | 1 | 200 |
| normalization/normalize_name/normalize_name/bad-name | throughput | 55051405.985op/s | 55931785.532op/s ± 101853.991op/s | 55950842.263op/s ± 38223.401op/s | 55982349.096op/s | 56051340.397op/s | 56086247.228op/s | 56167577.620op/s | 0.39% | -3.663 | 27.233 | 0.18% | 7202.165op/s | 1 | 200 |
| normalization/normalize_name/normalize_name/good | execution_time | 10.522µs | 10.568µs ± 0.021µs | 10.563µs ± 0.013µs | 10.582µs | 10.603µs | 10.621µs | 10.649µs | 0.81% | 0.432 | 0.699 | 0.20% | 0.001µs | 1 | 200 |
| normalization/normalize_name/normalize_name/good | throughput | 93906338.821op/s | 94626759.135op/s ± 188803.707op/s | 94666106.860op/s ± 120159.849op/s | 94733966.673op/s | 94960356.068op/s | 95002656.508op/s | 95042413.584op/s | 0.40% | -0.417 | 0.669 | 0.20% | 13350.438op/s | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | execution_time | [186.117µs; 186.260µs] or [-0.038%; +0.038%] | None | None | None |
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | throughput | [5368907.814op/s; 5372998.255op/s] or [-0.038%; +0.038%] | None | None | None |
| normalization/normalize_name/normalize_name/bad-name | execution_time | [17.874µs; 17.884µs] or [-0.025%; +0.025%] | None | None | None |
| normalization/normalize_name/normalize_name/bad-name | throughput | [55917669.549op/s; 55945901.516op/s] or [-0.025%; +0.025%] | None | None | None |
| normalization/normalize_name/normalize_name/good | execution_time | [10.565µs; 10.571µs] or [-0.028%; +0.028%] | None | None | None |
| normalization/normalize_name/normalize_name/good | throughput | [94600592.757op/s; 94652925.513op/s] or [-0.028%; +0.028%] | None | None | None |
Group 19
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 7e7908c | 1774374409 | gyuheon0h/PROF-14080-saguard-ct |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| concentrator/add_spans_to_concentrator | execution_time | 12.991ms | 13.022ms ± 0.015ms | 13.020ms ± 0.010ms | 13.032ms | 13.046ms | 13.060ms | 13.089ms | 0.53% | 0.633 | 1.202 | 0.12% | 0.001ms | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| concentrator/add_spans_to_concentrator | execution_time | [13.020ms; 13.024ms] or [-0.016%; +0.016%] | None | None | None |
Group 20
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 7e7908c | 1774374409 | gyuheon0h/PROF-14080-saguard-ct |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| receiver_entry_point/report/2598 | execution_time | 3.593ms | 3.634ms ± 0.029ms | 3.625ms ± 0.013ms | 3.647ms | 3.679ms | 3.701ms | 3.875ms | 6.87% | 3.292 | 22.341 | 0.79% | 0.002ms | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| receiver_entry_point/report/2598 | execution_time | [3.630ms; 3.638ms] or [-0.110%; +0.110%] | None | None | None |
Baseline
Omitted due to size.
| nix::sys::signal::Signal::SIGCHLD, | ||
| nix::sys::signal::Signal::SIGPIPE, |
There was a problem hiding this comment.
are we sure those are the only signals to suppress?
There was a problem hiding this comment.
I believe so, because those are the only two signals the crash handler itself can cause:
SIGCHLD: handle_posix_signal_impl calls alt_fork() to spawn the collector child process and the receiver. When those children exit, the kernel delivers SIGCHLD to the parent.
SIGPIPE: The collector communicates over Unix socket pipes. If the receiver side closes early, writing to the pipe generates SIGPIPE.
The SaGuard's purpose isn't to block all signals but to prevent the crash handler from re-entering the application's signal handlers due to side effects of its own work
WDYT?
There was a problem hiding this comment.
For papertrail and context:
Suppressing SIGPIPE AND SIGCHLD was the previous behavior before this guard was accidentally removed.
I will investigate chaining SIGCHLD
Artifact Size Benchmark Reportaarch64-alpine-linux-musl
aarch64-unknown-linux-gnu
libdatadog-x64-windows
libdatadog-x86-windows
x86_64-alpine-linux-musl
x86_64-unknown-linux-gnu
|
fcdf081 to
7e7908c
Compare
…ndler (#1807) # What does this PR do? This PR fixes a regression where SaGuard suppressed `SIGCHLD `with `SIG_IGN`, which can alter child reaping behavior (`waitpid`/`ECHILD`) and break `sigchld_exec` crash-test flows Changes 1. Add per-signal suppression modes in `SaGuard` 2. Use split policy in crash handling 3. Loosen up restirctions in child cleanup in `ProcessHandle::finish` 4. serialize signal-global unit tests to avoid race condition modifying global state for saguard unit tests # Motivation Context: We were originally not blocking any signals. In [fix(crashtracking): guard sigchld and sigpipe during crashtracker signal handler execution](#1771), we started blocking sigchld and sigpipe. However, blocking sigchld causes deadlocks for the following test [test(crashtracking): skip sigchld_exec test on CentOS 7 deadlock](#1804) This change works because it prevents interference with the application's expected signal handling while still protecting the crash handler from re-entrant signals # Additional Notes # How to test the change? `cargo nextest run -p libdd-crashtracker --lib -- collector::saguard::single_threaded_tests` `cargo nextest run -p bin_tests test_crash_tracking_bin_sigchld_exec` Co-authored-by: gyuheon.oh <gyuheon.oh@datadoghq.com>

What does this PR do?
Guards SIGCHLD and SIGPIPE during crashtracker signal handler execution
Motivation
During execution of the signal handler, it cannot be guaranteed that the signal is handled without SA_NODEFER, thus it also cannot be guaranteed that signals like SIGCHLD and SIGPIPE will not be emitted during this handler as a result of the handler itself. Thus, we need to prevent the emission of signals we might create (and cannot be created during a signal handler except by our own execution) and defer any other signals. To put it another way, it is conceivable that the crash handling code will emit SIGCHLD or SIGPIPE, and instead of risking responding to those signals, it needs to suppress them.
Additional Notes
This was originally implemented in: Crashtracker receiver is spawned on crash
but subsequently removed.
How to test the change?
Unit tests for saguard.rs. Integration test will be in a following PR