Fix RS485 rewind memory pressure under collision storms#1180
Open
camaro4life18 wants to merge 6 commits intotagyoureit:masterfrom
Open
Fix RS485 rewind memory pressure under collision storms#1180camaro4life18 wants to merge 6 commits intotagyoureit:masterfrom
camaro4life18 wants to merge 6 commits intotagyoureit:masterfrom
Conversation
…exponential backoff - Implement requestPumpStatusAsync() to actively poll Hayward pump status instead of no-op - Add consecutive communication failure tracking with exponential backoff in polling (2s to max 30s after 5 failures) - Add pollEquipmentAsync() override to include status polling after each state update - Add updateCommStatus() to set pump status to warning/error based on failure count - Preserve last known pump state on comm failure instead of zeroing rpm/watts - Fix silent error swallow in setPumpToRemoteControlAsync (was missing logger.error) - Increase retries from 1 to 3 and add 2500ms timeout on outbound messages - Update package-lock.json license identifier to AGPL-3.0-only
- Add singleMixPeriod property to ChemController and ChemDoser classes - Default is false to maintain backward compatibility - When enabled, prevents simultaneous chemical dosing during mixing periods - ChemController: pH checks ORP mixing state and vice versa - ChemDoser: checks all other dosers for active mixing - Fixes issue with hot tub chemical balance from simultaneous mixing
Owner
|
Does this supersede the other #1175? I'd prefer if you break these up into seperate PR's so we can review each individually. There are still some files in here that don't belong (package-lock.json) and constructors being called unnecessarily. And same comments on the rewind approach. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary\n- add a hard rewind cap for inbound message rewind loops\n- throttle and truncate rewind collision logging payloads\n- prevent excessive heap churn during sustained RS485 collision/rewind storms\n\n## Root Cause\nThe rewind path could recurse repeatedly while also logging full collision buffers at high frequency, which amplified allocation pressure and contributed to OOM conditions on constrained systems.\n\n## Validation\n- TypeScript build passes\n- runtime stabilization verified on noisy RS485 conditions