Retour vers le futur

Je viens du futur :')

a marqué ce sujet comme résolu.

Je propose donc de créer un spam bot afin de consomer les resources non utilisé du site. Ceci provoquera un ralentissement général du site. On augmentera le nombre de spam jusqu’à résolution totale du problème.

Plus sérieusement (et aussi parceque j’avais promis de plus troll dans "Bugs et suggestions"), le sujet à déjà été reporté depuis longtemps (Octobre 2016 quoi …).

L’issue a depuis été marquée en "wontfix". Notament car personne ne sait vraiment d’où ça vient …

https://github.com/zestedesavoir/zds-site/issues/3914

+3 -0

L’issue a depuis été marquée en "wontfix". Notament car personne ne sait vraiment d’où ça vient …

https://github.com/zestedesavoir/zds-site/issues/3914

ache

J’ai pas l’impression qu’une hypothèse toute bête d’un décalage de quelques fractions de secondes entre l’heure du serveur de base de données et celle du serveur de ZdS ait été envisagée, pourtant c’est le premier truc qui me vient à l’esprit.

Si c’est le cas, il "suffit" de régler un service ntp pour synchroniser les deux machines sur un même serveur de temps.

+1 -0

Si la différence entre la date d’envoi et la data actuelle est faible, il y a peut-être moyen de régler ça en rajoutant un délai (par ex. 1/5ème de secondes) entre l’envoi et la publication ?

De plus, pour une synchro NTP, il me semble qu’il faut un accès root, non ? Vous disposez d’un tel accès sur un serveur loué ?

Le root ? Là où on va on a pas besoin, de root.

+4 -0

hmm, c’est ennuyeux.

Vraiment ? Je veux dire, ça peut poser concrètement soucis ?

Personnellement, je trouve ça amusant, donc ça ne me choque pas plus que ça que ce ne soit pas corrigé.

+7 -0

L’issue a depuis été marquée en "wontfix". Notament car personne ne sait vraiment d’où ça vient …

https://github.com/zestedesavoir/zds-site/issues/3914

ache

Non non, c’est wontfix parce que c’est rigolo (et chiant à reproduire). Par contre j’ai une super hypothèse sur la cause, ça oui.

+3 -0

@rezemika: Biensûr qu’ils ont un tel accès !

La virtualisation mon bon monsieur. Tu loues un VPS à 2€ (allez 3€) par mois et tu as un accès ’root’ sur un serveur peu puissant.

Sinon, j’ai surtout l’impression que justement, ils ont essayé de faire une sorte de comparaison à un ’delta’ près. Sauf que ça a mal été fait.

Ici, c’est on retire les microsecondes et on compare ensuite.

Chez moi j’ai quand même :

1
2
3
4
5
6
>>> now;now - timedelta(milliseconds=now.microsecond)
datetime.datetime(2017, 3, 5, 15, 37, 3, 870523)
datetime.datetime(2017, 3, 5, 15, 22, 33, 347523)
>>> now;now - timedelta(milliseconds=now.microsecond)
datetime.datetime(2017, 3, 5, 15, 37, 3, 870523)
datetime.datetime(2017, 3, 5, 15, 22, 33, 347523)

Edit: Bien grillé, genre très bien grillé par victor …

Edit2: J’aurais plus vu dans l’idée du code fautif :

1
2
delta = now - value
if delta < timedelta(milisecond=1) : # Si c'est dans un peu plus de 1 miliseconds

Mais le delta de 1ms ici est totalement arbitraire.

+0 -0

@rezemika: Biensûr qu’ils ont un tel accès !

La virtualisation mon bon monsieur. Tu loues un VPS à 2€ (allez 3€) par mois et tu as un accès ’root’ sur un serveur peu puissant.

Note aux lecteurs : on a 2 serveurs actuellement, et héberger ZdS demande des trucs bien plus puissants que des VPS à 2-3€. ;)

Sinon, j’ai surtout l’impression que justement, ils ont essayé de faire une sorte de comparaison à un ’delta’ près. Sauf que ça a mal été fait.

Ici, c’est on retire les microsecondes et on compare ensuite.

Chez moi j’ai quand même :

1
2
3
4
5
6
>>> now;now - timedelta(milliseconds=now.microsecond)
datetime.datetime(2017, 3, 5, 15, 37, 3, 870523)
datetime.datetime(2017, 3, 5, 15, 22, 33, 347523)
>>> now;now - timedelta(milliseconds=now.microsecond)
datetime.datetime(2017, 3, 5, 15, 37, 3, 870523)
datetime.datetime(2017, 3, 5, 15, 22, 33, 347523)

Bien grillé, genre très bien grillé par victor …

ache

Oui, c’était l’hypothèse que j’avais en novembre et elle continue à être la plus probable. Peut-être que je testerai en prod une fois, pour s’assurer que c’est ça.

Aucune idée de comment ce code est arrivé là, par contre - et ça peut vous intéresser - ce code est là depuis très longtemps et n’a commencé à produire ce bug que très récemment. La raison est, je pense, le caching des templates. Nos pages sont très nettement plus rapides qu’avant. Et avant justement, traiter les templates prenait beaucoup plus de temps. Depuis qu’on a changé ça, je pense que la fonction appelée pour afficher ce temps est "plus proche", et donc le "bug du futur" se produit.

+6 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte