server-minetestforfun icon indicating copy to clipboard operation
server-minetestforfun copied to clipboard

Travaux perdus avec Profnsched

Open Coethium opened this issue 9 years ago • 13 comments

Suite de la discussion engagée à https://github.com/MinetestForFun/server-minetestforfun/commit/a8a95a6764d01b57df5211fe36d7ae78b4da9c16

Coethium avatar Oct 09 '16 13:10 Coethium

Est-ce que tu peux clarifier ce qu'il faut faire? Le titre n'est pas assez explicite et le lien donne un code HTTP 404.

Lymkwi avatar Oct 11 '16 20:10 Lymkwi

@LeMagnesium J'ai corrigé le lien, le soucis est bien expliqué dans le lien, tu peux discuter ici de précision si tu en a besoin

@LeMagnesium : le problème est que pour l'instant moi-même je ne sais ce qu'il faut faire car je n'ai pas pu reproduire le bug at home.

Le module mets les travaux en liste d'attente, puis les laisse s'exécuter progressivement en essayant de ne pas dépasser le tick-time du serveur. (il est donc normal que certains modules non prioritaires voient passer quelques steps entre leur différentes exécutions).

D'après le problème décrit, certains travaux viennent à disparaitre totalement de la liste d'attente, du coup ils ne sont plus jamais excécutés.

J'avais rencontré un problème similaire dans "queue.lua", fonction "scheduler.shift()" où un for/ipairs (ligne 45)ne prenait pas tous les éléments. En le remplaçant par un for/pairs le soucis avait été résolu. J'ai même laissé le code de débogage en fin de fonction, qui vérifie qu'aucun travail n'a été perdu.

Dans le nouveau bug, donc fortement ressemblant, le code de débogage ne s'est pas enclenché, j'en déduis que ce n'est pas cette fonction qui pose problème.

Il s'agit peut-être d'un autre couple for/ipairs, mais ceux restant ne me choquent pas : ils sont bien appliqués sur des listes triées (et surtout il est impératif que ces listes soient traitées dans l'ordre de tri, ce que ne garantierait pas un for/pairs)

Coethium avatar Oct 12 '16 08:10 Coethium

On peut retenter en production en le réactivant, néanmoins il faudrait dans le meilleur des cas que tu sois là, que l'on puisse tester ensemble

@Darcidride en mode kamikaze ? ^^ Avant de le faire, je rajouterai du code de débogage.

Après sans de suite tester en prod, ça peut aussi se faire sur l'une de vos machines sur laquelle on sait que le bug a été vu. Du moment qu'on est ensemble sur IRC ça doit être faisable sans trop de contrainte.

Coethium avatar Oct 14 '16 10:10 Coethium

@Coethium Je testais les arbalètes pour trouver un bug et le bug est revenu, voila le log complet, j'ai regardé mais rien trouvé, j'ai fais la commande de dump aussi. Y avait un lag de 0.2 quand je m'en suis aperçu, puis il est tombé a 0.1 vu qu'il exécutait moins de choses. Bref tout ce que j'ai fait c'est recharger les arbalètes( qui utilisent des after). Le sprint fonctionnait toujours, action_timers et itemdrop non.

http://zerobin.qbuissondebon.info/?add56299a93edfb8#tBKn5uNE3msEra5F+47gfeOe4EINDc3QfYwYiLeEH98=

ghost avatar Oct 21 '16 15:10 ghost

@crabman77 merci ! Tu as lancé la commande de dump avant ou après avoir constaté le problème ?

La semaine prochaine je suis en vacances, donc je pourrai me pencher plus longuement dessus.

Coethium avatar Oct 21 '16 17:10 Coethium

Je l'ai lancé après.

ghost avatar Oct 21 '16 17:10 ghost

Je bosse dessus, et je pense avoir trouvé le pb : en lua # ne renvoie pas le nombre d'éléments d'un tableau, mais le nombre d'éléments qui précèdent le premier élément nul. Forcément ça change tout...

Coethium avatar Oct 27 '16 22:10 Coethium

Voilà, j'ai corrigé les # que je juge problématiques. Si l'un de vous peux tester sur sa machine ça serait cool. Sur la mienne je n'ai pas constaté de problèmes mais on sait que ce n'est pas représentatif (et j'ai testé 5mn de jeu environ).

L'idéal pour le débogage serait de lancer un /profnsched 0 avant les tests.

Coethium avatar Oct 29 '16 14:10 Coethium

@Coethium je vient d'avoir à nouveau le bug.

ghost avatar Jan 18 '17 21:01 ghost

Hello ! Et bonne année :) Y'a moyen d'avoir les log sur la période où ça a eu lieu ? Le log actuel débute à 8h30 ce matin.

Edit: en fait le problème vient certainement d'ailleurs car profnsched est désactivé dans le world.mt

Coethium avatar Jan 19 '17 17:01 Coethium

Pas sur mon local et non pas de log. J'ai fait plusieurs reboot pour tester mon code et connecter mon player plusieurs fois et ça me l'a fait une fois.

ghost avatar Jan 19 '17 18:01 ghost