Je n'ai pas trouvé de page qui parle de ce sujet, mais il me semblait que la note d'un commentaire est égal à sa note par défaut, pondérée par les valeurs entre parenthèses, tant que la valeur absolue ne dépasse pas 10. Or, à la date du 27 mars 2023 à 14h50, le commentaire https://linuxfr.org/nodes/130706/comments/1919432 est noté (je copie) : Évalué à 6 (+5/-0). Sachant que, depuis un certain temps déjà, la note par défaut de mes commentaires est de 2, la note ne devrait-elle être de 7 ?
Suivi — Commentaires Note commentaire
27
mar.
2023
# Étrange
Posté par Adrien Dorsaz (site web personnel, Mastodon) . Évalué à 2 (+0/-0).
Je n'ai pas accès à la production pour voir ce qui s'est passé, mais c'est effectivement étrange: si on regarde la liste de tous tes commentaires: https://linuxfr.org/users/epeios/comments
Seul la première page contient le détail des votes: ça, c'est normal, c'est stocké uniquement temporairement dans Redis si je me souviens bien.
Dans tous les commentaires qui ont encore le détail, seul celui que tu as pointé à une différence entre les + et - qui est différent de 2.
Je ne sais pas pourquoi, je voulais juste partager ce constat.
[^] # Re: Étrange
Posté par Benoît Sibaud (site web personnel) . Évalué à 3 (+0/-0).
Les différents
"POST /nodes/130706/comments/1919432/relevance/for HTTP/2.0"dans les logs comparés avec les entrées dans Redis :[^] # Re: Étrange
Posté par Benoît Sibaud (site web personnel) . Évalué à 3 (+0/-0). Dernière modification le 30 mars 2023 à 07:56.
On retrouve bien le +6 côté redis donc. Reste à savoir pourquoi 2+6=7 ?
[^] # Re: Étrange
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2 (+0/-0).
la ligne d'échec ?
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Étrange
Posté par Benoît Sibaud (site web personnel) . Évalué à 3 (+0/-0). Dernière modification le 31 janvier 2026 à 19:37.
Hypothèse:
ça laisse supposer que une requête a complètement échoué à cause de la sauvegarde de la base (donc sans changement ni côté Redis ni côté SQL), et le réessai partiellement (ça m'étonne un peu qu'une table verrouillée par exemple n'ait pas donné une erreur niveau HTTP mais je n'ai pas mieux comme explication), entraînant un décalage de 1 entre Redis et SQL.(voir plus bas)Et de toute façon on peut clore ce ticket, parce qu'on n'ira pas guère plus loin.en fait si[^] # Re: Étrange
Posté par Benoît Sibaud (site web personnel) . Évalué à 3 (+0/-0). Dernière modification le 31 janvier 2026 à 19:20.
Par acquis de conscience, j'ai regardé les requêtes relevance/for et /against des trois derniers mois (pour les infos Redis) qui ont fini en HTTP 502 :
deux fois sur des commentaires qui ont fini « Évalué à 10 (+18/-3). » et « Évalué à 10 (+18/-0). », bref score plafond atteint donc ça ne va pas nous aider
https://linuxfr.org/nodes/140975/comments/2005612 « Évalué à 6 (+5/-1) » (l'auteur poste à 3 par défaut si on regarde ses 6 autres commentaires du même contenu). -> On a aussi une erreur de comptage, avec score initial de 3, SQL final de 6, avec côté Redis 5x +1 et 1x -1. Il manque un incrément côté SQL aussi. Possiblement au milieu d'opération d'adminsys (c'est la date de la migration redis et mariadb d'un conteneur à l'autre). En tout cas on voit l'absence de transaction : l'incrément Redis est passé, pas celui côté Redis. On a inventé le demi-point dans les notes ?
On a deux timeouts complets sans mise à jour ni Redis ni SQL, seules les deux premières requêtes ont marché et côté Redis et côté SQL -> 3 + 2 = 5 CQFD. (ou alors on a échoué à échouer avec succès). Et on a privé de possibilité de noter quelqu'un deux fois.
[^] # Re: Étrange
Posté par Benoît Sibaud (site web personnel) . Évalué à 3 (+0/-0). Dernière modification le 31 janvier 2026 à 19:38.
Le cas évoqué initialement dans ce ticket :
Dans le second cas https://linuxfr.org/nodes/140975/comments/200561
Dans le troisième cas https://linuxfr.org/nodes/141676/comments/2010504
Bref faut une transaction si on veut éviter ça (ce qui est vrai partout où on utilise un peu de redis et un peu de SQL). Nb: la situation est même encore plus fourbe car on doit stocker la note côté redis, puis incrémenter/décrémenter côté sql, puis décrémenter le nb de notes du compte notant, et c'est l'ensemble qui devrait être transactionnel si on veut éviter une erreur de 1 tous les vraiment pas souvent et le risque rare d'offrir une note gratuite.
[^] # Re: Étrange
Posté par Benoît Sibaud (site web personnel) . Évalué à 3 (+0/-0). Dernière modification le 01 février 2026 à 10:52.
Et comme une transaction entre Redis et MariaDB n'est pas possible (ça serait possible si on utilisait uniquement un moteur SQL transactionnel par exemple), on ne pourra pas garantir depuis le code Ruby qu'on va bien pouvoir tout faire ou tout annuler en n'ayant pas de garantie sur le fait que le code Ruby va tourner complètement. Je dirais donc qu'on va accepter un +1 oublié sur deux commentaires par trimestre (soit ~7750 commentaires en moyenne d'après les chiffres de 2025) et les notes complètement oubliées (2 sur ~21860 notes en 3 mois). Un pouième de karma peut être perdu au passage. La petite incohérence des chiffres n'est perceptible que si on connaît la note initiale, et ce pendant les 3 premiers mois. Puis on a juste la note finale et le souci est définitivement masqué.
Bref je ferme l'entrée en ayant la satisfaction d'avoir compris, l'insatisfaction d'avoir laissé un petit souci, la satisfaction de la fermeture et l'insatisfaction de l'imperfection suprême absolue ultime.
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.