Skip to content

Conversation

@dd-oleksii
Copy link
Member

What does this PR do?

Fix a memory corruption bug in flag_metadata.

Additional Notes

Str type has small string optimization, whereas short strings are stored directly in the structure bytes instead of on heap. This means that taking a reference to an allocation_key string was pointing to an str structure which was stored on stack at that time and was moved out when result was returned from the structure. When trying to print flag_metadata.allocationKey, it was printing garbage bytes from stack.

This PR stores result on heap first (Box) and pins it for extra measure, to make sure it's not moved. This allows us to create stable pointers to allocation_key.

How to test the change?

Example was expanded to print flag metadata, so verified that it was corrupted before / fixed after the change.

@dd-oleksii dd-oleksii requested review from a team as code owners November 24, 2025 20:56
@dd-oleksii dd-oleksii changed the title FFL-1450: fix memory corruption in flag_metadata FFL-1450 fix memory corruption in flag_metadata Nov 24, 2025
@pr-commenter
Copy link

pr-commenter bot commented Nov 24, 2025

Benchmarks

Comparison

Benchmark execution time: 2025-11-24 21:01:13

Comparing candidate commit 067fd56 in PR branch oleksii/FFL-1450-fix-memory-corruption with baseline commit 970baa6 in branch main.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 55 metrics, 2 unstable metrics.

Candidate

Candidate benchmark details

Group 1

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 067fd56 1764017176 oleksii/FFL-1450-fix-memory-corruption
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/2597 execution_time 6.227ms 6.410ms ± 0.040ms 6.418ms ± 0.015ms 6.431ms 6.450ms 6.473ms 6.574ms 2.43% -1.372 5.313 0.63% 0.003ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
receiver_entry_point/report/2597 execution_time [6.405ms; 6.416ms] or [-0.087%; +0.087%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 067fd56 1764017176 oleksii/FFL-1450-fix-memory-corruption
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.066ns 192.391ns ± 2.215ns 192.091ns ± 1.320ns 193.214ns 195.902ns 199.896ns 207.261ns 7.90% 2.540 11.115 1.15% 0.157ns 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.084ns; 192.698ns] or [-0.160%; +0.160%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 067fd56 1764017176 oleksii/FFL-1450-fix-memory-corruption
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 533.883µs 534.666µs ± 0.769µs 534.554µs ± 0.230µs 534.853µs 535.334µs 535.565µs 543.891µs 1.75% 8.934 102.505 0.14% 0.054µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1838603.691op/s 1870329.061op/s ± 2656.745op/s 1870717.879op/s ± 803.603op/s 1871382.830op/s 1872291.257op/s 1872734.797op/s 1873069.980op/s 0.13% -8.828 100.748 0.14% 187.860op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 380.424µs 381.153µs ± 0.351µs 381.146µs ± 0.232µs 381.378µs 381.751µs 381.992µs 382.049µs 0.24% 0.176 -0.395 0.09% 0.025µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2617465.299op/s 2623618.896op/s ± 2413.329op/s 2623664.127op/s ± 1597.671op/s 2625278.130op/s 2627330.443op/s 2628481.802op/s 2628643.529op/s 0.19% -0.172 -0.398 0.09% 170.648op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 194.896µs 195.225µs ± 0.184µs 195.207µs ± 0.131µs 195.352µs 195.549µs 195.711µs 195.738µs 0.27% 0.537 -0.284 0.09% 0.013µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5108873.454op/s 5122299.629op/s ± 4831.490op/s 5122761.244op/s ± 3447.362op/s 5126046.447op/s 5129070.944op/s 5129774.675op/s 5130948.558op/s 0.16% -0.533 -0.290 0.09% 341.638op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.812µs 37.067µs ± 0.080µs 37.061µs ± 0.054µs 37.123µs 37.202µs 37.256µs 37.271µs 0.57% 0.042 -0.046 0.22% 0.006µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26830490.731op/s 26978005.132op/s ± 58530.852op/s 26982478.805op/s ± 39644.975op/s 27017891.932op/s 27070705.137op/s 27106583.530op/s 27164883.260op/s 0.68% -0.030 -0.040 0.22% 4138.756op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 44.883µs 45.080µs ± 0.183µs 45.061µs ± 0.123µs 45.195µs 45.274µs 45.357µs 46.791µs 3.84% 4.128 36.431 0.40% 0.013µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21371545.023op/s 22183119.165op/s ± 88455.807op/s 22192292.772op/s ± 60910.864op/s 22251576.447op/s 22277053.477op/s 22278000.119op/s 22280294.021op/s 0.40% -3.877 33.362 0.40% 6254.770op/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 [534.560µs; 534.773µs] or [-0.020%; +0.020%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1869960.862op/s; 1870697.260op/s] or [-0.020%; +0.020%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [381.105µs; 381.202µs] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2623284.431op/s; 2623953.360op/s] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [195.199µs; 195.251µs] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5121630.031op/s; 5122969.227op/s] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [37.056µs; 37.079µs] or [-0.030%; +0.030%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [26969893.319op/s; 26986116.945op/s] or [-0.030%; +0.030%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [45.055µs; 45.105µs] or [-0.056%; +0.056%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [22170860.041op/s; 22195378.290op/s] or [-0.055%; +0.055%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 067fd56 1764017176 oleksii/FFL-1450-fix-memory-corruption
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 87.203µs 87.517µs ± 0.190µs 87.488µs ± 0.061µs 87.558µs 87.711µs 88.144µs 89.395µs 2.18% 5.719 49.521 0.22% 0.013µ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 [87.491µs; 87.543µs] or [-0.030%; +0.030%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 067fd56 1764017176 oleksii/FFL-1450-fix-memory-corruption
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 10.607ms 10.637ms ± 0.015ms 10.636ms ± 0.008ms 10.644ms 10.659ms 10.675ms 10.714ms 0.74% 1.319 4.886 0.14% 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 [10.635ms; 10.639ms] or [-0.020%; +0.020%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 067fd56 1764017176 oleksii/FFL-1450-fix-memory-corruption
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 205.001µs 205.651µs ± 0.288µs 205.636µs ± 0.194µs 205.837µs 206.115µs 206.304µs 207.334µs 0.83% 1.121 4.622 0.14% 0.020µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 4823125.557op/s 4862606.545op/s ± 6803.214op/s 4862967.491op/s ± 4592.563op/s 4867344.793op/s 4871945.489op/s 4874187.640op/s 4878033.989op/s 0.31% -1.099 4.481 0.14% 481.060op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.223µs 18.383µs ± 0.139µs 18.353µs ± 0.052µs 18.420µs 18.570µs 18.783µs 19.669µs 7.17% 4.571 36.344 0.75% 0.010µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 50841729.695op/s 54401565.052op/s ± 396821.916op/s 54488264.796op/s ± 155015.046op/s 54616662.810op/s 54788554.181op/s 54867988.966op/s 54877148.971op/s 0.71% -4.201 31.640 0.73% 28059.547op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.772µs 10.905µs ± 0.048µs 10.904µs ± 0.032µs 10.936µs 10.979µs 11.003µs 11.038µs 1.22% -0.100 -0.072 0.44% 0.003µs 1 200
normalization/normalize_name/normalize_name/good throughput 90600100.218op/s 91704799.008op/s ± 401692.450op/s 91707006.111op/s ± 271031.300op/s 91975752.707op/s 92385043.107op/s 92672007.355op/s 92833404.030op/s 1.23% 0.125 -0.069 0.44% 28403.946op/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 [205.611µs; 205.691µs] or [-0.019%; +0.019%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [4861663.685op/s; 4863549.405op/s] or [-0.019%; +0.019%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.364µs; 18.402µs] or [-0.104%; +0.104%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [54346569.351op/s; 54456560.753op/s] or [-0.101%; +0.101%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.898µs; 10.911µs] or [-0.061%; +0.061%] None None None
normalization/normalize_name/normalize_name/good throughput [91649128.297op/s; 91760469.718op/s] or [-0.061%; +0.061%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 067fd56 1764017176 oleksii/FFL-1450-fix-memory-corruption
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 1.211µs 3.228µs ± 1.410µs 3.019µs ± 0.028µs 3.044µs 3.685µs 13.786µs 14.874µs 392.64% 7.296 54.698 43.59% 0.100µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [3.032µs; 3.423µs] or [-6.056%; +6.056%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 067fd56 1764017176 oleksii/FFL-1450-fix-memory-corruption
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 62.926ms 63.617ms ± 2.515ms 63.191ms ± 0.148ms 63.613ms 63.847ms 82.900ms 85.004ms 34.52% 7.847 60.539 3.94% 0.178ms 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 [63.268ms; 63.965ms] or [-0.548%; +0.548%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 067fd56 1764017176 oleksii/FFL-1450-fix-memory-corruption
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.825ms 14.899ms ± 0.036ms 14.893ms ± 0.017ms 14.913ms 14.978ms 15.020ms 15.071ms 1.20% 1.610 4.208 0.24% 0.003ms 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.894ms; 14.904ms] or [-0.033%; +0.033%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 067fd56 1764017176 oleksii/FFL-1450-fix-memory-corruption
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 34.036µs 34.483µs ± 0.768µs 34.136µs ± 0.034µs 34.201µs 36.056µs 36.216µs 38.084µs 11.57% 1.903 2.501 2.22% 0.054µ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 [34.376µs; 34.589µs] or [-0.309%; +0.309%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 067fd56 1764017176 oleksii/FFL-1450-fix-memory-corruption
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.899µs 3.914µs ± 0.002µs 3.914µs ± 0.001µs 3.915µs 3.917µs 3.919µs 3.920µs 0.15% -1.863 16.304 0.05% 0.000µs 1 200
credit_card/is_card_number/ throughput 255078431.876op/s 255461131.920op/s ± 132832.265op/s 255464886.352op/s ± 70344.979op/s 255535398.049op/s 255619168.382op/s 255658349.724op/s 256484000.869op/s 0.40% 1.886 16.502 0.05% 9392.660op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 77.900µs 79.098µs ± 0.672µs 79.038µs ± 0.492µs 79.593µs 80.258µs 80.755µs 80.907µs 2.36% 0.356 -0.451 0.85% 0.047µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12359816.627op/s 12643401.217op/s ± 107059.780op/s 12652095.680op/s ± 78601.476op/s 12725030.128op/s 12806878.655op/s 12827194.308op/s 12837007.095op/s 1.46% -0.320 -0.496 0.84% 7570.270op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 71.480µs 71.901µs ± 0.338µs 71.840µs ± 0.109µs 71.938µs 72.558µs 73.150µs 74.036µs 3.06% 2.700 10.376 0.47% 0.024µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13506937.356op/s 13908380.828op/s ± 64513.195op/s 13919855.048op/s ± 21187.513op/s 13941975.243op/s 13979981.159op/s 13985116.559op/s 13989971.988op/s 0.50% -2.630 9.846 0.46% 4561.772op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.899µs 3.915µs ± 0.003µs 3.915µs ± 0.002µs 3.917µs 3.919µs 3.921µs 3.923µs 0.21% -0.806 7.647 0.06% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 254907875.216op/s 255417297.995op/s ± 164159.340op/s 255432441.728op/s ± 106851.447op/s 255519082.062op/s 255614755.068op/s 255686002.422op/s 256472180.454op/s 0.41% 0.824 7.755 0.06% 11607.818op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 68.248µs 68.497µs ± 0.336µs 68.356µs ± 0.061µs 68.573µs 69.074µs 69.764µs 70.740µs 3.49% 3.187 13.257 0.49% 0.024µs 1 200
credit_card/is_card_number/378282246310005 throughput 14136321.584op/s 14599555.261op/s ± 70478.114op/s 14629332.544op/s ± 12974.205op/s 14639439.015op/s 14645803.432op/s 14650442.456op/s 14652495.496op/s 0.16% -3.114 12.597 0.48% 4983.555op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 45.534µs 45.761µs ± 0.070µs 45.765µs ± 0.046µs 45.810µs 45.880µs 45.908µs 45.935µs 0.37% -0.187 0.074 0.15% 0.005µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 21769933.356op/s 21852518.458op/s ± 33520.812op/s 21850902.121op/s ± 21982.864op/s 21875742.540op/s 21910353.848op/s 21927232.914op/s 21961815.923op/s 0.51% 0.196 0.081 0.15% 2370.279op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.532µs 6.619µs ± 0.021µs 6.620µs ± 0.015µs 6.635µs 6.642µs 6.649µs 6.710µs 1.37% -0.233 3.485 0.31% 0.001µs 1 200
credit_card/is_card_number/x371413321323331 throughput 149023849.434op/s 151092333.093op/s ± 475340.159op/s 151067853.475op/s ± 330942.646op/s 151385845.057op/s 151811829.489op/s 152400771.081op/s 153098265.393op/s 1.34% 0.284 3.460 0.31% 33611.625op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.898µs 3.916µs ± 0.003µs 3.916µs ± 0.001µs 3.917µs 3.920µs 3.922µs 3.923µs 0.18% -1.281 9.900 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254908841.644op/s 255374208.278op/s ± 174497.503op/s 255373683.744op/s ± 95500.627op/s 255470305.428op/s 255630265.368op/s 255691519.140op/s 256568025.938op/s 0.47% 1.302 10.050 0.07% 12338.837op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 65.613µs 65.749µs ± 0.061µs 65.749µs ± 0.047µs 65.796µs 65.846µs 65.879µs 65.905µs 0.24% 0.029 -0.595 0.09% 0.004µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15173412.769op/s 15209346.206op/s ± 14171.884op/s 15209356.797op/s ± 10809.625op/s 15220163.015op/s 15232841.221op/s 15238244.394op/s 15240924.652op/s 0.21% -0.025 -0.596 0.09% 1002.104op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 53.373µs 53.433µs ± 0.033µs 53.426µs ± 0.020µs 53.451µs 53.495µs 53.519µs 53.556µs 0.24% 0.828 0.602 0.06% 0.002µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 18671971.890op/s 18715067.720op/s ± 11567.061op/s 18717549.196op/s ± 7131.712op/s 18723669.218op/s 18731304.347op/s 18733866.809op/s 18736240.573op/s 0.10% -0.824 0.593 0.06% 817.915op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.898µs 3.916µs ± 0.003µs 3.915µs ± 0.002µs 3.917µs 3.920µs 3.923µs 3.926µs 0.28% -0.591 6.846 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254699728.566op/s 255387853.022op/s ± 188028.081op/s 255406346.848op/s ± 109222.847op/s 255505657.980op/s 255624388.366op/s 255709841.077op/s 256551093.446op/s 0.45% 0.610 6.945 0.07% 13295.593op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 50.150µs 50.224µs ± 0.035µs 50.226µs ± 0.025µs 50.248µs 50.285µs 50.308µs 50.335µs 0.22% 0.267 -0.331 0.07% 0.003µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 19867031.942op/s 19910641.213op/s ± 14068.179op/s 19910166.325op/s ± 9985.632op/s 19921432.365op/s 19932743.038op/s 19936353.212op/s 19940066.143op/s 0.15% -0.264 -0.336 0.07% 994.771op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 45.560µs 45.755µs ± 0.074µs 45.761µs ± 0.051µs 45.806µs 45.869µs 45.903µs 45.939µs 0.39% -0.206 -0.227 0.16% 0.005µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 21768191.424op/s 21855721.461op/s ± 35233.541op/s 21852548.284op/s ± 24261.209op/s 21879393.444op/s 21916532.958op/s 21946602.360op/s 21949247.527op/s 0.44% 0.214 -0.222 0.16% 2491.388op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.543µs 6.615µs ± 0.020µs 6.618µs ± 0.016µs 6.634µs 6.642µs 6.647µs 6.649µs 0.47% -0.737 0.256 0.31% 0.001µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 150402308.780op/s 151165451.253op/s ± 466507.224op/s 151110311.232op/s ± 363514.289op/s 151473194.505op/s 151991040.314op/s 152456869.802op/s 152826631.066op/s 1.14% 0.753 0.299 0.31% 32987.042op/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.914µs; 3.915µs] or [-0.007%; +0.007%] None None None
credit_card/is_card_number/ throughput [255442722.646op/s; 255479541.194op/s] or [-0.007%; +0.007%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [79.005µs; 79.191µs] or [-0.118%; +0.118%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12628563.761op/s; 12658238.672op/s] or [-0.117%; +0.117%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [71.854µs; 71.947µs] or [-0.065%; +0.065%] None None None
credit_card/is_card_number/ 378282246310005 throughput [13899439.919op/s; 13917321.736op/s] or [-0.064%; +0.064%] None None None
credit_card/is_card_number/37828224631 execution_time [3.915µs; 3.916µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/37828224631 throughput [255394547.089op/s; 255440048.901op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/378282246310005 execution_time [68.450µs; 68.543µs] or [-0.068%; +0.068%] None None None
credit_card/is_card_number/378282246310005 throughput [14589787.672op/s; 14609322.850op/s] or [-0.067%; +0.067%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [45.752µs; 45.771µs] or [-0.021%; +0.021%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [21847872.796op/s; 21857164.120op/s] or [-0.021%; +0.021%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.616µs; 6.621µs] or [-0.044%; +0.044%] None None None
credit_card/is_card_number/x371413321323331 throughput [151026455.518op/s; 151158210.667op/s] or [-0.044%; +0.044%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.915µs; 3.916µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ throughput [255350024.603op/s; 255398391.954op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [65.741µs; 65.758µs] or [-0.013%; +0.013%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15207382.119op/s; 15211310.293op/s] or [-0.013%; +0.013%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [53.428µs; 53.437µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [18713464.636op/s; 18716670.803op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.915µs; 3.916µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255361794.138op/s; 255413911.905op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [50.220µs; 50.229µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [19908691.498op/s; 19912590.927op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [45.745µs; 45.765µs] or [-0.022%; +0.022%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [21850838.431op/s; 21860604.491op/s] or [-0.022%; +0.022%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.613µs; 6.618µs] or [-0.043%; +0.043%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [151100797.839op/s; 151230104.668op/s] or [-0.043%; +0.043%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 067fd56 1764017176 oleksii/FFL-1450-fix-memory-corruption
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.807µs 146.527µs ± 1.703µs 146.262µs ± 0.566µs 146.882µs 148.142µs 152.637µs 162.216µs 10.91% 5.170 38.396 1.16% 0.120µ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.291µs; 146.763µs] or [-0.161%; +0.161%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 067fd56 1764017176 oleksii/FFL-1450-fix-memory-corruption
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.030µs 5.119µs ± 0.048µs 5.122µs ± 0.039µs 5.150µs 5.203µs 5.210µs 5.213µs 1.78% 0.233 -0.917 0.93% 0.003µ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.112µs; 5.125µs] or [-0.129%; +0.129%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 067fd56 1764017176 oleksii/FFL-1450-fix-memory-corruption
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 159.294µs 159.954µs ± 0.375µs 159.892µs ± 0.138µs 160.049µs 160.507µs 161.324µs 162.921µs 1.89% 3.638 22.186 0.23% 0.027µ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 [159.902µs; 160.006µs] or [-0.032%; +0.032%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 067fd56 1764017176 oleksii/FFL-1450-fix-memory-corruption
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 243.918ns 255.030ns ± 15.493ns 247.999ns ± 2.609ns 255.751ns 295.074ns 298.581ns 305.863ns 23.33% 1.841 1.986 6.06% 1.095ns 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.883ns; 257.177ns] or [-0.842%; +0.842%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 067fd56 1764017176 oleksii/FFL-1450-fix-memory-corruption
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.284µs 2.376µs ± 0.022µs 2.379µs ± 0.004µs 2.383µs 2.400µs 2.405µs 2.409µs 1.29% -2.518 6.706 0.93% 0.002µ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.373µs; 2.379µs] or [-0.129%; +0.129%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 067fd56 1764017176 oleksii/FFL-1450-fix-memory-corruption
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 17.672µs 25.547µs ± 9.629µs 18.090µs ± 0.165µs 33.228µs 42.504µs 50.930µs 73.681µs 307.30% 1.277 2.456 37.60% 0.681µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [24.212µs; 26.881µs] or [-5.224%; +5.224%] None None None

Baseline

Omitted due to size.

@codecov-commenter
Copy link

Codecov Report

❌ Patch coverage is 0% with 21 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.20%. Comparing base (8e56742) to head (067fd56).
⚠️ Report is 4 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1368   +/-   ##
=======================================
  Coverage   71.19%   71.20%           
=======================================
  Files         392      392           
  Lines       62677    62751   +74     
=======================================
+ Hits        44626    44684   +58     
- Misses      18051    18067   +16     
Components Coverage Δ
libdd-crashtracker 59.91% <ø> (+0.01%) ⬆️
libdd-crashtracker-ffi 15.31% <ø> (ø)
libdd-alloc 98.73% <ø> (ø)
libdd-data-pipeline 86.00% <ø> (ø)
libdd-data-pipeline-ffi 77.63% <ø> (ø)
libdd-common 80.93% <ø> (ø)
libdd-common-ffi 73.90% <ø> (ø)
libdd-telemetry 59.98% <ø> (-0.04%) ⬇️
libdd-telemetry-ffi 21.24% <ø> (ø)
libdd-dogstatsd-client 83.75% <ø> (ø)
datadog-ipc 82.71% <ø> (ø)
libdd-profiling 79.75% <ø> (+0.07%) ⬆️
libdd-profiling-ffi 62.13% <ø> (ø)
datadog-sidecar 36.98% <ø> (ø)
datdog-sidecar-ffi 16.40% <ø> (ø)
spawn-worker 55.18% <ø> (ø)
libdd-tinybytes 92.44% <ø> (ø)
libdd-trace-normalization 98.24% <ø> (ø)
datadog-trace-obfuscation 94.17% <ø> (ø)
libdd-trace-protobuf 59.65% <ø> (ø)
libdd-trace-utils 90.25% <ø> (ø)
datadog-tracer-flare 62.06% <ø> (ø)
libdd-log 75.57% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@dd-octo-sts
Copy link

dd-octo-sts bot commented Nov 25, 2025

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 85.96 MB 85.96 MB +0% (+4.84 KB) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 7.38 MB 7.38 MB 0% (0 B) 👌
aarch64-apple-darwin
Artifact Baseline Commit Change
/aarch64-apple-darwin/lib/libdatadog_profiling.a 57.99 MB 58.00 MB +0% (+4.75 KB) 👌
/aarch64-apple-darwin/lib/libdatadog_profiling.dylib 8.43 MB 8.43 MB +0% (+288 B) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 99.70 MB 99.70 MB +0% (+7.21 KB) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 9.53 MB 9.53 MB +0% (+344 B) 👌
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 19.57 MB 19.57 MB +0% (+512 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 69.82 KB 69.82 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 138.53 MB 138.55 MB +.01% (+16.00 KB) 🔍
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 735.58 MB 735.67 MB +.01% (+92.36 KB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 6.34 MB 6.34 MB +.01% (+1.00 KB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 69.82 KB 69.82 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 19.67 MB 19.68 MB +.03% (+8.00 KB) 🔍
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 38.64 MB 38.64 MB +.01% (+4.00 KB) 🔍
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 16.70 MB 16.70 MB +0% (+512 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 70.90 KB 70.90 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 141.11 MB 141.09 MB --.01% (-16.00 KB) 💪
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 724.31 MB 724.40 MB +.01% (+91.87 KB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 4.87 MB 4.87 MB +.01% (+512 B) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 70.90 KB 70.90 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 20.90 MB 20.90 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 36.39 MB 36.39 MB +.01% (+3.87 KB) 🔍
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 74.32 MB 74.32 MB +0% (+5.09 KB) 👌
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 8.85 MB 8.85 MB 0% (0 B) 👌
x86_64-apple-darwin
Artifact Baseline Commit Change
/x86_64-apple-darwin/lib/libdatadog_profiling.a 59.35 MB 59.36 MB +0% (+4.60 KB) 👌
/x86_64-apple-darwin/lib/libdatadog_profiling.dylib 9.47 MB 9.47 MB +0% (+296 B) 👌
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 93.93 MB 93.93 MB +0% (+5.60 KB) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 10.28 MB 10.28 MB +0% (+304 B) 👌

.map(|(k, v)| {
KeyValue {
// SAFETY: the borrow is valid as long as string allocation is
// alive. ResolutionDetails will get moved into heap but this does not
Copy link
Contributor

@sameerank sameerank Nov 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok I think I understand. ResolutionDetails moves, and since Assignment is owned directly by the struct due to inner: Result<Assignment, EvaluationError>, Assignment moves too. So,

let details = ResolutionDetails::new(Ok(value));  // details created
// BorrowedStr pointers in details are valid
let moved_details = details;  // move happens
// now BorrowedStr pointers in moved_details are invalid

Thanks for updating the comments! They're helpful

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants