Repository navigation
Add timeout check during Matches expression eval - #12832
gh-worker-dd-mergequeue-cf854d[bot] merged 4 commits into
Conversation
|
Hi! 👋 Thanks for your pull request! 🎉 To help us review it, please make sure to:
If you need help, please check our contributing guidelines. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7e7d696fe8
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
In CPU timeout mode, per-character CPU-time queries can make ordinary linear regex matches exhaust the 50 ms evaluation budget and suppress log-probe snapshots.
🤖 Bits Code Review · Commit 7e7d696
This comment has been minimized.
This comment has been minimized.
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
Debugger benchmarksParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 9 metrics, 6 unstable metrics. See unchanged results
Request duration reports for reportsgantt
title reports - request duration [CI 0.99] : candidate=None, baseline=None
dateFormat X
axisFormat %s
section baseline
noprobe (360.589 µs) : 312, 410
. : milestone, 361,
basic (328.958 µs) : 323, 335
. : milestone, 329,
loop (8.116 ms) : 8044, 8188
. : milestone, 8116,
section candidate
noprobe (350.329 µs) : 314, 386
. : milestone, 350,
basic (328.857 µs) : 323, 335
. : milestone, 329,
loop (8.099 ms) : 8036, 8162
. : milestone, 8099,
|
dudikeleti
left a comment
There was a problem hiding this comment.
LGTM, two nits:
-
If the regex fails to compile in the constructor, does that throw and fail the probe instead of returning an evaluation error?
-
Did you consider 1024 char check instead of 256?
it fails at deserialization from the json coming from RC so it will fail the whole probe definition back to RC. which makes sense here if the regex is not valid.
no, but testing around that, show me that I can push to 4096 to amortize the cost of the check |
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
Build pipeline has failing jobs for 29189fa:
What to do next?
DetailsSince those jobs are not marked as being allowed to fail, the pipeline will most likely fail. |
In case of very expensive regex matching (like a backtracking one) timeout is not evaluated and only at the end of the evaluation. Using a CharSequence wrapper we can interleave a timeout check while accessing char through CharSequence::charAt(). regex expression are also pre-compiled while before they was compiled for each evaluation.
e537d6e to
c8bc037
Compare
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
|
What Does This Do
In case of very expensive regex matching (like a backtracking one) timeout is not evaluated and only at the end of the evaluation. Using a
CharSequencewrapper we can interleave a timeout check while accessing char throughCharSequence::charAt(). regex expressions are also pre-compiled while before they was compiledfor each evaluation.
Motivation
Additional Notes
Contributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issueUse
solvesinstead, and assign the PR milestone to the issueJira ticket: DEBUG-6247