Troubleshooting
From OpenSimulator
m |
|||
Line 163: | Line 163: | ||
[[Category:Getting Started]] | [[Category:Getting Started]] | ||
+ | |||
+ | == Networking and config issues == | ||
+ | === You are able to log in, but not connect to a Region from a remote client === | ||
+ | Look in your OpenSimulator/bin/Regions folder | ||
+ | |||
+ | 1) Try 0.0.0.0 for the internal_ip_address in your region.xml(default.xml) file | ||
+ | (you'll have one of those files *per* region you've created) | ||
+ | 2) external_host_name="127.0.0.1" will need to be changed to the accessable DNS name | ||
+ | such as "opensim.example-host.com" or "71.6.131.152" (your public accessable ip) | ||
+ | |||
+ | See also [OpenSim:Connecting] |
Revision as of 04:06, 10 February 2008
This page gives any system-specific configuration settings that may be useful, and advice for problems that might be encountered.
System-specific configuration
CentOS 5
To install mono and nant, you can use the "Linux Installer for x86" found at http://www.mono-project.com/Downloads.
SVN can be installed by:
yum install subversion
Mono defaults to installing into /opt, so you may have to add this path to your environment variables, for example, in your ~/.bashrc:
export PATH="/opt/mono-1.2.5/bin:$PATH" export PKG_CONFIG_PATH="/opt/mono-1.2.5/lib/pkgconfig:$PKG_CONFIG_PATH" export MANPATH="/opt/mono-1.2.5/share/man:$MANPATH" export LD_LIBRARY_PATH="/opt/mono-1.2.5/lib:$LD_LIBRARY_PATH"
After changing LD_LIBRARY_PATH, you should update the dynamic linker cache:
ldconfig
You may still encounter the "The current runtime framework 'mono-2.0' is not correctly configured in the NAnt configuration file." error listed below. In that case, this may fix this:
yum install glib
If you are running a firewall as well (i.e., if iptables -L shows a list of ACCEPT and REJECT rules), you'll have to open the necessary ports if you want to access the sim from other machines. For standalone mode:
iptables -I RH-Firewall-1-INPUT -p tcp --dport 9000 -j ACCEPT iptables -I RH-Firewall-1-INPUT -p udp --dport 9000 -j ACCEPT
Debian 4.0r0
If you set your system to use unstable sources, and then install some packages listed below, everything should just work. To use unstable sources, modify your /etc/apt/sources.list file, replacing 'etch' or 'stable' with 'unstable':
deb ftp://ftp.debian.org/debian/ unstable main deb-src ftp://ftp.debian.org/debian/ unstable main
Then update your packages to the new versions:
apt-get update apt-get dist-upgrade
This will probably change a large number of packages, and may break things. In my experience, however, if you do not use unstable sources then the packages are not up to date enough, and you run into version issues, which lead to two DllNotFoundException errors below appearing in the console output: gdiplus.dll and libopenjpeg-libsl-2.1.2.0.so.
Once the sources are updated, we need to install the necessary packages to be able to build OpenSim:
apt-get install subversion mono nant mono-gmcs mono-mjs libmono-microsoft8.0-cil libmono-system-runtime2.0-cil
If any of these packages are missing, you'll probably encounter one of the errors listed below. However, with these packages, OpenSim should build cleanly.
Gentoo
some Mono dependency & latest Mono itself may use "~x86" masked packages (assuming x86 is your platform, change may be made to reflect your ex:"~amd64" for 64bits). You could check for USE parameter with:
ACCEPT_KEYWORDS="~x86" emerge -vp subversion nant mono libgdiplus
Ten install with:
ACCEPT_KEYWORDS="~x86" emerge subversion nant mono libgdiplus
N.B: The ACCEPT_KEYWORDS="~x86" can be set in Gentoo /etc/make.conf file, but that turn up all the emerges in testing/unstable, using it at the begining of emerge command line use it only for current emerge process
Mac OS X
This assumes you're using the universal binary for mono from the Mono Project site.
After installing mono, you may need to update your pkg-config path. I set this in ~/.bash_profile:
export PKG_CONFIG_PATH="/Library/Frameworks/Mono.framework/Versions/1.2.5.1/lib/pkgconfig/:${PKG_CONFIG_PATH}"
Errors and fixes
Build workarounds due to non-functionality or bugs:
Disappearing prims due to duplicate UID's
Tracked in Mantis [# 347]
Generally this problem occurs when the same save-xml2/load-xml2 file is loaded in adjacent regions, and it is caused by duplicate UID's. There is a switch to resolve this when loading your prims, documented in the general server commands section. (load-xml2 <filename> -newUID). But if this does not work, the other way is to shift-copy your build and drag it up into the air.. then delete the one in the air, leaving the "original" (which is actually the copy). This will generate new UID's on all your prims.. you can now leave that build, and load your original load-xml2 file in another region.
Linked objects not scaling/editing properly
From Mantis [# 135] and [# 223]:
Linked objects: while linking/unlinking objects seems to work fine, the editing of single prims inside a linked object doesn't work correctly. You have to check the box "Edit linked parts", then you can select a single prim and edit it, but in most cases the changes in size- and/or postion-parameters are not accepted and revert immediately to the original ones. It is not completely reproducible, as it may work in some single case though.
Workaround: unlink the whole object, make the changes, and relink the whole thing again.
note: re-scaling unlinked objects in grid mode seems to work better than in standalone.
Exception and loss of ode physics System.EntryPointNotFoundException: dSpaceLockQuery
The following is usually caused by using the wrong version of libode. First try find / -name "libode.so" to see if you have other copies of the ode physics engine. Then make sure you have the latest version of this.
[SCENE] [02-01 22:20:40] System.EntryPointNotFoundException: dSpaceLockQuery
at (wrapper managed-to-native) Ode.NET.d:SpaceLockQuery (intptr) at OpenSim.Region.Physics.OdePlugin.OdeScene.waitForSpaceUnlock (IntPtr space) [0x00000] at OpenSim.Region.Physics.OdePlugin.OdeCharacter.AvatarGeomAndBodyCreation (Single npositionX, Single npositionY, Single npositionZ, Single tensor) [0x00000] at OpenSim.Region.Physics.OdePlugin.OdeCharacter..ctor (System.String avName, OpenSim.Region.Physics.OdePlugin.OdeScene parent_scene, OpenSim.Region.Physics.Manager.PhysicsVector pos) [0x00000] at OpenSim.Region.Physics.OdePlugin.OdeScene.AddAvatar (System.String avName, OpenSim.Region.Physics.Manager.PhysicsVector position) [0x00000] at OpenSim.Region.Environment.Scenes.ScenePresence.AddToPhysicalScene () [0x00000] at OpenSim.Region.Environment.Scenes.ScenePresence.MakeRootAgent (LLVector3 pos, Boolean isFlying) [0x00000] at OpenSim.Region.Environment.Scenes.Scene.AgentCrossing (UInt64 regionHandle, LLUUID agentID, LLVector3 position, Boolean isFlying) [0x00000]
MySQL connection errors after about 6-8 hours
MySQL has a timeout which drops the connection after 28,800 seconds of inactivity. So increase this to 31536000. Using set global wait_timeout=31536000; from the mysql console if you get these erros.
System.DllNotFoundException: gdiplus.dll
First, check to make sure that libgdiplus.so is known to the dynamic linker:
/sbin/ldconfig -p | grep libgdiplus
If nothing is found, make sure that the directory libgdiplus.so exists in is either in your LD_LIBRARY_PATH environment variable or listed in a *.conf file (e.g., gdiplus.conf) in /etc/ld.so.conf.d/. Then run ldconfig to update the cache. Then it should be able to find the library.
You may still have the above error, however, since libgdiplus also depends on other dynamic libraries, and if they fail to load, libgdiplus will fail. To test for this, run OpenSim with debugging information turned on:
MONO_LOG_LEVEL=debug mono OpenSim.exe
It may show errors loading other libraries, like libexif.so.9. In that case, linking to an existing version of the offending library may work:
ln -s libexif.so.12 libexif.so.9
(Is there a cleaner solution than this?) (Isn't this backwards shouldn't be 'ln -s libexif.so.9 libexif.so.12'))
The assembly mscorlib.dll was not found or could not be loaded
This indicates that you are missing one of the mscor libs that comes with nant. This is easily solved by getting NAnt, which comes with both versions 1.0 and 2.0 of the required lib.
apt-get install nant
External Program Failed: /usr/lib/pkgconfig/../../lib/mono/2.0/gmcs.exe
This is quickly fixed by retrieving mono-gmcs.
apt-get install mono-gmcs
The type or namespace name JScript does not exist in the namespace Microsoft
Note that it says Jscript over and over again. Hint perhaps?
apt-get install mono-mjs libmono-microsoft8.0-cil
On Fedora, the needed package is mono-jscript
The type or namespace name Tcp does not exist in the namespace System.Runtime.Remoting.Channels
This one is taken care of with a quick install:
apt-get install libmono-system-runtime2.0-cil
If you start with a base Debian system as we did at the top of the page, but instead of using the apt version of mono you use the installer from their website, then you may encounter this issue.
After getting the .bin file from http://www.mono-project.com/Downloads, and executing it as per its instructions, upon finishing, you may find that if you try to run `mono --version` you are presented with this message. This one means you need to install 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.
This one seems to be fixed by retrieving the apt version of nant.
apt-get install nant
This can also be due to pkg-config not being able to locate the mono.pc file. Adding the directory containing this file to the environment variable PKG_CONFIG_PATH may solve this.
Networking and config issues
=== You are able to log in, but not connect to a Region from a remote client === Look in your OpenSimulator/bin/Regions folder
1) Try 0.0.0.0 for the internal_ip_address in your region.xml(default.xml) file (you'll have one of those files *per* region you've created) 2) external_host_name="127.0.0.1" will need to be changed to the accessable DNS name such as "opensim.example-host.com" or "71.6.131.152" (your public accessable ip)
See also [OpenSim:Connecting]