Troubleshooting/fr
From OpenSimulator
Retour au Sommaire
Cette page donnne des configurations specifiques a certains systèmes qui peuvent etre utiles et des conseils pour des problèmes pouvant être rencontrés.
Conseils généraux
Si OpenSimulator démarre jusqu'au stade où vous pouvez taper des commandes dans la console de la région, alors vous pouvez connaître la configuration du simulateur en utilisant les commandes "config get" et "config save" comme détaillé à la page Server Commands. (et en tapant help dans la console). Cela peut être utile pour supprimer une erreur de configuration lors du diagnostic de certains problèmes.
Assurez-vous également que vous exécutez les bonnes versions du runtime .NET et de la base de données. Voir la Configuration#Database pour avoir des informations sur les versions des bases de données. Vous devez aussi utiliser .NET 3.5 ou plus. .NET 2.0 ne possède pas de System.Core. Si vous utilisez Windows .NET, téléchargez simplement la mise à jour 3.5 ou 4. Si vous utilisez Mono, vous devrez mettre à jour votre version de Mono.
System-specific configuration
CentOS 5 (64bit)
If you are running Mono 2.2 compiled from source on CentOS 5.2 64bit (not sure if it applies to other scenarios as well), you need to take these steps:
sudo yum install libgdiplus sudo yum install libexif sudo ln -s /usr/lib64/libgdiplus.so.0 /usr/lib64/libgdiplus.so ldconfig
Cela m'a finalement permis de faire tourner OpenSimulator sans erreurs, et même de me connecter à d'autres grilles.
Gentoo
certaines dependances de Mono et le dernier Mono devraient utiliser les packages masqués de "~x86" (en assumant que votre plateforme soit un x86 , le changement peut etre effectué pour apparaitre comme ex:"~amd64" pour 64bits). Vous pouvez verifier pour le parametre USE avec:
ACCEPT_KEYWORDS="~x86" emerge -vp subversion nant mono libgdiplus
Ensuite installez avec:
ACCEPT_KEYWORDS="~x86" emerge subversion nant mono libgdiplus
N.B: The ACCEPT_KEYWORDS="~x86" peut etre changé dans le fichier Gentoo /etc/make.conf, mais ceci change les valeurs dans testing/unstable, en l'utilisant au debut de la ligne de commande seulement pour le process emergeant
Mac OS X
Si vous obtenez des erreurs concernant le framework 2.0 qui n'est pas supporté, vous devrez peut-être mettre à jour votre chemin pkg-config. Par exemple, vous pouvez le définir dans ~/.bash_profile :
Par exemple, vous pouvez le définir dans ~/.bash_profile:
export PKG_CONFIG_PATH="/Library/Frameworks/Mono.framework/Versions/Current/lib/pkgconfig/:${PKG_CONFIG_PATH}"
Erreurs et corrections
Erreurs de connexion MySQL après environ 6-8 heures
MySQL dispose d'un délai d'attente qui interrompt la connexion après 28 800 secondes (8 heures) d'inactivité, ce qui entraînera probablement un échec de la connexion après que le serveur utilisateur soit resté inactif pendant une longue période. Si vous rencontrez ce problème, augmentez le délai d'attente à quelque chose de plus grand, comme 604800 (1 semaine) ou 31536000 (1 an). Dans la console mysql, tapez :
set global wait_timeout=604800;
System.DllNotFoundException: gdiplus.dll
D'abord verifiez d'etre sur que libgdiplus.so est connu en tant que gestionnaire de lisaisons dynamique:
/sbin/ldconfig -p | grep libgdiplus
Si rien n'est trouvé, verifiez bien que le dossier libgdiplus.so existe ou bien dans votre variable LD_LIBRARY_PATH ou listé dans un fichier *.conf file (e.g., gdiplus.conf) dans /etc/ld.so.conf.d/. Ensuite lancez ldconfig pour mettre a jour le cache. Ensuite, il devrait etre capable de trouver la librairie.
Vous devriez toujours avoir l'erreur ci dessus, cependant depuis que libgdiplus depend aussi d'autres librairies dynamiques, et si elles ont echoué au lancement, libgdiplus echouera. Pour tester cela, lancez OpenSimulator avec les informations de debug activées:
MONO_LOG_LEVEL=debug mono OpenSim.exe
Sous Mac OS X - vérifiez que le fichier suivant existe... /opt/local/lib/libgdiplus.dylib si c'est le cas, en tant qu'utilisateur root, éditez le fichier /opt/local/etc/mono/config et ajoutez la ligne suivante
<dllmap dll="gdiplus.dll" target="/opt/local/lib/libgdiplus.dylib" os="!windows"/>
Migration de la base de données Opensim / MySQL de Windows à Linux
MySql.Data.MySqlClient.MySqlException : La table 'opensim.UserAccounts' n'existe pas.
Environnement : Opensim Server 0.7.0.2 derrière Linux Ubuntu 8.0.4 avec mono 2.8 et MySQL 5.0 installés.
Quand vous migrez une base de données Opensim 0.7 fonctionnant avec MySQL 5.0 sous Windows vers Linux, lors de la connexion d'un utilisateur dans le serveur Opensim, vous pouvez recevoir l'exception suivante dans la console du serveur Opensim :
03:11:10 - [LLOGIN SERVICE]: Exception processing login for (user_name): MySql.Data.MySqlClient.MySqlException: Table 'opensim.UserAccounts' doesn't exist at MySql.Data.MySqlClient.MySqlStream.OpenPacket () [0x00000] in <filename unknown>:0 at MySql.Data.MySqlClient.NativeDriver.ReadResult (System.UInt64& affectedRows, System.Int64& lastInsertId) [0x00000] in <filename unknown>:0 at MySql.Data.MySqlClient.MySqlDataReader.GetResultSet () [0x00000] in <filename unknown>:0 at MySql.Data.MySqlClient.MySqlDataReader.NextResult () [0x00000] in <filename unknown>:0 at MySql.Data.MySqlClient.MySqlStream.OpenPacket () [0x00000] in <filename unknown>:0 at MySql.Data.MySqlClient.NativeDriver.ReadResult (System.UInt64& affectedRows, System.Int64& lastInsertId) [0x00000] in <filename unknown>:0 at MySql.Data.MySqlClient.MySqlDataReader.GetResultSet () [0x00000] in <filename unknown>:0 at MySql.Data.MySqlClient.MySqlDataReader.NextResult () [0x00000] in <filename unknown>:0 |
Dans le client, vous recevez également l'erreur suivante :
Login Failed Error generating Login Response
Cette exception est causée par la façon dont MySQL stocke les noms des tables. Sur un serveur MySQL Windows, les noms des tables ne sont pas sensibles à la casse, mais toutes les tables dans MySQL Linux sont sensibles à la casse par défaut, donc quand OpenSimulator veut les trouver dans la base de données avec des noms en premières majuscules, il ne peut pas les trouver.
Une solution serait de changer les noms des tables requises par opensim (ALTER TABLE's), mais la solution la plus propre est de changer la configuration de MySQL, en vérifiant l'option "lower_case_sensitive = 1" dans le fichier "/etc/mysql/my.cnf", section [mysqld].
# sudo nano /etc/mysql/my.cnf .......................... [mysqld] .......................... lower_case_sensitive=1 ..........................
Cela permet à MySQL de traduire automatiquement les noms de tables en minuscules. Après avoir redémarré le serveur MySQL et OpenSim, les tables sont chargées sans problème.
Attention : n'essayez pas d'effacer la table migration' pour forcer opensim à re-migrer votre base de données, car cela provoquera un dégât sur votre base de données.
Erreurs dues à des migrations de données incomplètes
Cela peut se produire lors des mises à jour de version si, pour une raison quelconque, une migration de base de données échoue lorsqu'il y a un changement dans la façon dont OpenSimulator stocke les données.
Vous pouvez voir des erreurs sur la console OpenSimulator comme :
[LLOGIN SERVICE]: Exception processing login for [username]: MySql.Data.MySqlClient.MySqlException: Table 'opensim.UserAccounts' doesn't exist at MySql.Data.MySqlClient.MySqlStream.OpenPacket () [0x00000] at MySql.Data.MySqlClient.NativeDriver.ReadResult (System.UInt64& affectedRows, System.Int64& lastInsertId) [0x00000] at MySql.Data.MySqlClient.MySqlDataReader.GetResultSet () [0x00000] at MySql.Data.MySqlClient.MySqlDataReader.NextResult () [0x00000] at MySql.Data.MySqlClient.MySqlStream.OpenPacket () [0x00000] at MySql.Data.MySqlClient.NativeDriver.ReadResult (System.UInt64& affectedRows, System.Int64& lastInsertId) [0x00000] at MySql.Data.MySqlClient.MySqlDataReader.GetResultSet () [0x00000] at MySql.Data.MySqlClient.MySqlDataReader.NextResult () [0x00000]
Dans ce cas, la table "users" n'avait pas été migrée vers la table "UserAccounts", comme l'attendait OpenSimulator, ce qui a également entraîné l'erreur côté viewer :
Login Failed Error generating Login Response
J'ai résolu le problème en corrigeant les permissions du système de fichiers qui causaient l'échec de la migration (sur ma machine Linux, '/var/lib/mysql/...' s'était embrouillé), puis en supprimant la table de migration et en relançant le serveur (d'après les avertissements de migration [non-critical] rencontrés, il y avait probablement un moyen plus précis de le faire, mais j'avais tout sauvegardé et j'ai fait ça à la va-vite). À part la perte des références des données de terrain et des données de silouhettesd'habillage et d'attachement (facilement restaurées dans la simulation), tout est résolu pour moi.
Lors de l'installation de mono ou libgdiplus0, il se peut que la dépendance libexif.so.9 soit manquante
Ceci a été indiqué pour Centos5 mais peut se produire sur d'autres systèmes, téléchargez ftp://rpmfind.net/linux/conectiva/snapshot/i386/RPMS.extra/libexif9-0.5.12-47547cl.i386.rpm et installez pour résoudre le problème. Vous pourrez maintenant installer mono (si tout va bien).
The assembly mscorlib.dll was not found or could not be loaded
Ceci indique qu'il vous manque une des librairies mscor qui viennent avec nant. Ceci est facilement resolu en recuperant NAnt, qui est fourni avec les version 1.0 et 2.0 de la librairie necessaire.
apt-get install nant
External Program Failed: /usr/lib/pkgconfig/../../lib/mono/2.0/gmcs.exe
Ceci est rapidement reparé en recuperant mono-gmcs.
apt-get install mono-gmcs
The type or namespace name JScript does not exist in the namespace Microsoft
Notez que cela dit Jscript en boucle. Un indice peut etre ?
apt-get install mono-mjs libmono-microsoft8.0-cil
Sur Fedora et OpenSUSE, le paquetage nécessaire est "mono-jscript".
The type or namespace name Tcp does not exist in the namespace System.Runtime.Remoting.Channels
Celui ci est pris en compte avec une rapide installation:
apt-get install libmono-system-runtime2.0-cil
Si vous demarrez un systèeme de base Debian comme nous avons fait en haut de cette page, mais à la place d'utiliser la version apt de mono vous utilisez l'installeur depuis leur site web, alors vous pouvez rencontrer ce probleme.
Après avoir obtenu le fichier .bin depuis http://www.mono-project.com/Downloads, et l'avoir installé en suivant les instructions, en lançant 'mono --version' vous aurez ce message. Vous devez installer libglib2.0-0.
apt-get install libglib2.0-0
The current runtime framework 'mono-2.0' is not correctly configured in the NAnt configuration file.
Celle ci semble être réparé en récupérant la version apt de nant.
apt-get install nant
Ceci peut aussi etre dû à pkg-config qui n'est pas capable de localiser le fichier mono.pc. Ajoutez le dossier qui contient ce fichier dans votre variable d'environnement PKG_CONFIG_PATH devrait resoudre le problème.
Problèmes de réseau et de configuration
Vous pouvez vous identifier, mais pas vous connecter à une région à partir d'un client distant.
J'obtiens un délai d'attente pendant handshake (établissement d'une liaison) de la région
Mon viewer est constamment déconnectée ou le mouvement de l'avatar est très mauvais (élastique, lag, etc.).
Compiler OpenSimulator
Je ne trouve aucun fichier de compilation ou de fichier solution
VS2005 ne veut pas ouvrir le fichier .sln
Exécuter OpenSimulator
L'exécution d'OpenSim.exe à partir d'un shell Cygwin refuse l'accès à certaines dll
Comment faire une recompilation propre ? (par exemple, après 'APPLICATION EXCEPTION DETECTED' ,après une recompilation avec des sources mises à jour)
L'entrée console d'OpenSim.exe est brouillée (scramblée) lorsqu'elle est exécutée avec mono sous Windows
Exceptions dans la console
System.DllNotFoundException: lib32/libopenjpeg-dotnet-2.1.3.0-dotnet-1-i686
System.DllNotFoundException: ./libopenjpeg-libsl-2.1.2.0.so
System.NullReferenceException at OpenSim.Region.Communications.Local.LocalLoginService.PrepareLoginToRegion
Exception: System.NotImplementedException: The requested feature is not implemented
Command error: System.IO.FileNotFoundException: Could not load file or assembly 'System.Core, Version=3.5.0.0, culture=neutral,PublicKeyToken=b77a5c561934e089' or one of its dependencies
Questions relatives aux scènes
Disparition de prims à cause de doublons d'UUIDs
Pourquoi mes genoux sont-ils pliés lorsque je suis au repos ?
Mon avatar semble bouger sans cesse et s'envoler de temps en temps sans que je puisse l'arrêter
Questions relatives à l'inventaire
Lorsque je crée une nouvelle peau et une nouvelle silhouette, le système devient fou en créant constamment de nouveaux assets
Questions relatives à la carte
J'ai des problèmes pour visualiser la carte du monde
Mode Grille
Je démarre la simulation et elle ne se connecte à aucune grille
Ma grille fonctionne bien avec un utilisateur, mais lorsque deux utilisateurs se connectent en même temps, les deux se bloquent
Après environ 20 minutes, ma région commence à prendre 100% du processeur et la ou les régions se bloquent
Hypergrid
Après avoir démarré OpenSimulator avec Hypergrid activé, mon inventaire ne se charge pas !
Questions relatives à la physique
Problèmes d'utilisation de OpenDynamicsEngine (ODE) de ubOde sur *nix
Exception et perte de la physique ODE (System.EntryPointNotFoundException : dSpaceLockQuery)
Question relatives au moteur de scripts
Lors du chargement d'un OAR ou au démarrage du simulateur, il se bloque avec StackOverflowException
J'obtiens "Primitive : Error compiling script : unknown char : . error" lors de la compilation du script
J'obtiens "Primitive: Error compiling script: ApplicationName='gmcs', ..." lors de la compilation du script
J'obtiens "gmcs: Cannot find the specified file" lors de la compilation du script
Problèmes local
OpenSimulator moderne (après 0.7.3) devrait correctement définir la locale en_US pour toutes les sauvegardes de données, ce qui est nécessaire pour la compatibilité entre simulateurs. Cependant, si vous rencontrez des problèmes avec de grandes quantités de données corrompues, vous pouvez essayer de régler votre machine locale sur en_US et soumettre un rapport de bogue.