Skip to content

Fix log pattern end anchoring - #1338

Open
hakman wants to merge 1 commit into
kubernetes:masterfrom
hakman:fix-log-pattern-anchoring
Open

Fix log pattern end anchoring#1338
hakman wants to merge 1 commit into
kubernetes:masterfrom
hakman:fix-log-pattern-anchoring

Conversation

@hakman

@hakman hakman commented Aug 23, 2026

Copy link
Copy Markdown
Member

CompilePattern previously appended \z directly to each configured expression. Because | has lower precedence, oom-kill|Out of memory\z anchored only the second branch. The first branch could match a retained line again after every subsequent push until that line was overwritten, repeating temporary events and log-counter results.

Group the expression before adding the end anchor:

  • Before: oom-kill|Out of memory\z
  • After: (?:oom-kill|Out of memory)\z

This makes every branch honor the end-of-buffer contract and removes the extra parse-tree comparison. Shipped configurations are unaffected because they already group their alternatives. Custom patterns with an unparenthesized top-level | intentionally change behavior; use (?:oom-kill|Out of memory).* when either phrase should match anywhere before the end of the newest line.

/cc @DigitalVeer

`CompilePattern` previously appended `\z` directly to each configured expression. With a top-level alternative such as `oom-kill|Out of memory`, the first branch could match an older line that was still in the buffer.

Wrap the expression in a non-capturing group before adding the end anchor:

- **Before:** `oom-kill|Out of memory\z`
- **After:** `(?:oom-kill|Out of memory)\z`

This makes every branch honor the documented end-of-buffer contract, lets last-line classification inspect a single parse tree, and adds regression coverage for stale matches.
@kubernetes-prow
kubernetes-prow Bot requested a review from DigitalVeer August 23, 2026 05:17
@kubernetes-prow kubernetes-prow Bot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Aug 23, 2026
@kubernetes-prow

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: hakman

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@kubernetes-prow kubernetes-prow Bot added approved Indicates a PR has been approved by an approver from all required OWNERS files. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Aug 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant