Réunion du 19-11-2024
Changements du code de la semaine
- Commit 0a0e1e :Date de création de l'item ajouté dans l'inventaire de la primitive : par spécification, il s'agit du moment où l'élément est ajouté à la prim. Dans certains cas, il était défini comme l'heure de création réelle de l'objet.
- Commit df4664 : éviter la possibilité d'une référence nulle dans le code des groupes.
Avertissement
Attention : Ce résumé existe pour orienter vos recherches. Des erreurs d'interprétation ne sont pas à exclure. Pour plus de précisions, veuillez vous référer aux sources ou vous adresser directement aux développeurs d'OpenSimulator en assistant aux réunions du mardi ou sur le canal IRC. Je ne fais pas partie des développeurs, ne vous adressez pas à moi pour les joindre. Merci.😉 |
Base de données
Migration
SQLite
- Le connecteur de SQLite a du mal avec les requêtes plus modernes. Le code de SQLite semble dater de 2018 ce qui n'est pas très vieux. Mais, il semble être incapable de traiter les pseudos requêtes pour pragma_table_info() car il ne reconnaît pas cela comme une fonction. Seul PRAGMA table_info()[1][2] fonctionne, ce qui ne peut être transformé et il est impossible de faire quoi que ce soit avec cela. Donc, il faut traiter les retours dans le code plutôt que directement avec SQL [3].
- Ce n'est pas impossible mais c'est un travail beaucoup plus fastidieux que pour MySQL. C'est surtout un problème avec les index des tables, le reste ne pose pas de problème.
- SQLite ne supporte qu'un sous-ensemble de SQL.
MySQL
- Jusqu'à présent MySQL semble fonctionner correctement.
PostgreSQL
- PostgreSQL doit encore être testé.
Fsassets vs Blobs
Question
- Question de Kayaker Magic : Pour une petite grille, est-il préférable d'utiliser des blobs plutôt que les fichiers de fsassets[4] ?
Réponses
- Techniquement, une base de données c'est aussi des fichiers.
- Fsassets est un peu plus qu'une simple utilisation de fichiers. Par exemple, cette fonctionnalité tente de réduire la duplication des contenus.
Modules
Groupes
Problème
- Mantis : Les groupes V2 sont désactivés si des rôles personnalisés sont créés : Le groupe[5] se bloque et devient inutilisable. En plus du ticket de Mantis, Vincent Sylvester a eu deux autres rapports de bug de même nature en une semaine.
Processus
- Des entrées dans les rôles n'appartiennent pas à un rôle réel. Quelqu’un est dans un rôle qui n'existe pas.
- Avant la correction, le code ne détectait que des droits manquants, car la requête renvoyait nul, alors il échouait et ne continuait pas à vérifier les autres rôles. Comme il ne trouvait jamais la permission de faire des changements via les rôles réels, les modifications devenaient impossibles.
Correction
- Le code gère désormais cette situation de manière appropriée lors des contrôles d'autorisation, mais émet un avertissement au besoin. Voir le Commit df4664 ci-dessus. Ubit Umarov explique que le changement qui a été fait adresse une référence nulle à la place des rôles manquants et enregistre cette absence dans le journal.
- Vincent Sylvester a mis une requête SQL[6] sur Mantis. Elle peut être utilisée pour trouver les entrées rolemembership orphelines.
SELECT * FROM os_groups_rolemembership WHERE NOT EXISTS (SELECT 1 FROM os_groups_roles WHERE os_groups_rolemembership.RoleID = os_groups_roles.RoleID);
Commentaires
- Échec silencieux, peut-être lié au cache de groupe.. ou non ? Vincent Sylvester est tenté de supprimer le cache des groupes pour que ce ne soit plus une variable. Il a constaté qu'il n'était parfois pas mis à jour après des changements de permission, même si les modifications avaient été faites dans la base de données. Des disques assez rapides et beaucoup de mémoire pour les caches de tables de la base de données devraient être suffisants. Ce code a été écrit quand les disques HDD (Hard Disk Drives) étaient la norme.
- Aucun rôle n'a été supprimé sur ces groupes, la routine de suppression devrait être correcte.
- Vincent Sylvester ne sait pas vraiment quoi chercher dans les logs. Il faudra chercher l'origine du bogue dans le code du groupe qui semble être assez confus à ce niveau. La vérification des permissions se fait en deux temps (récupération des rôles de l'avatar puis récupération des permissions associées ) alors qu'elle pourrait se faire en une fois avec une jointure [7] SQL [8].
- Une implémentation plus moderne utiliserait des transactions[9] et tout serait annulé en cas d'échec.
- Ce bogue est assez ancien et ne doit pas être lié au changement de runtime (environnement d'exécution). Vincent Sylvesrer a trouvé un groupe cassé qui a 12 ans. Mais, l'ordre des rôles retournés a peut-être changé avec dotnet ou quelque chose comme ça.
- Gavin Hird signale que le code des groupes a un peu changé au niveau des viewers et que cela a pu déterrer un vieux problème dans le backend (côté serveur) mais, ce n'est pas certain.
- Ubit Umarov dit que les groupes ne sont pas très utilisés dans OpenSim et que certains utilisent les groupes flotsam[10].
- Vincent sylvester pense qu'à ce niveau il faudrait un nouveau module de Groupes V3. Un SQL plus efficace et un code un peu plus moderne et cela pourrait fonctionner, mais c'est encore beaucoup de travail.
Informations
OSCC 2024
- Partage de l'ébauche du calendrier OSCC 7-8 décembre pour les participants.
Réunion de la semaine dernière
- La réunion du 12 novembre a eu lieu, même si la semaine dernière, Osgrid [11] était en maintenance.
- Rappel [12]:
NOTE : S'il y a des problèmes avec la région Dev Outreach, la réunion se tiendra à Hurliman Plaza. Si OSGrid n'est pas disponible, la réunion pourrait avoir lieu sur http://hg.zetaworlds.com:80/OpenSim ou http://grid.xmir.org:8002/barcola.
- Annonce principale de la semaine dernière : sortie de la version 0.9.3 d'OpenSimulator [13] et nouvelle version de développement 0.9.3.1 Dev[14] .
- Tous les changements mentionnés ce jour sont sur le master de la version de développement [15].
Casque PBR
- Un casque PBR Full perms était semble t-il disponible sur la région de la réunion. Kayaker Magic l'a copié pour tester ses régions PBR.
- Ubit Umarov signale que ce casque fait partie des démos glTF. Il donne le lien GitHub des modèles glTF : https://github.com/KhronosGroup/glTF-Sample-Models
Viewers
Dayturn
- Publication d'une version preview de Dayturn.
NDLR : Version preview : cela fait référence à une version qui donne un aperçu des nouvelles fonctionnalités à venir. Elle peut être plus ou moins stable qu'une version beta, mais son but principal est de montrer ce qui est en préparation et de recueillir des retours sur ces nouvelles fonctionnalités. |
- Cette version a été téléchargée 24 000 fois pour Mac et de 6500 pour Windows. Gavin Hird dit que le moment est donc venu de rajouter tout le code Opensim et de l'activer.
- Les nouveaux viewers ont besoin d'OpenGL 4.2 [16]
- Gavin Hird n'a pas l'intension de faire une version ARM64[17] du logiciel. Toutefois, la version Windows peut fonctionner sur des appareils ARM64. Elle fonctionne aussi dans VMware [18].
Source
http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2024-11-19