Fix #1128 review defects before v3.0.0 tag#1131
Merged
Merged
Conversation
Pre-tag code review (3 agents) surfaced six fix-before-release defects in the alert-badge and XML-processor changes made this release. All fixed and verified. Lite server-tab badge parity (#1128): - Write the low-disk/failed-job badge flags ONCE per sweep from locals, not only inside the feature-enabled/online/msdb branches — a disabled feature or an offline server now CLEARS a stale badge instead of leaving it lit. - A false->true badge transition is a genuinely new condition, so it clears any acknowledgement (new AlertStateService.ClearAcknowledgementForNewCondition). The boolean low-disk/failed-job conditions carry no event timestamp, so UpdateAlertCounts could never re-show them after a dismiss — matching the Dashboard's re-show on a new disk/job condition. - Drop per-server badge state on tab close (dict leak + stale flash on reopen). - Cover the ack / re-show logic with AlertBadgeAckTests (4 tests). install/25_process_deadlock_xml.sql: - Log SUCCESS on any clean parse run (0 reconstructable graphs is success, not failure); ends the perpetual NO_RESULTS this proc logged AFTER it had already marked the rows processed. Mirrors process_blocked_process_xml. - Move the +1s window pad to the parser's LOCAL upper bound only; the mark uses the un-padded UTC @end_date so a deadlock inserted in that extra second is left for the next run, not marked unparsed. install/53_collect_server_properties.sql: - Include DATABASEPROPERTYEX Edition/ServiceObjective in the row_hash so an Azure SQL DB tier/SLO change with no vCore/memory delta is detected (SERVERPROPERTY Edition is the constant 'SQL Azure', so it alone never changed the hash). Verified: Lite build OK; Lite.Tests 447, Dashboard.Tests 487 pass; installer applies 55/55 on SQL2017 with 46 collectors running. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Pre-tag code review (3 subagents) of this release's alert-badge and XML-processor work surfaced six fix-before-release defects. All fixed and verified in this PR.
Lite server-tab badge parity (#1128)
UpdateAlertCounts' timestamp-based ack-clear never fired for them — once dismissed, a fresh breach / new failed job stayed dark. AddedAlertStateService.ClearAcknowledgementForNewCondition, called on afalse->truetransition, matching the Dashboard's re-show on a new disk/job condition.CloseServerTab.AlertBadgeAckTests(4 tests) cover ack → suppress → new-condition re-show, the no-op-when-nothing-acked path, and silenced-server precedence.install/25_process_deadlock_xml.sql
NO_RESULTS+ "left unprocessed for retry" after it had already marked the rows processed — a permanent false-failure signal. A clean parse run with 0 reconstructable graphs is SUCCESS (events processed, simply no deadlock graph). Genuine failures still take the CATCH path → ERROR. Mirrorsprocess_blocked_process_xml.+1spad from@end_dateonto the parser's local upper bound only; the mark uses the un-padded UTC@end_date, so a deadlock inserted in that extra second is left for the next run rather than marked unparsed.install/53_collect_server_properties.sql
SERVERPROPERTY('Edition')is the constant'SQL Azure'on Azure SQL DB, so a pure tier/SLO change with no vCore/memory delta never changed therow_hashand the collector skipped it. AddedDATABASEPROPERTYEX(DB_NAME(), 'Edition'/'ServiceObjective')to the hash.Verification
🤖 Generated with Claude Code