Repository navigation
Description
Is there an existing issue for this?
- I have searched the existing issues
Current Behavior
With continued=true and a full-flow selector, AbstractShenyuPlugin takes the last rule in the list and invokes doExecute directly. It bypasses filterRule, including the rule enabled check. A disabled rule is therefore still executable.
Expected Behavior
Disabled rules must not execute. Preserve the intended full-flow selection semantics among eligible rules, and call the plugin's no-rule handler when no enabled rule remains. This issue does not prescribe changing whether full-flow rules evaluate conditions or changing their ordering.
Steps To Reproduce
- Enable a concrete test plugin extending AbstractShenyuPlugin.
- Add an enabled selector with type=FULL_FLOW (0), continued=true.
- Add one rule under it with enabled=false and any valid condition list.
- Execute a request using execute(...).block().
- Observed: doExecute receives the disabled rule. Expected: it must not execute that rule.
Reproduced result from the recording test plugin: full:disabled.
Anything else?
- Full-flow branch:
Lines 110 to 115 in 862f5e3
return handleRuleIfNull(pluginName, exchange, chain); } if (selectorData.getType() == SelectorTypeEnum.FULL_FLOW.getCode()) { //get last RuleData rule = rules.get(rules.size() - 1); printLog(rule, pluginName); - Enabled filter used by the ordinary branch:
Lines 286 to 288 in 862f5e3
private Boolean filterRule(final RuleData ruleData, final ServerWebExchange exchange) { return ruleData.getEnabled() && MatchStrategyFactory.match(ruleData.getMatchMode(), ruleData.getConditionDataList(), exchange); }
Environment
ShenYu master, 2.7.2-SNAPSHOT, commit 862f5e37e894bd8cef85ef540a8629f313e9ecdf, Java 17.
Validation
Reproduced with a minimal concrete AbstractShenyuPlugin subclass, real BaseDataCache/MatchDataCache, Spring MockServerWebExchange and execute(...).block(). The subclass records selector/rule IDs in doExecute. Match caches use the default enabled settings. The existing 90 targeted matching/cache/predicate tests passed; this does not exercise a deployed HTTP gateway.
Activity
imDwAaY commentedon Oct 22, 2026
/assign
[ISSUE #7978] Skip disabled rules in the full-flow selector path (#7983)