MT-Eurythmia / Eurythmia-server

Eurythmia server repository: mods, subgame, configuration, issues tracker, and a few other.
http://eurythmia.langg.net
7 stars 7 forks source link

Un bug avec les workbench #105

Closed YruamaLairba closed 7 years ago

YruamaLairba commented 7 years ago

c'est un bug avec le cut du worbench et qui fait crasher le serveur : 1) mettre un bloc "cuttable" dans la partie cut 2) enlever le bloc "cuttable" et le mettre directement dans le "storage" sans passer par son inventaire 3) lorsque qu'on revient à la page de "cut", il est alors possible de cut à partir de rien 4) si on cherche a recuperer le resultat du "cut", ca crash

mega-gigaMynetest commented 7 years ago

ce n'est pas le seul bug qu'on peut faire avec la workbench, on en a "trouve" pleins aujourd'hui (10/05/2017), mais ce sont des bugs connus depuis longtemps et que les devellopeurs essayent de résoudre depuis longtemps, mais ils n'y arrivent pas. Sur ce, nous ne pouvons rien faire la dessus

paly2 commented 7 years ago

Les bugs ne sont pas si connus. Personnellement, je savais juste que la workbench crashait, mais aucun joueur ne m'avait expliqué comment il faisait crasher, en dépit de mes demandes. Et il me semblait qu'il n'y avait qu'une seule cause de crash.

Aussi, @mega-gigaMynetesg, pourrais-tu faire la liste des autres bugs avec une description précise comme celle qu'a faite @YruamaLairba?

Je doute fortement que des dévoleppeurs se soient penché sur le problème. Cette issue n'est pas à fermer pour le moment.

mega-gigaMynetest commented 7 years ago

Bonjour Upsilon, j'imagine que tu veux du coup en savoir plus sur ces bugs ? je t'invite a venir irc si oui

mega-gigaMynetest commented 7 years ago

La plupart des autres bugs ne font pas crash le serv, mais plutôt des bugs de duplication avec la workbench. le premier bug est celui que Yruama a signale, je vais donc ne pas la décrire précisément Le second bug consiste au même principe que celui de Yruama, mais au lieu de mettre tous les blocks dans l'inventaire de la workbench, en laisser 1 dans cut. en récupérant les objets cut, on en a pour le nombre de blocks auparavant mais en n'en utilisant qu'un seul. Une sorte de duplication, qui ne fait pas crash le serveur. Le troisième bug consiste a réparer un item sans marteau, en utilisant le bug du remplacement un item par un autre en cliquant sur l'item qui remplace avec l'item remplace. le marteau se retrouve dans l'inv et l'item se repare toujours. Le 4eme bug consiste a faire le même bug que le n°2 mais avec un item non coupable. Le 5eme bug consiste a faire crash le serv en plaçant des demies-dalles avec le déployer, et aussi le bateau ( et je pense pas qu'on soit au bout de nos surprise avec ce block ) Voila j'ai termine, viens sur irc pour plus de détails Mega-gigaMynetest

paly2 commented 7 years ago

Je ne peux pas venir en IRC ce soir, et les bugs doivent de toute façon être décrits sur GitHub sans quoi ils risquent de n'être jamais traités.

Cette discussion doit être transférée sur le dépôt de xdecor, ce dont je me chargerai demain en incluant les logs de crash.

Edit: OK merci pour les descriptions, je n'avais jamais eu vent de ces bugs

mega-gigaMynetest commented 7 years ago

D'accord pas de problèmes, si il te manque des détails sur un des bugs dis le maintenant s'il te plait

mgl512 commented 7 years ago

J'aime bien l'optimisme et le dévouement d'Upsilon :) Pour rire un peu, rappelons que:

  1. L'auteur de xdecor refuse de loguer quoi que ce soit. Ce qui en fait un mod hostile aux serveurs.
  2. La chaise est un exploit qui neutralise la gravité dans le mod original depuis toujours.
  3. La table d'enchant orignale définit des noms de textures enchantées qu'elle ne fournit pas. L'engine les remplace par un ton de couleur flashy.
  4. La table d'enchant du mod original est incompatible avec 3D_armor depuis 1 mois (enchant < armure originale, caractéristiques perdues) et personne ne leur a encore signalé.

L'équipe MFF a trouvé des tas de bugs quand ils ont considéré ajouter ce mod. Ils les ont remontés et en ont corrigé. Les exploits sont connus et c'est même la seule façon de réparer une lava pickaxe je pense. C'est juste que c'est un mod plutôt singleplayer avec un auteur plutôt désagréable avec qui on n'a pas envie de coopérer. Bonne chance Upsilon.

paly2 commented 7 years ago

Le 5eme bug consiste a faire crash le serv en plaçant des demies-dalles avec le déployer, et aussi le bateau ( et je pense pas qu'on soit au bout de nos surprise avec ce block )

Ça n'a pas grand-chose à faire dans cette issue, mais merci pour l'avoir signalé, les crashes causés par le deployer (et aussi par le node breaker s'il y en a) sont "corrigés" dans a9720f3. (Il ne s'agit pas réellement d'une correction ; mais l'error handling se fait maintenant au niveau du mod, ce qui évite un crash du serveur. En effet, ces crashes sont causés par la fonction de placement par des appels à des méthodes qui ne sont pas implémentées par le joueur virtuel du deployer, et sont pour la plupart très difficiles à corriger, car ces méthodes ne peuvent pas être implémentées)

paly2 commented 7 years ago

Corrigé dans https://github.com/Mynetest/xdecor/commit/59a65c60611ebe8ef3ced2e406968f049d1aa757.

Pour le 3ème bug (qu'on retrouve aussi dans la table d'enchantement), c'est un bug qui provient l'engine (dans ces conditions, la fonction allow_metadata_inventory_put n'est pas appelée). Le fix appliqué dans le mod est radical: il supprime l'objet intru.

mgl512 commented 7 years ago

J'ai l'impression qu'une erreur censée être résolue est réapparue:

2017-06-11 12:38:34: ERROR[Main]: ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod 'xdecor' in callback node_on_receive_fields(): /home/minetest/.minetest/mods/xdecor/src/workbench.lua:158: attempt to concatenate a nil value
2017-06-11 12:38:34: ERROR[Main]: stack traceback:
2017-06-11 12:38:34: ERROR[Main]:   /home/minetest/.minetest/mods/xdecor/src/workbench.lua:158: in function 'set_formspec'
2017-06-11 12:38:34: ERROR[Main]:   /home/minetest/.minetest/mods/xdecor/src/workbench.lua:195: in function </home/minetest/.minetest/mods/xdecor/src/workbench.lua:182>

Aucune idée du contexte.

mega-gigaMynetest commented 7 years ago

encore un problème avec workbench, je me mets tout de suite aux essaie pour que ce soit corriger. tous ces bugs commence a devenir lourds et importants, il faudrait peut être réécrire workbench. Edit: d'après le message d'erreur et le code, le premier problème vient de function workbench.dig(pos) et le deuxième ( ligne 195 ) est vide. a moins que le code Workwbench Eurythmia ai été modifie, c'est incompréhensible encore plus incompréhensible, un message d'erreur ne vient normalement pas d'une première ligne d'une table clé-valeur comme celle ci. je vais quand même chercher des bugs Edit 2.0: je suis allé voir le Eurythmia code, ce n'est effectivement pas le même que celui que j'ai en solo. les problèmes sont : ligne 158 : formspecs[id]..xbg..default.get_hotbar_bg(0,3.25)) et ligne 195 : workbench:set_formspec(meta, fields.back and 1 or en gros, que des problèmes du formspect de la workbench, peu être qu'il ne marche pas avec l'API de minetest 1.4.16, a voir.

mega-gigaMynetest commented 7 years ago

J'ai teste a peu près tout ce qui était possible de faire avec la workbench, et rien d'anormal, a voir si le problème se reproduit

paly2 commented 7 years ago

Le message d'erreur est parfaitement clair: formspecs[id], xbg ou default.get_hotbar_bg(0,3.25) (ce dernier n'est pas suspect, la fonction ne pouvant pas retourner nil). Je ne sais pas où est défini xbg, mais j'ai vérifié, il est défini.

Il se trouve que id est nil quand la fonction est appelée depuis workbench.fields, et qu'aucun de fields.back, fields.craft ou fields.storage n'existe. Le bug est corrigé