Repository navigation
Preserve Velocity configuration and runtime on failed reload - #1686
Conversation
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. |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (4)
Included review availability: This review used your included allowance. Your plan provides up to 2 included reviews per hour; 1 remain after this review. 📜 Recent review details⏰ Context from checks skipped due to timeout. (3)
🔇 Additional comments (3)
📝 WalkthroughWalkthroughVelocity configuration reloads now propagate file and parsing failures. Runtime reload handling checks configuration first and returns on failure, preserving the active configuration and runtime. Tests cover malformed and missing files, startup defaults, and runtime state. ChangesVelocity reload handling
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Bug fix Sequence Diagram(s)sequenceDiagram
participant VotingPluginVelocity
participant VelocityConfig
participant bungeeconfig.yml
participant ProxyRuntime
participant Tasks
VotingPluginVelocity->>VelocityConfig: reload()
VelocityConfig->>bungeeconfig.yml: Open and parse YAML
alt Configuration load fails
VelocityConfig-->>VotingPluginVelocity: Throw reload failure
VotingPluginVelocity->>VotingPluginVelocity: Log failure and return
Note over VotingPluginVelocity,Tasks: Runtime state and tasks remain unchanged
else Configuration load succeeds
VelocityConfig-->>VotingPluginVelocity: Return loaded configuration
VotingPluginVelocity->>Tasks: Cancel tasks during reload
VotingPluginVelocity->>ProxyRuntime: Apply reload changes
end
Merge Risk: ⚪ Minimal · up to Failed Velocity reloads retain the active settings and runtime. Malformed configuration at startup prevents startup rather than silently running with defaults; the change is mergeable after normal checks. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The change improves failure containment by rejecting unreadable or malformed configuration before disrupting the active runtime. No introduced security issue was identified in the reviewed paths. Residual uncertainty concerns concurrent hosted administration and recovery behavior beyond configuration-load failure. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 30.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 10 functions across 3 files. (1 skipped: 1 unsupported.)
✨ Finishing Touches 💡 2📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
🛠️ Fix failing CI checks 💡
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
43d6ec7 to
0406ff7
Compare
Problem and ownership
MCHT finding
20261002T012032106596Z-aa5ef0416165confirmed malformed normal Velocity reload replaces the active MQTT/admin configuration with defaults. SimpleAPI swallowed parsing failures; VotingPlugin also continued runtime reconfiguration when reload threw. This reproduces on current default-branch source; it is not a harness or demonstrated Bungee defect.Fix
SimpleAPI library fix: BenCodez/SimpleAPI#104 . This PR works independently with the previously published SimpleAPI because the VotingPlugin adapter performs strict loading itself.
Validation
git diff --checkpassed; complete diff inspected; independent source-read-only review: No findings.The previous hosted CI failed solely on the old hard size gate. #1687 is now merged, and this branch is rebased onto current master (
93df54109). Updated head0406ff7b109508061fa7f76ed2b9961fc161d089passes a full local clean package: 1,813 unit tests + 5 artifact tests; oversized output produces the requested visible warning. Updated-head CI is pending.MCHT host-side
config_upgrade_regressionremains pending execution access; the referenced CLI suite returns 404 through the retained machine API. An active dashboard suite has not been interrupted. No live transport takeover, vote loss, or live vote-safety claim is made.Fixing candidate (both product fixes, independently rebuilt AdvancedCore dependency): SHA-256
3213eb6275b20816b97d154206e39f621cea8210fd72ff2089ccd06150f848d4. Both actual shaded configuration classes pass an isolated-JVM malformed/repaired reload probe. This is local candidate evidence, not the MCHT host regression result.