This changeset fixes a race condition where a script (XEngine run) can
startup before a reference is added to it in all of the required
places in the XEngine class. The effect of this is that a script can
sometimes on startup miss script events. For example a script which
starts up and initialises itself from a notecard may never receive the
dataserver event containing the notecard information.
The patch isn't as clean as I'd like - I've split the constructor of
ScriptInstance up so it does everything it did before except
call Startup and post events like state_entry and on_rez. An Init
function has been added which is called after the ScriptInstance
object has been added to the necessary data structures in XEngine.
Happy to rework it if someone suggests a better way of doing it.
Adding Oarfileloaded and EmptyScriptCompileQueue event support which
allows (with a module) for programmatic notification of when a region
objects and scripts are up and running after a server start or
load-oar.
* Console command help should be output to the console, not to the log (as "help" does it already). That allows getting help/answers even if you only log into a file.
Fixes Mantis#2916.
* Increases the number of ImageDataPackets we send per PriorityQueue pop and tweak it so that the number of packets is ( (2 * decode level) + 1 ) * 2, and (((2 * (5-decode level)) + 1) * 2). The first one sends more data for low quality textures, the second one sends more data for high quality textures.
* Added Npgsql.dll and Mono.Security.dll which are NpgsqlDriver dlls.
* Added missing field to schema creation scripts: PathTaperY.
* Added schema creation scripts for PostgreSQL.
* Added unit test classes for PostgreSQL.
* Added schema creation script folder to NHibernate project in prebuild.xml
* Added Npgsql.dll to NHibernate test project dependencies in prebuild.xml
* Ensured that build works with both nant and Visual Studio.
* Executed build unit tests with nant and NHibernate unit tests with NUnitGUI
- Couple of region tests fail due to double precission float rounding errors need to sort out how these are handles in unit tests and if higher precission numeric field needs to be used in Postgresql.
* No functional change
* It strikes me that there may be caps problems if double registration is presented if cleanup failed for a previous agent (so a caps handler will remain in memory for that
agent but with a different seed). This needs investigation
this patch makes load-oar a bit more tolerant to irrelevant
differences in the oar file format. Directory entries are now ignored
rather than trying to interpret them as files they hold which results
in the load-oar failing. This change makes it easier to manually
modify oar files.
* Often times now the only reason OpenJpeg doesn't work is because it requires Glibc 2.4 The error messages reflect that.
* In J2kDecoder module, It stops trying to decode modules if it encounters a dllnotfound exception and instead sends a full resolution layer that causes the texture sender to only send the full resolution image. (big decrease in texture download speed, but it's better then nasty repeating error messages)
* Allows different assemblies to be used in NHibernateManager, which makes it possible to use mapping and migration files in different assemblies.
* Thanks mpallari!
* Since this is a db change, as always I strongly recommend that you backup your database before updating to this revision
* Haven't touched MSSQL in case I get it wrong - looking for some kind soul to take care of this.
sceneB
* However, I'm not convinced that the actual process in the test completely reflects reality, and a lot of stuff had to be rigged up (which should get resolved over time)
Console Command: link-mapping <StartXloc> <StartYloc>.
This results in only the last two digits of any of the locations defined in the xml file being used, and those 0-99 values being added to the StartXloc and StartYloc figures.
For more infomation, see the email on the mailing list and the soon to be added instructions on the wiki's hypergrid page.
Also made the Secion Names in xml file case insensitive.
* Added an additional lock in GetScenePresences()
* Changed ForEachClient to use GetScenePresences() instead of the main ScenePresences dictionary, so that there is no need to lock.
TODO: Add a initial startup option for setting the uri and making it autoload it.
Add support for scanning the xml file to check that its own region(s) aren't in the list, and if they are, ignoring them. This would allow setting up "virtual link/grid lists" on webservers, that people can add their own regions to and also point those regions to those same lists, so they load the other region's data.
Add support for automapping of those region/link lists.
* There appears to be a bug on mono 1.9.1 (and maybe later), where sometimes the async wait will be signalled even though that async callback has not executed
* This change may make it slightly better but it's difficult to tell (it definitely still occurs)
* Also this patch closes the wait handle explicitly, as recommended in the MSDN docs. This doesn't have any impact on the bug though
* The position will be reset if the connection turns out to be a root one, and since the client is already authenticated another authentication will not occur anyway
* In fact, it would only be activated if there was no [Communications] section at all (which would be the case for most people with existing region setups unless they
specifically added it in
* This fix means that enabling inter-region rest comms is now the default
* CapsUtil.GetRandomCapsObjectPath(); contains a / and the regionInfo.httpServerURI contains a / so that makes
* response.SeedCapability = regionInfo.httpServerURI + CapsUtil.GetCapsSeedPath(capsPath); contain two "//" leading to a seed caps path definition like //CAPS/f7ba4238-ec86-4a2b-b3f6-4d9b56070000/, which is wrong
The attached patch adds the automatic granting of PERMISSION_CONTROL_CAMERA
on request to a script when an avatar is sitting on the object that the script
resides in.
It also automatically removes PERMISSION_TAKE_CONTROLS and PERMISSION_CONTROL_CAMERA
from the scripts when an avatar stands up. It doesn't remove the other automatically
granted permissions but this follows LL server behavior. Removing these two
permissions avoids some potential race conditions (accidentally taking
control after the avatar has stood up) which may be why LL put
them in the first place.
Cleaned up schema creation scripts of MySQL to compliant form and created
SQLite scripts from them. In future it would be optimal if scripts from
different databases could be generated from MySQL scripts to ensure optimal
consistency between schemas of different databases. Did not yet review
column names. ID columns seem to have variety in naming which can be confusing.
I'll be writing some instructions on its use as part of a more general article on various methods of creating better initial avatars for new users. Which will include some code samples, but as each grid has its own requirements, there will be no out of the box solution included.
are multiple messages in a second and that is usually (in my experience) meaning
the logging itself is slowing down the program. Leaving the unsuccesful message
as we need to know about that path.
Fixed all NHibernate unit tests by implementing missing persistency
methods, tables, columns and fixing bugs in the existing implementation.
Two minor changes to classes outside NHibernate module: Added Scene
instantiation for SceneObjectGroup in OpenSim.Data.Tests.BasicRegionTest
as this was required by the NHibernate persistency. In the process added
also mock constructor to Scene which only populates RegionInfo in the scene
which is used by ScenePart.RegionUUID. NHibernate module is still in
experimental state and has not been tested at opensim region or ugaim runtime
configuration. Adding unit tests to build is not yet advisable nor using
NHibernate module in any production setup.