Skip to content

asLib/pvlist: fix AssertionError on ALLOW rule containing a capture group#220

Open
jacquelinegarrahan wants to merge 1 commit into
epics-base:masterfrom
jacquelinegarrahan:fix/pvlist-allow-capture-groups
Open

asLib/pvlist: fix AssertionError on ALLOW rule containing a capture group#220
jacquelinegarrahan wants to merge 1 commit into
epics-base:masterfrom
jacquelinegarrahan:fix/pvlist-allow-capture-groups

Conversation

@jacquelinegarrahan

Copy link
Copy Markdown

The ALLOW branch advanced ngroups by 1 (for the wrapper group that
_re_join adds) but, unlike the ALIAS branch, never added the pattern's own
capture-group count C.groups. The final invariant
assert self._allow_pat.groups+1==ngroups then failed for any ALLOW pattern
with a capture group (e.g. .*(foo|bar).* ALLOW), aborting the whole pvlist
load and taking the gateway down via readnproc -> sys.exit(1). It also left
the per-rule group indices in _allow_groups misaligned for subsequent rules.

Mirror the ALIAS branch by adding ngroups += C.groups.

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

…roup

The ALLOW branch advanced `ngroups` by 1 (for the wrapper group that
_re_join adds) but, unlike the ALIAS branch, never added the pattern's own
capture-group count `C.groups`. The final invariant
`assert self._allow_pat.groups+1==ngroups` then failed for any ALLOW pattern
with a capture group (e.g. `.*(foo|bar).* ALLOW`), aborting the whole pvlist
load and taking the gateway down via readnproc -> sys.exit(1). It also left
the per-rule group indices in `_allow_groups` misaligned for subsequent rules.

Mirror the ALIAS branch by adding `ngroups += C.groups`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.

1 participant