Justin Clark-Casey (justincc)
056c9a59b2
Add assert to attachment regression tests to check that number of objects in the scene graph
2012-07-06 23:07:50 +01:00
Talun
ae1f2114f5
Mantis 6077 trim NPC chat on channel zero.
...
This patch trims leading and trailing spaces from NPC chat and
suppresses the sending of empty chat strings on open chat channel 0.
2012-07-06 22:49:18 +01:00
Talun
1b1f841c6a
Mantis 6063 osNpcTouch.
...
Allow NPCS to touch obects.
2012-07-06 22:37:19 +01:00
Justin Clark-Casey (justincc)
43a2da9edb
Pull prim crossing/teleport checks up into Scene.IncomingCreateObject() from Scene.AddObject()
...
Only IncomingCreateObject() needs these checks. General object adding does not need to perform crossing perm checks
2012-07-06 22:33:16 +01:00
Justin Clark-Casey (justincc)
f6e5791ecd
refactor: extract method UpdateUserInventoryWithAttachment() from AttachObject() for better code comprehension
2012-07-06 22:07:19 +01:00
Justin Clark-Casey (justincc)
843112340e
Log MONO_THREADS_PER_CPU value on simulator startup, or "unset" if it is not set
2012-07-06 00:37:45 +01:00
Justin Clark-Casey (justincc)
8674604ff5
regrade osFormatString, osMatchString and osReplaceString to VeryLow.
...
I can't see that these present any real hazard to sim functioning.
2012-07-05 21:10:59 +01:00
SignpostMarv
510e809aba
porting console commands from raw2sculpt 3.2
2012-07-05 00:16:31 +01:00
Justin Clark-Casey (justincc)
951b45b80f
Add OSSL function osForceAttachToAvatarFromInventory()
...
This works like osForceAttachToAvatar() but allows an object to be directly specified from the script object's inventory rather than forcing it to be rezzed in the scene first.
Still only attaches objects to the owner of the script.
This allows one to bypass the complicated co-ordination of first rezzing objects in the scene before attaching them.
Threat level high.
2012-07-05 00:05:06 +01:00
Justin Clark-Casey (justincc)
7b327848d0
Use GetInventoryItem() in llRezAtRoot rather than iterating through a cloned dictionary
2012-07-04 22:21:47 +01:00
Justin Clark-Casey (justincc)
2f998fce1f
refactor: In llGetNotecardLine() use existing GetInventoryItem() rather than inspecting a clone of the TaskInventory dictionary that was not cloned thread-safe
2012-07-04 22:00:39 +01:00
Justin Clark-Casey (justincc)
1816ecb747
refactor: In llGetNumberOfNotecardLines() use existing GetInventoryItem() rather than inspecting a clone of the TaskInventory dictionary that was not cloned thread-safe
2012-07-04 21:57:57 +01:00
Justin Clark-Casey (justincc)
eacba4fc0b
refactor: use existing GetInventoryItem() in GetScriptByName(), itself renamed from ScriptByName()
2012-07-04 21:54:30 +01:00
Justin Clark-Casey (justincc)
9fac7fd932
refactor: In llGetInventoryType() use existing GetInventoryItem()
2012-07-04 21:50:52 +01:00
Justin Clark-Casey (justincc)
f2b0377c28
refactor: In llGetInventoryCreator() use existing GetInventoryItem()
2012-07-04 21:49:21 +01:00
Justin Clark-Casey (justincc)
d933bdbd59
refactor: In llGetInventoryPermMask() use existing GetInventoryItem()
2012-07-04 21:47:20 +01:00
Justin Clark-Casey (justincc)
f9fa34408d
refactor: in llGetInventoryPermMask use existing GetInventoryItem()
2012-07-04 21:42:04 +01:00
Justin Clark-Casey (justincc)
857494f6bd
refactor: In llRemoteLoadScriptPin() use existing GetInventoryItem()
2012-07-04 21:36:44 +01:00
Justin Clark-Casey (justincc)
dff7cae2ee
refactor: replace use of LSL_Api.GetTaskInventoryItem() with existing GetInventoryItem()
2012-07-04 21:33:35 +01:00
Justin Clark-Casey (justincc)
0e3fce9b5c
refactor: In llGetInventoryKey() use existing GetInventoryItem()
2012-07-04 21:25:58 +01:00
Justin Clark-Casey (justincc)
4b2b14dad1
In llMessageLinked() use GetInventoryItems() rather than cloning TaskInventory directory
...
GetInventoryItems() returns a new list and so is equivalent, and creates this list under lock whereas Clone() is not thread-safe
2012-07-04 21:22:43 +01:00
Justin Clark-Casey (justincc)
3769739ca7
In llRequestInventoryData() use GetInventoryItems() rather than cloning TaskInventory directory
...
GetInventoryItems() returns a new list and so is equivalent, and creates this list under lock whereas Clone() is not thread-safe
2012-07-04 21:19:16 +01:00
Justin Clark-Casey (justincc)
3717812ce0
refactor: In llCollisionSound() use existing GetInventoryItem() method rather than have it iterate through TaskInventory itself.
2012-07-04 21:15:00 +01:00
Justin Clark-Casey (justincc)
ae64d089c6
refactor: In llRemoveInventory() use existing GetInventoryItem() method rather than have it iterate through TaskInventory itself.
2012-07-04 21:05:51 +01:00
Justin Clark-Casey (justincc)
58b13d51a7
refactor: make llGiveInventory() use existing GetInventoryItem() method rather than iterate through TaskInventory itself.
2012-07-04 20:57:48 +01:00
Justin Clark-Casey (justincc)
5691a8b860
refactor: rename Watchdog.WATCHDOG_TIMEOUT_MS to DEFAULT_WATCHDOG_TIMEOUT_MS to reflect what it actually is
2012-07-04 00:15:03 +01:00
Justin Clark-Casey (justincc)
f7b4802577
Correct spelling mistake m_BanedViewers to m_BannedViewers
2012-07-03 23:26:02 +01:00
Justin Clark-Casey (justincc)
8183c2926d
minor: Add some method doc to HasGroupChanged and Schedule GroupForFull/PartUpdate() to indicate when region modules need to invoke them
2012-07-03 23:19:11 +01:00
Justin Clark-Casey (justincc)
3c9b9a848f
Fix issue in database tests where sogs being stored are not in a scene.
...
This puts an extra m_part.ParentGroup.Scene == null check at the top of SceneObjectPartInventory.QueryScriptStates()
2012-07-03 22:58:58 +01:00
Michelle Argus
3399596e0e
Adds a list of viewers that are allowed or banned from the region.
...
Signed-off-by: Melanie <melanie@t-data.com>
2012-07-02 18:45:11 +01:00
Melanie
d32cf21576
Add preservation of running state of scripts when drag-copying.
2012-07-01 18:30:59 +01:00
Justin Clark-Casey (justincc)
1926de5a05
Remove some mono compiler warnings
2012-06-30 01:25:39 +01:00
Justin Clark-Casey (justincc)
a4551b027b
Removing unused handling of incoming create object by userID and itemID only.
...
It appears this was never actually used since attachments were rezzed in other code.
This was never available on remote simulator comms, only local.
2012-06-30 01:14:49 +01:00
Justin Clark-Casey (justincc)
56c776066c
Remove code listed for removal in 0.7.3 that handled script restart for incoming attachments from pre-fatpack regions (versions of OpenSimulator more than a year old)
2012-06-30 01:06:37 +01:00
Justin Clark-Casey (justincc)
0229e90dcc
Move update of the final optional ODE total frame stat inside the OdeLock rather than outside to avoid a very occasional race condition with the stat collection thread
2012-06-29 01:02:35 +01:00
Justin Clark-Casey (justincc)
e420f815dc
refactor: rename _collisionEventPrim to m_collisionEventActors and _collisionEventPrimChanges to m_collisionEventActorsChanges to reflect their actual contents.
...
These dictionaries handle all actor types, not just physical prims.
2012-06-29 00:54:40 +01:00
Justin Clark-Casey (justincc)
1a7be7b00e
Fix a regression where we stopped removing avatars from collision event reporting on logout, rather than stopping clearing their collision events.
...
This occurred in b18c8c8
(Thu May 17 2012).
This was a cause of very occasional race conditions and likely memory leakage as clients came and went from the region.
2012-06-29 00:36:50 +01:00
Justin Clark-Casey (justincc)
f202c36106
Add IScene.Name for code clarity to replace the RegionInfo.RegionName used in many, many log messages.
2012-06-29 00:03:22 +01:00
Justin Clark-Casey (justincc)
bfa6896678
Change AttachmentsModule.DetachSingleAttachmentToInv() to accept a SOG directly instead of an item ID to then shuffle through attachments, saving CPU busywork.
...
Almost all callers already had the sog to hand.
Still checking that it's really an attachment, but now by inspecting SOG.AttachedAvatar
2012-06-28 23:31:23 +01:00
Justin Clark-Casey (justincc)
571fd966cb
Rather than iterating through all SOGs in the scene looking for the one that matches out fromItemID on detach, go through the agent's attachment sog list instead.
2012-06-28 23:01:12 +01:00
Justin Clark-Casey (justincc)
f263d6a910
Remove code that tried to delete an attachment back to inventory if RezSingleAttachmentFromInventoryInternal() returned null.
...
null would only ever be returned if the item couldn't be located within inventory and this would happen immediately.
In this case, derezzing wouldn't work anyway since there is no item to derez.
2012-06-28 22:48:49 +01:00
Justin Clark-Casey (justincc)
972b0b52f9
If rest of first line after colon is blank then still warn about running in XEngine if engine specified does not exist.
...
This is to take account of situations where the user was intending to specify a script engine using colon using its default language.
This probably generates few false positive as scripts are less likely to end a first line colon with a comment for other purposes.
2012-06-28 21:30:36 +01:00
Justin Clark-Casey (justincc)
25baa2d894
Avoid reporting false positives when a colon is in a comment in the first line of a script where the user was not trying to select a different script engine.
...
This works by only posting the "Selected engine unavailable" message if we're falling back on XEngine and the language is one handled by XEngine.
In cases where the language is not handled or not allowed, the user will still be notified by the later compiler error.
This avoids the overwhelming majority of false positives where the first line contains a : for other reasons (e.g. source control systems, vim settings, etc.)
Ultimately, I think it would be better to detect script language/engine with a mechanism that didn't just rely on : detection (e.g like #! in unix scripts).
2012-06-28 01:01:18 +01:00
Justin Clark-Casey (justincc)
f9769a9fcb
minor: reuse colon index calculation in XEngine.OnRezScript. The index if a colon is found on the first line will always be the same as for the whole script.
2012-06-28 00:37:23 +01:00
Justin Clark-Casey (justincc)
bb48060b44
Fix issue in InventoryArchiveTestCase where it didn't call down to OpenSimTestCase.SetUp()
2012-06-27 00:50:36 +01:00
Justin Clark-Casey (justincc)
d043213317
refactor: Move ScenePresence <-> AgentData attachments copying code into AttachmentsModule.
2012-06-27 00:41:46 +01:00
Justin Clark-Casey (justincc)
5bec5bcf71
Automatically disable log4net before each regression test so that logging is confined to a single test if it's turned on.
...
This involves making test classes inherit from a common OpenSimTestCase.
This will be applied to more classes as required.
2012-06-27 00:01:51 +01:00
Justin Clark-Casey (justincc)
87ca820f9b
Replace "kill uuid" console command with the more consistent "delete object uuid", which was present in the last opensim release.
2012-06-26 23:28:48 +01:00
Justin Clark-Casey (justincc)
0b29877790
Fix output for help on some object region console commands
2012-06-26 23:15:15 +01:00
Justin Clark-Casey (justincc)
99954c1498
refactor: Remove unnecessary AttachmentModuleTests.m_userId in favour of local variables
2012-06-26 22:53:08 +01:00
Justin Clark-Casey (justincc)
2b82c421ad
refactor: Use local attachment module variables instead of global m_attMod.
...
This also avoids confusion between tests where one sets up m_attMod and another accidentally uses it after failing to set one up itself.
2012-06-26 22:31:25 +01:00
Justin Clark-Casey (justincc)
4329cc7b8a
refactor: make m_presence a local variable in all AttachmentsModuleTests since it doesn't need to be global and some tests set up more than one sp
2012-06-26 22:21:54 +01:00
Justin Clark-Casey (justincc)
32a4ce94f0
Add regression test to check that attachments in source region are deleting when an agent teleports to a neighbouring region
2012-06-26 22:16:44 +01:00
Justin Clark-Casey (justincc)
340005c5bf
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
2012-06-26 22:12:39 +01:00
Justin Clark-Casey (justincc)
4b6c3fd4bb
If crossing attachments into another region pre-fatpack, clone objects before changing properties to avoid hud display race condition with update threads.
...
This matches behaviour in fatpack crossing, where attachments are cloned before their properties are changed.
This only applies to crossings to simulators running code released before April 2011.
2012-06-26 21:06:47 +01:00
BlueWall
988112d446
Add stub for llCastRay
2012-06-26 15:15:25 -04:00
Justin Clark-Casey (justincc)
f5316984ab
minor: update currently commented out log message at top of AvatarFactoryModule.SetAppearance() for future use
2012-06-25 23:31:22 +01:00
Justin Clark-Casey (justincc)
e5b739aaeb
When attachments are being saved and deleted for a closing root agent, delete first to avoid a hud race condition with update threads.
...
If delete doesn't occur first then the update thread can outrace the IsAttachment = false necessary to save attachments and send hud artifacts to other viewers.
2012-06-25 22:48:13 +01:00
Justin Clark-Casey (justincc)
5301648cff
In AttachmentsModule.DetachSingleAttachmentToInvInternal(), remove attachment before changing properties for correct inventory serialization.
...
Serialization of attachments requires IsAttachment = false so that correct positions are serialized instead of avatar position.
However, doing this when a hud is still attached allows race conditions with update threads, resulting in hud artifacts on other viewers.
This change sets SOG.IsDeleted before serialization changes take place (IsDeleted itself is not a serialized property).
LLClientView then screens out any deleted SOGs before sending updates to viewers.
2012-06-25 21:08:19 +01:00
BlueWall
6d3ee8bb39
Fix script "Running" behavior
...
Unchecking "Running" box in script editor now persists. This fixes http://opensimulator.org/mantis/view.php?id=6057
2012-06-23 04:15:14 -04:00
Justin Clark-Casey (justincc)
78143769bf
Resolve various race conditions between accessing and removing external script URLs by more consistently locking on m_UrlMap
2012-06-22 23:49:52 +01:00
Justin Clark-Casey (justincc)
dca04c7b61
Avoid a race condition where an incoming request to a script external URL can trigger an exception is the URL was being removed at the same time.
...
This involves three steps
1) Return gracefully in UrlModule.HttpRequestHandler() instead of throwing an exception when the url cannot be found in its index
2) Return true instead of false in HasEvents() if no matching request is found in the map. This call will only happen in the first place for raced requests.
3) Return a 404 in GetEvents() if the request is not in the index, rather than a blank 200 OK.
Many thanks to Tom Haines in http://opensimulator.org/mantis/view.php?id=6051 for doing some of the work on this.
2012-06-22 23:16:18 +01:00
Justin Clark-Casey (justincc)
80a41e670d
Avoid race condition between m_PrimObjects iteration in XEngine.PostObjectEvent and places where the list is modified by extending the m_PrimObjects lock.
2012-06-22 02:23:25 +01:00
Justin Clark-Casey (justincc)
9f3feeff8d
If starting scripts on initial sim start, provide INFO level log feedback each time 50 scripts have been started.
...
This is to provide an indication of what's happening now that the default isn't to report every single script start.
Changes XEngine logging level in OpenSim.exe.config from WARN to INFO.
2012-06-22 02:10:27 +01:00
Justin Clark-Casey (justincc)
f907182ab2
Eliminate unnecessary extra call to TriggerEmptyScriptCompileQueue in XEngine.DoOnRezScriptQueue()
...
The later invocation of this function will happen on an empty compile queue.
2012-06-22 01:57:14 +01:00
Justin Clark-Casey (justincc)
4cf49369b5
Stop flicking IsAttachment false and then true in AttachmentsModule.UpdateAttachmentPosition() in order to avoid a hud update race condition.
...
Previously, setting IsAttachment to false then true was necessary to serialize the updated attachment object information.
However, UpdateAttachmentPosition no longer does this update.
Whilst IsAttachment is set to false there is a race condition where the update thread can wrongly send hud object updates to clients that do not own the hud, resulting in screen artifacts.
2012-06-22 01:43:26 +01:00
Justin Clark-Casey (justincc)
fda39c11bf
Fix bug where attachments would not retain position if just rotated and not moved.
...
This was because we were not setting AttachedPos in SOG.UpdateGroupPositionPR, unlike UpdateGroupPosition
2012-06-22 01:33:27 +01:00
Justin Clark-Casey (justincc)
798846c5b6
refactor AttachmentsModule tests to use a common method for standard attachment item setup
2012-06-22 00:40:04 +01:00
Justin Clark-Casey (justincc)
06617ffd06
Add regression test for updating attachment position
2012-06-22 00:18:30 +01:00
Justin Clark-Casey (justincc)
d24122b706
Add item id, name, prim name and id to log message when state exists but loading fails.
...
Drop logging about memory limit exceeded to warn from error
2012-06-21 02:24:44 +01:00
Justin Clark-Casey (justincc)
afcabf5244
Retrigger build - last jenkins run was glitched
2012-06-21 02:13:03 +01:00
Justin Clark-Casey (justincc)
5709bed548
Add state file location to errors logged when there's some issue with retrieving state (e.g. exceeds memory limit)
2012-06-21 02:09:14 +01:00
Justin Clark-Casey (justincc)
68ea096f1b
Use HasPrivateAttachmentPoint properties in SOG.DeleteGroupFromScene() instead of magic numbers
2012-06-20 23:25:07 +01:00
Justin Clark-Casey (justincc)
714db90832
refactor: use SOG.HasPrivateAttachmentPoint in SOP.SendTerseUpdateToClient() instead of attachmentpoint magic numbers.
2012-06-20 22:46:01 +01:00
Justin Clark-Casey (justincc)
9ec9dafae6
Lower warn logging on not having friends/group module on permissions to debug.
...
It's a valid configuration not to have these modules, but I think it's still worth logging the fact that certain permissions won't work (always return true)
2012-06-20 01:33:25 +01:00
Justin Clark-Casey (justincc)
6c312bce7f
minor: Lower flotsam asset cache warning about not having a FlotsamCache.ini to debug
...
It's perfectly okay not to have this section.
2012-06-20 01:30:20 +01:00
Justin Clark-Casey (justincc)
6b3f9fcde0
Comment out the neighbour and land in connectors from info logging that they are starting up
2012-06-20 00:42:54 +01:00
Justin Clark-Casey (justincc)
625e5e913a
Comment out recently added log message detailing number of scripts started when compile queue empties for now
2012-06-20 00:25:18 +01:00
Justin Clark-Casey (justincc)
881e92a726
Raise some IO associated Exception logging in XEngine to error level, in line with other similar cases.
...
Remove more unnecessary Close() calls - these are being triggered by the Dispose() called when exiting the using statement for these sdk io objects.
2012-06-20 00:19:50 +01:00
Justin Clark-Casey (justincc)
0fa303b1cf
Log how many scripts are candidates for starting and how many are actually started.
...
Adds DebugLevel infrastructure to XEngine though currently commented out and unused.
2012-06-20 00:10:19 +01:00
Justin Clark-Casey (justincc)
9737e6d52e
If RegionReady is active, don't falsely say that logins are enabled in the main scene loop before RegionReady is signalled when initial script compilation finishes.
...
Also raises this logging level to Info from Debug since this information is of high importance. This matches the behaviour of the RegionReady module
2012-06-20 00:07:03 +01:00
Justin Clark-Casey (justincc)
e23d7ff9c0
minor: If logging because mesh/sculpt data isn't present for an object, log object UUID rather than local id, since UUID doesn't potentially vary between simulator starts.
2012-06-20 00:05:48 +01:00
Justin Clark-Casey (justincc)
ef686ead37
Like the assembly and text files, only write the c#-lsl linemap in XEngine.SetXMLState() if the trust binaries flag is set.
...
This doesn't affect other locations where the map is written, such as on script compilation.
2012-06-19 02:11:46 +01:00
Justin Clark-Casey (justincc)
8e7032ece8
minor: Add a little more detail to IOException logging in XEngine.SetXMLState()
...
Also removes superflous Close() commands for statements taking place within using() constructs
Also adds some comment out debug log messages for future use.
2012-06-19 01:53:50 +01:00
Justin Clark-Casey (justincc)
7119de56ff
Change read config paramter from max_urls_per_simulator to max_external_urls_per_simulator, which is what it was meant to be
2012-06-16 04:12:53 +01:00
Justin Clark-Casey (justincc)
22f25dfcab
Implement max_external_urls_per_simulator setting in [LL-Functions] to allow configuration of how many urls can be set up by llRequestURL()
...
Defaults remains as 100.
This setting is per simulator instead of per region due to how the url script module is structured.
2012-06-16 03:32:47 +01:00
Justin Clark-Casey (justincc)
aaa30dcebc
Add region name to UseCircuitCode log messages
2012-06-15 05:01:36 +01:00
Justin Clark-Casey (justincc)
c935f03467
Put all debug console commands into a single Debug section rather than scattering them over other categories
2012-06-15 03:32:43 +01:00
Justin Clark-Casey (justincc)
94517c8d5c
Make the "debug http" command available for robust as well as the simulator. This allows one to see incoming requests as they happen.
...
This required making everything use the common MainServer class for registering and retrieving http servers, rather than duplicate structures.
2012-06-15 02:51:52 +01:00
Justin Clark-Casey (justincc)
257b1b517d
Add main instance to internal MainServer.m_Servers list to simplify internal logic.
...
This does require the server to be added before it is set as the main Instance
2012-06-15 02:03:50 +01:00
Justin Clark-Casey (justincc)
aeed4d3041
minor: Tell user the current debug http level if "debug http" console command is executed without a level parameter
2012-06-15 01:27:29 +01:00
Justin Clark-Casey (justincc)
478acfff34
When setting debug http level, do this for all known http servers, not just the main instance.
2012-06-15 01:24:36 +01:00
Justin Clark-Casey (justincc)
10e87f9cdc
Make XMLRPCModule use an existing HTTP server if one already exists on the desired port.
2012-06-15 00:59:53 +01:00
Justin Clark-Casey (justincc)
6993a26ba5
Get rid of some unnecessary null checks in RegionApplicationBase.StartupSpecific() - a constructor can never return null.
...
Also adds some method doc to MainServer
2012-06-15 00:40:12 +01:00
Justin Clark-Casey (justincc)
93ba0332c4
minor: Extend 'debug http' usage statement to 0..3 from 0..2
2012-06-14 23:54:12 +01:00
Justin Clark-Casey (justincc)
9825861f4a
Shuffle "debug http" levels so that 1 and 2 now cause different levels of warn to be logged if we receive invalid xml for xmlrpc.
2012-06-14 23:46:09 +01:00
Justin Clark-Casey (justincc)
2c6555021f
Fix very recent regression in 917d753
where I put the ++updatesThisCall outside the batching part of ProcessEntityUpdates()
...
This stopped any batching happening and since this method is called periodically updates were sent very slowly
2012-06-14 03:49:54 +01:00
Justin Clark-Casey (justincc)
3888b9a670
If we're going to discard a terse update block because it's now someone else's hud, then don't still add it to the list of blocks for the update message.
2012-06-14 03:32:44 +01:00
Justin Clark-Casey (justincc)
1aa7469253
correct wrong incomplete comment from previous commit 3c3ea19
in AttachmentsModule
2012-06-14 02:30:40 +01:00
Justin Clark-Casey (justincc)
3c3ea19620
Fix a bug where scene objects attached as HUDs through scripts would not disappear for other avatars.
...
We do this by sending a kill message for that object to all other avatars apart from the one that has the hud.
2012-06-14 02:26:38 +01:00