« Réunion du 21-10-2025 » : différence entre les versions
Apparence
| (17 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 10 : | Ligne 10 : | ||
* Ubit Umarov a apporté une petite modification à l'utilisation de '''ReaderWriterLockSlim'''. | * Ubit Umarov a apporté une petite modification à l'utilisation de '''ReaderWriterLockSlim'''. | ||
=== Fonctionnement de l'ancien code === | === Fonctionnement de l'ancien code === | ||
* Lorsqu'un thread était abandonné à l'aide de '''Thread.Abort''' et qu'il avait acquis [ | * Lorsqu'un thread était abandonné à l'aide de '''Thread.Abort''' et qu'il avait acquis [https://fr.wikipedia.org/wiki/Verrou_(informatique) '''un verrou'''], il risquait d'être interrompu avant que le verrou ne soit libéré. | ||
* Dans ce cas, d'autres threads partageant les mêmes ressources et tentant d'y accéder étaient parfois (dans de rares cas) '''bloqués indéfiniment'''. Cela pouvait conduire à une situation où le programme se figeait ou ne répondait plus. | * Dans ce cas, d'autres threads partageant les mêmes ressources et tentant d'y accéder étaient parfois (dans de rares cas) '''bloqués indéfiniment'''. Cela pouvait conduire à une situation où le programme se figeait ou ne répondait plus. | ||
* Pour éviter cela, le code marquait le verrou avec un flag et incluait une routine dans [ | * Pour éviter cela, le code marquait le verrou avec un flag et incluait une routine dans [https://www.php.net/manual/fr/language.exceptions.php '''un bloc try'''], qui s'assurait que, même si un thread devait être abandonné, il exécutait un bloc de code qui libérait le verrou. | ||
=== Modification apportée === | === Modification apportée === | ||
* Comme [[Lexique_des_réunions#dotnet | '''.NET''']] n'a plus '''thread.abort''', Ubit Umarov a supprimé ce code de protection. | * Comme [[Lexique_des_réunions#dotnet | '''.NET''']] n'a plus '''thread.abort''', Ubit Umarov a supprimé ce code de protection. | ||
=== Discussion === | |||
* Vincent Sylvester pense que ne pas avoir la possibilité de tuer un thread bloqué semble régressif. Tuer des threads comme ça n'est pas génial, mais avoir du code bloqué l'est encore moins. D'après lui, supprimer des éléments pour éviter les erreurs n'est pas une bonne solution. Il va devoir voir cela, car '''le nouveau code maptile''' utilise '''Thread.Abort''' en cas de blocage. | |||
* Le développeur est censé écrire du code qui ne casse pas dès le départ, mais beaucoup de choses dépendent de dépendances externes qui sont hors de son contrôle. Alors, oui, c'est une solution de dernier recours, mais c'est une solution. | |||
* Ubit Umarov pense que l'abandon des threads est une mauvaise chose. Tout d'abord, Thread.Abort provoquait de '''nombreuses alertes et avertissements'''. Ensuite, le code de '''Framework.NET''' n'est pas conçu pour gérer correctement les abandons de thread avec des conséquences graves comme lorsque des ressources ne sont pas libérées. | |||
* Il dit qu'OpenSim utilise '''Thread.Abort''' seulement avec [https://fr.wikipedia.org/wiki/Chien_de_garde_(informatique) '''Watchdog'''] pour tuer les threads expirés. | |||
* La seule façon de tuer un thread maintenant est de lui demander de se fermer, ou à la sortie du programme. Mais l'abandon de thread est mauvais dans tous les cas, c'est une solution de dernier recours. | |||
* L'utilisation de '''Thread.Abort''' pourrait passer avec [https://www.codeproject.com/articles/Smart-Thread-Pool#comments-section '''le pool smartthread'''], mais ça peut être assez mauvais avec '''le pool du framework''' ou '''les tâches asynchrones'''. | |||
* Ubit Umarov dit que '''ces problèmes sont une raison de ne pas utiliser dotnet sur des projets sérieux'''. | |||
= Avertissement = | = Avertissement = | ||
| Ligne 21 : | Ligne 30 : | ||
= Base de données = | = Base de données = | ||
== Problèmes des connecteurs de base de données == | == Problèmes des connecteurs de base de données == | ||
* | * Vincent Sylvester a du mal de se plonger dans '''les connecteurs de base de données''' pour OpenSim. Il a aussi effectué quelques tests sur les écritures dans la base de données, mais il n'a pas encore tout à fait terminé. | ||
* [[Lexique_des_réunions#PostgreSQL |'''PostgreSQL''']] et [[Lexique_des_réunions#SQLite|'''SQLite''']] posent des problèmes. | |||
* Ubit Umarov a réussi à corriger le problème de [[Lexique_des_réunions#MySQL|'''MySQL''']], mais qui sait combien de temps cela va durer ? [[Réunion_du_07-05-2024#Connecteur_MySQL_8.3.0|'''2024-05-07 : Connecteur MySQL 8.3.0''']]. | |||
= Tests = | = Tests = | ||
== Test de régression == | == Test de régression == | ||
| Ligne 33 : | Ligne 45 : | ||
=Informations= | =Informations= | ||
== Architecture 32 bits == | == Architecture 32 bits == | ||
* | === Motif de la discussion === | ||
* Les mise à jour de distribution Linux avec prise en charge des systèmes [https://fr.wikipedia.org/wiki/Architecture_32_bits '''32 bits'''] pour Intel sont rares. | |||
* Firefox a supprimé sa version 32 bits. | |||
* Même [https://en.wikipedia.org/wiki/Raspberry_Pi '''Raspberry Pi'''] est désormais en 64 bits. | |||
* Seuls des petits appareils embarqués à faible consommation utilisent cette architecture. | |||
* Ubit Umarov se demande pourquoi ils suppriment tous les versions 32 bits alors qu'on continue à utiliser des puces [[https://fr.wikipedia.org/wiki/Architecture_ARM '''ARM'''] qui deviennent inutiles. | |||
=== Discussion / Histoire === | |||
* Ubit Umarov pense que beaucoup de choses n'ont pas besoin de [https://fr.wikipedia.org/wiki/Processeur_64_bits '''64 bits'''] et que même '''OpenSim''' fonctionnait mieux en 32 bits en utilisant la moitié de la mémoire. Mais, 32 bits sous Win64 signifiait 2 Go par processus alors que sur Win 32 bits, c'était 2 Go pour tout. Donc, avec 32 bits la mémoire est plus contraignante et elle est partagée entre tous les processus. | |||
* Andrew Hellershanks travaille encore avec certains systèmes embarqués qui fonctionnent avec des cartes 32 bits. | |||
* Vincent Sylvester dit que beaucoup de composants 32 bits existent encore, ils ont simplement été retirés de la gamme principale, mais cela ne signifie pas qu'il n'est plus possible de se les procurer et de créer une image pour ces appareils, cela demande simplement plus de travail. | |||
* Ubit Umarov dit que [https://fr.wikipedia.org/wiki/Intel '''Intel'''] a survécu aussi longtemps parce qu'il a maintenu la compatibilité. C'est en partie pour cela qu'ils ont battu [https://fr.wikipedia.org/wiki/Motorola '''Motorola'''], à l'époque des [https://fr.wikipedia.org/wiki/Intel_8086 '''Intel 8086'''] / [https://fr.wikipedia.org/wiki/Motorola_68000 '''Motorola 68000''']. Il pense que Motorola 68000 était bien meilleur. | |||
* Andrew Hellershanks ajoute que cela dépendait en partie de ce qui était commercialisé en premier et du prix des puces. | |||
* Le gouvernement américain a acheté 10% d'Intel pour 8,9 milliards de dollars américains. Ensuite [https://fr.wikipedia.org/wiki/Nvidia '''Nvidia'''] en a également acheté beaucoup. | |||
* Vincent Sylvester dit qu'il essaie de ne pas penser à la situaltion actuelle qui lui semble vraiment dystopique. | |||
== Windows 10 et 11 et puce [https://fr.wikipedia.org/wiki/Trusted_Platform_Module TPM] == | == Windows 10 et 11 et puce [https://fr.wikipedia.org/wiki/Trusted_Platform_Module TPM] == | ||
* | === Mise à jour vers Windows 11 === | ||
* L'ordinateur portable de Andrew Hellershanks lui indique qu'une mise à jour est disponible. Il ne pense pas avoir assez d'espace disque libre pour l'installer. Il faudrait 20 Go. De plus, il dit qu'il ne pense pas avoir [https://fr.wikipedia.org/wiki/Trusted_Platform_Module '''TPM'''] dans le BIOS pour le démarrer. Mais Vincent Sylvester indique que TPM ni de démarrage sécurisé pour installer Windows 11. Ce ne sont que des indicateurs qui peuvent être contournés. Microsoft tente de lutter contre les milliers d'utilisateurs mécontents qui disposent de suffisamment de connaissances collectives pour démanteler l'ensemble du noyau s'ils le jugent nécessaire. Microsoft ment comme un arracheur de dents. Beaucoup de systèmes anti-triche sont parfaits pour [https://fr.wikipedia.org/wiki/Rootkit '''rootkitter'''] une machine afin qu'un pirate puisse implanter une porte dérobée dans le BIOS. | |||
* Windows 11 attend Ubit Umarov, mais il n'est pas sûr de vouloir faire cette mise à jour. Il dit qu'il ne sait pas ce que font les mises à jour. Il ne pense pas avoir TPM. | |||
=== Garder Windows 10 === | |||
* Vincent.Sylvester a payé 30 dollars à Microsoft pour garder '''Windows 10''' avec des mises à jours pendant une année. Il va rester sur Windows 10 pendant 1 an voire plus. | |||
* Ubit Umarov lui dit que la dernière mise à jour était destinée à tuer Windows 10 et pas à l'installer. | |||
=== Solutions de repli === | |||
* Gavin Hird a installé [https://fr.wikipedia.org/wiki/Debian '''Debian 13'''] sur la partition de '''Windows 10'''. Il dit que ça ne le remplacera pas. Cette machine est équipée à la fois d'une carte graphique Intel et d'une carte graphique NVIDIA, ce qui était pratique pour effectuer des tests. Mais il ne va certainement pas acheter une version de Windows 11. | |||
* Ubit Umarov pense que certaines personnes sont revenues à '''Windows 7'''. | |||
=== Conséquences === | |||
* Tout le monde ne dispose pas d'une machine qui répond aux spécifications requises. | |||
* La version 11 est nulle. | |||
* Andrew Hellershanks se demande si la fin de windows 10 aura un impact important sur les grilles OpenSim existantes. | |||
* Cuga Rajal n'a besoin que de deux applications, donc il les virtualise. | |||
== Démarrage sécurisé et Linux == | == Démarrage sécurisé et Linux == | ||
* | * Ubit Umarov dit que maintenant, seuls les '''système Linux autorisés''' peuvent être démarrés sur les nouvelles machines. Le démarrage sécurisé est obligatoire. Mais avec cette option activée, il n'est possible de démarrer que certaines distributions officielles (Fedora, Debian, Ubuntu et quelques autres). | ||
* Ces distributions doivent être '''correctement signées''' comme les applications Apple. | |||
== Démarrage sécurisé et Apple == | == Démarrage sécurisé et Apple == | ||
* | * Gavin Hird dit qu'Apple permet toujours de démarrer ce que l'utilisateur veut à l'aide d'un '''commutateur'''. En fait, Apple a modifié le chargeur d'amorçage pour permettre le démarrage de Linux sur ses machines basées sur ARM. | ||
* Mais Cuga Rajal dit que cela a pris fin quand ils sont passés à [https://en.wikipedia.org/wiki/Apple_silicon '''Silicon'''] et qu'il faut utiliser '''un chargeur d'amorçage''' basé sur Mac pour le tromper et démarrer Linux. C'est très compliqué et cela n'est possible qu'avec le hack de démarrage [https://fr.wikipedia.org/wiki/Asahi_Linux '''Asahi Linux''']. Sur les derniers Mac, si vous voulez revenir à une seule partition après Linux, vous devez l'apporter à l'Apple Store pour qu'ils effacent le chargeur d'amorçage. | |||
== OSCC 2025 == | == OSCC 2025 == | ||
| Ligne 46 : | Ligne 92 : | ||
== Burning Man virtuel sur Second Life == | == Burning Man virtuel sur Second Life == | ||
* Cuga Rajal annonce que le Burning Man virtuel de Second Life a lieu cette semaine et ce week-end. Il dit que c'est l'une des rares choses auxquelles il participe sur Second Life. | * Cuga Rajal annonce que le '''Burning Man virtuel''' de Second Life a lieu cette semaine et ce week-end. Il dit que c'est l'une des rares choses auxquelles il participe sur Second Life. | ||
= Viewers= | = Viewers= | ||
Dernière version du 27 janvier 2026 à 16:01
Changements du code de la semaine
Modification à l'utilisation de la classe ReaderWriterLockSlim
Commits
- Commit d6c83a : Simplifier DoubleDictionaryThreadAbortSafe car Lexique_des_réunions#dotnet '''.NET''' n'a plus Thread.Abort. Le nom n'est pas incorrect, mais je le garde pour l'instant.
- Commit c69eca : Plus sur ReaderWriterLockSlim et thread.abort.
NDLR :
|
- Ubit Umarov a apporté une petite modification à l'utilisation de ReaderWriterLockSlim.
Fonctionnement de l'ancien code
- Lorsqu'un thread était abandonné à l'aide de Thread.Abort et qu'il avait acquis un verrou, il risquait d'être interrompu avant que le verrou ne soit libéré.
- Dans ce cas, d'autres threads partageant les mêmes ressources et tentant d'y accéder étaient parfois (dans de rares cas) bloqués indéfiniment. Cela pouvait conduire à une situation où le programme se figeait ou ne répondait plus.
- Pour éviter cela, le code marquait le verrou avec un flag et incluait une routine dans un bloc try, qui s'assurait que, même si un thread devait être abandonné, il exécutait un bloc de code qui libérait le verrou.
Modification apportée
- Comme .NET n'a plus thread.abort, Ubit Umarov a supprimé ce code de protection.
Discussion
- Vincent Sylvester pense que ne pas avoir la possibilité de tuer un thread bloqué semble régressif. Tuer des threads comme ça n'est pas génial, mais avoir du code bloqué l'est encore moins. D'après lui, supprimer des éléments pour éviter les erreurs n'est pas une bonne solution. Il va devoir voir cela, car le nouveau code maptile utilise Thread.Abort en cas de blocage.
- Le développeur est censé écrire du code qui ne casse pas dès le départ, mais beaucoup de choses dépendent de dépendances externes qui sont hors de son contrôle. Alors, oui, c'est une solution de dernier recours, mais c'est une solution.
- Ubit Umarov pense que l'abandon des threads est une mauvaise chose. Tout d'abord, Thread.Abort provoquait de nombreuses alertes et avertissements. Ensuite, le code de Framework.NET n'est pas conçu pour gérer correctement les abandons de thread avec des conséquences graves comme lorsque des ressources ne sont pas libérées.
- Il dit qu'OpenSim utilise Thread.Abort seulement avec Watchdog pour tuer les threads expirés.
- La seule façon de tuer un thread maintenant est de lui demander de se fermer, ou à la sortie du programme. Mais l'abandon de thread est mauvais dans tous les cas, c'est une solution de dernier recours.
- L'utilisation de Thread.Abort pourrait passer avec le pool smartthread, mais ça peut être assez mauvais avec le pool du framework ou les tâches asynchrones.
- Ubit Umarov dit que ces problèmes sont une raison de ne pas utiliser dotnet sur des projets sérieux.
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
Problèmes des connecteurs de base de données
- Vincent Sylvester a du mal de se plonger dans les connecteurs de base de données pour OpenSim. Il a aussi effectué quelques tests sur les écritures dans la base de données, mais il n'a pas encore tout à fait terminé.
- PostgreSQL et SQLite posent des problèmes.
- Ubit Umarov a réussi à corriger le problème de MySQL, mais qui sait combien de temps cela va durer ? 2024-05-07 : Connecteur MySQL 8.3.0.
Tests
Test de régression
Le test
- Cuga Rajal a fait un test de régression avec les dernières versions de Dotnet 8 et Opensim à partir du tronc pour voir quelles versions de macOS fonctionnent encore.
Résultat
- Tout fonctionne toujours sous macOS 10.15 (Cataliba) y compris les bibliothèques non gérées.
- La documentation de dotnet 8 ne mentionnait pas la compatibilité avec les versions antérieures de macOS, mais c'est la cas.
Informations
Architecture 32 bits
Motif de la discussion
- Les mise à jour de distribution Linux avec prise en charge des systèmes 32 bits pour Intel sont rares.
- Firefox a supprimé sa version 32 bits.
- Même Raspberry Pi est désormais en 64 bits.
- Seuls des petits appareils embarqués à faible consommation utilisent cette architecture.
- Ubit Umarov se demande pourquoi ils suppriment tous les versions 32 bits alors qu'on continue à utiliser des puces [ARM qui deviennent inutiles.
Discussion / Histoire
- Ubit Umarov pense que beaucoup de choses n'ont pas besoin de 64 bits et que même OpenSim fonctionnait mieux en 32 bits en utilisant la moitié de la mémoire. Mais, 32 bits sous Win64 signifiait 2 Go par processus alors que sur Win 32 bits, c'était 2 Go pour tout. Donc, avec 32 bits la mémoire est plus contraignante et elle est partagée entre tous les processus.
- Andrew Hellershanks travaille encore avec certains systèmes embarqués qui fonctionnent avec des cartes 32 bits.
- Vincent Sylvester dit que beaucoup de composants 32 bits existent encore, ils ont simplement été retirés de la gamme principale, mais cela ne signifie pas qu'il n'est plus possible de se les procurer et de créer une image pour ces appareils, cela demande simplement plus de travail.
- Ubit Umarov dit que Intel a survécu aussi longtemps parce qu'il a maintenu la compatibilité. C'est en partie pour cela qu'ils ont battu Motorola, à l'époque des Intel 8086 / Motorola 68000. Il pense que Motorola 68000 était bien meilleur.
- Andrew Hellershanks ajoute que cela dépendait en partie de ce qui était commercialisé en premier et du prix des puces.
- Le gouvernement américain a acheté 10% d'Intel pour 8,9 milliards de dollars américains. Ensuite Nvidia en a également acheté beaucoup.
- Vincent Sylvester dit qu'il essaie de ne pas penser à la situaltion actuelle qui lui semble vraiment dystopique.
Windows 10 et 11 et puce TPM
Mise à jour vers Windows 11
- L'ordinateur portable de Andrew Hellershanks lui indique qu'une mise à jour est disponible. Il ne pense pas avoir assez d'espace disque libre pour l'installer. Il faudrait 20 Go. De plus, il dit qu'il ne pense pas avoir TPM dans le BIOS pour le démarrer. Mais Vincent Sylvester indique que TPM ni de démarrage sécurisé pour installer Windows 11. Ce ne sont que des indicateurs qui peuvent être contournés. Microsoft tente de lutter contre les milliers d'utilisateurs mécontents qui disposent de suffisamment de connaissances collectives pour démanteler l'ensemble du noyau s'ils le jugent nécessaire. Microsoft ment comme un arracheur de dents. Beaucoup de systèmes anti-triche sont parfaits pour rootkitter une machine afin qu'un pirate puisse implanter une porte dérobée dans le BIOS.
- Windows 11 attend Ubit Umarov, mais il n'est pas sûr de vouloir faire cette mise à jour. Il dit qu'il ne sait pas ce que font les mises à jour. Il ne pense pas avoir TPM.
Garder Windows 10
- Vincent.Sylvester a payé 30 dollars à Microsoft pour garder Windows 10 avec des mises à jours pendant une année. Il va rester sur Windows 10 pendant 1 an voire plus.
- Ubit Umarov lui dit que la dernière mise à jour était destinée à tuer Windows 10 et pas à l'installer.
Solutions de repli
- Gavin Hird a installé Debian 13 sur la partition de Windows 10. Il dit que ça ne le remplacera pas. Cette machine est équipée à la fois d'une carte graphique Intel et d'une carte graphique NVIDIA, ce qui était pratique pour effectuer des tests. Mais il ne va certainement pas acheter une version de Windows 11.
- Ubit Umarov pense que certaines personnes sont revenues à Windows 7.
Conséquences
- Tout le monde ne dispose pas d'une machine qui répond aux spécifications requises.
- La version 11 est nulle.
- Andrew Hellershanks se demande si la fin de windows 10 aura un impact important sur les grilles OpenSim existantes.
- Cuga Rajal n'a besoin que de deux applications, donc il les virtualise.
Démarrage sécurisé et Linux
- Ubit Umarov dit que maintenant, seuls les système Linux autorisés peuvent être démarrés sur les nouvelles machines. Le démarrage sécurisé est obligatoire. Mais avec cette option activée, il n'est possible de démarrer que certaines distributions officielles (Fedora, Debian, Ubuntu et quelques autres).
- Ces distributions doivent être correctement signées comme les applications Apple.
Démarrage sécurisé et Apple
- Gavin Hird dit qu'Apple permet toujours de démarrer ce que l'utilisateur veut à l'aide d'un commutateur. En fait, Apple a modifié le chargeur d'amorçage pour permettre le démarrage de Linux sur ses machines basées sur ARM.
- Mais Cuga Rajal dit que cela a pris fin quand ils sont passés à Silicon et qu'il faut utiliser un chargeur d'amorçage basé sur Mac pour le tromper et démarrer Linux. C'est très compliqué et cela n'est possible qu'avec le hack de démarrage Asahi Linux. Sur les derniers Mac, si vous voulez revenir à une seule partition après Linux, vous devez l'apporter à l'Apple Store pour qu'ils effacent le chargeur d'amorçage.
OSCC 2025
- L'appel à propositions pour la conférence communautaire OpenSimulator est bientôt clôturé. Lyr Loboo fait un dernier appel à propositions.
- Elle a établi un calendrier provisoire qu'elle corrige avant de l'envoyer pour qu'il soit accepté.
Burning Man virtuel sur Second Life
- Cuga Rajal annonce que le Burning Man virtuel de Second Life a lieu cette semaine et ce week-end. Il dit que c'est l'une des rares choses auxquelles il participe sur Second Life.
Viewers
Dayturn
- La dernière mise à jour de Win10 a complètement détruit une installation test de Gavin Hird. Il a finalement renoncé à la réparer et à la réinstaller, les pilotes sont introuvables.
Source
https://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2025-10-21