Skip to content
This repository has been archived by the owner on Aug 20, 2020. It is now read-only.

Travaux perdus avec Profnsched #514

Open
Coethium opened this issue Oct 9, 2016 · 13 comments
Open

Travaux perdus avec Profnsched #514

Coethium opened this issue Oct 9, 2016 · 13 comments
Assignees
Labels

Comments

@Coethium
Copy link
Contributor

Coethium commented Oct 9, 2016

Suite de la discussion engagée à a8a95a6

Coethium referenced this issue Oct 9, 2016
Because freeze the minetest.after
@Lymkwi
Copy link
Member

Lymkwi commented Oct 11, 2016

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.

@BetterToAutomateTheWorld
Copy link
Member

@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

@Coethium
Copy link
Contributor Author

Coethium commented Oct 12, 2016

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

@BetterToAutomateTheWorld
Copy link
Member

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

@ghost ghost mentioned this issue Oct 12, 2016
@Coethium
Copy link
Contributor Author

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

@ghost
Copy link

ghost commented Oct 21, 2016

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

@Coethium
Copy link
Contributor Author

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

@ghost
Copy link

ghost commented Oct 21, 2016

Je l'ai lancé après.

@Coethium
Copy link
Contributor Author

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
Copy link
Contributor Author

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 referenced this issue Nov 12, 2016
Modified to replace # when we ant to count items in an array.
Code currently not cleaned after correction.
@ghost
Copy link

ghost commented Jan 18, 2017

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

@Coethium
Copy link
Contributor Author

Coethium commented Jan 19, 2017

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

@ghost
Copy link

ghost commented Jan 19, 2017

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.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

3 participants