False positive in UsageSanityChecker
- Langage dominant
- Java
- Étoiles
- 3.1k
- Forks
- 1.4k
- Merge moyen
- 6 j 19 h
- PR mergées (30 j)
- 32
Description
The bug we're hitting is in a different subsystem: the Usage Sanity Check (UsageSanityChecker.java). Specifically the "snapshot after removed" check, whose query is roughly:
SELECT count(*)
FROM cloud_usage.cloud_usage cu
JOIN cloud.snapshots s ON cu.usage_id = s.id
WHERE cu.usage_type = 9
AND cu.start_date > s.removed;
i.e. usage records in cloud_usage.cloud_usage with a start_date AFTER the snapshot was already soft-deleted in cloud.snapshots. This drives the Usage Sanity Check failed mailer and feeds our Prometheus exporter.
On the running 4.22.1.0 (which includes 83ce006) we still see:
check | count
-- | --
snapshot_after_removed | 160
volume_after_removed | 36
template_after_removed | 0
vm_after_destroyed | 0
_Originally posted by @PPisz in https://github.com/apache/cloudstack/discussions/13398#discussioncomment-17321658_
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez dans UsageSanityChecker.java en retraçant la vérification « snapshot after removed » et sa requête SQL sur cloud_usage.cloud_usage et cloud.snapshots. Cherchez pourquoi l’instance 4.22.1.0 en cours d’exécution signale 160 enregistrements, puis vérifiez que le problème du décompte des faux positifs est résolu sans perturber le mailer de Usage Sanity Check ni la sortie de l’exportateur Prometheus.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java, sql
- Domaine
- backend, cloud, databases, observability
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Calme
- Clarté
- À clarifier
- Accessibilité débutants
- 38/100