Retour vers le futur

Je viens du futur :')

L'auteur de ce sujet a trouvé une solution à son problème.

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

Édité par ache

ache.one                                                            🦊

+4 -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.

Édité par nohar

I was a llama before it was cool

+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.

Édité par rezemika

"Les accidents dans un système doivent se produire, mais il n’est pas obligatoire qu’ils produisent pour vous et moi." Laurence Gonzales - Deep Survival

+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é.

Hier, dans le parc, j’ai vu une petite vieille entourée de dinosaures aviens. Je donne pas cher de sa peau.

+7 -0

En lisant le code, je pense que ton hypothèse est très certainement la bonne, victor. Par contre, est-ce qu’on sait pourquoi cette ligne a été ajoutée (car visiblement, elle est là depuis le début) ?

Je t’aurais bien proposé de tester ça sur la bêta, mais je n’arrive pas à reproduire (c’est trop lent). :/

@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.

Édité par ache

ache.one                                                            🦊

+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.

Le saviez-vous ? Chaque -1 que vous mettez vous fait gagner un point de QI.

+6 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

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