Commit Graph

1903 Commits

Author SHA1 Message Date
Justin Clark-Casey (justincc)
dc460579fd minor: Fix and elaborate on log information printed when an unrecognized estate method is received from the client. 2012-10-13 01:47:10 +01:00
Justin Clark-Casey (justincc)
b7e75d467c minor: Use && instead of & when deciding whether to print Improve/ObjectUpdate packet out messages when debug is turned on.
Practical effect is probably none.
2012-10-12 02:10:30 +01:00
Justin Clark-Casey (justincc)
8873a4a8fc minor: Fix bug in categorization of blocks reused stat from packetpool 2012-10-12 01:59:47 +01:00
Justin Clark-Casey (justincc)
21d0cbf703 Add AgentUpdate to PacketPool. This is the most common inbound packet from viewers. 2012-10-12 01:39:37 +01:00
Justin Clark-Casey (justincc)
59a17ad676 Fix percentage stats to multiply by 100. Adjust container name for packetpool stats. 2012-10-12 00:26:15 +01:00
Justin Clark-Casey (justincc)
8a402850dd Enable reuse of data blocks for ImprovedTerseObjectUpdate using existing Packetpool code. 2012-10-12 00:21:45 +01:00
Justin Clark-Casey (justincc)
2e9ef015f7 Fix packetpool for ImprovedTerseObjectUpdate packets.
These were neither being returned or in many places reused.
Getting packets from a pool rather than deallocating and reallocating reduces memory churn which in turn reduces garbage collection time and frequency.
2012-10-11 23:58:37 +01:00
Justin Clark-Casey (justincc)
1f2472d0fc Extend "show stats" command to "show stats [list|all|<category name>]"
This allows different categories of stats to be shown, with options to list categories or show all stats.
Currently categories are scene and simulator and only a very few stats are currently registered via this mechanism.
This commit also adds percentage stats for packets and blocks reused from the packet pool.
2012-10-11 23:28:53 +01:00
Justin Clark-Casey (justincc)
e76b01a201 Lock on AgentCircuitData during Scene.AddClient() and RemoveClient() to prevent an inactive connection being left behind if the user closes the viewer whilst the connection is being established.
This should remove the need to run the console command "kick user --force" when these connections are left around.
2012-10-10 00:26:43 +01:00
Justin Clark-Casey (justincc)
73c9abf5f2 Move OpenSim.Data.RegionFlags -> OpenSim.Framework.RegionFlags to make it easier for other code to use (e.g. LSL_Api) without having to reference OpenSim.Data just for this. 2012-10-09 01:35:27 +01:00
Justin Clark-Casey (justincc)
16c9c1dff7 On receiving TaskInventoryAccepted with a destination folder in the binary bucket slot for RLV, notify the viewer about inventory folder updates.
The viewer would not see the folder move without this, either on accept or decline.
This commit also updates the TaskInventoryOffered message to better conform with the data LL uses
Changes are, agentID is prim owner rather than prim id, agent name is now simply object name rather than name with owner detail,
message is just folder name in single quotes, message is not timestamped.
However, folder is not renamed "still #RLV/~<name>".  Long term solution is probably not to do these operations server-side.
Notes will be added to http://opensimulator.org/mantis/view.php?id=6311
2012-10-06 02:34:49 +01:00
Justin Clark-Casey (justincc)
7c7cdf3431 Read PacketPool config in LLUDPServer with other config params rather than in Scene.
This is to resolve previous build break.
This unnecessarily but harmlessly reads and sets the parameter multiple times - scene was doing the same thing.
2012-10-05 01:43:29 +01:00
Justin Clark-Casey (justincc)
f0178a6a41 refactor: Move OpenSim.Framework.PacketPool to OpenSim.Region.Clientstack.Linden.UDP
This is to allow it to use OpenSim.Framework.Monitoring in the future.
This is also a better location since the packet pool is linden udp specific
2012-10-05 01:12:56 +01:00
Oren Hurvitz
5dd2569bf7 Added unit tests for multi-region OARs 2012-09-14 20:32:25 +01:00
Melanie
68814f904e Replace SendBannedUserList with Avination's version. Untested in core. Not even test compiled. 2012-08-31 00:37:27 +01:00
Justin Clark-Casey (justincc)
bcbd450fe4 Add --force flag to "kick user" console command to allow bypassing of recent race condition checks.
This is to allow a second attempt to remove an avatar even if "show connections" shows them as already inactive (i.e. close has already been attempted once).
You should only attempt --force if a normal kick fails.
This is partly for diagnostics as we have seen some connections occasionally remain on lbsa plaza even if they are registered as inactive.
This is not a permanent solution and may not work anyway - the ultimate solution is to stop this problem from happening in the first place.
2012-08-20 20:24:54 +01:00
Melanie
dd0556abc9 Fix llDialog responses so that they can be heard throughout the region. This now conforms to the behaviour in SL. 2012-08-19 22:05:38 +01:00
Melanie
f6562e2269 Actually add the module 2012-08-14 22:22:25 +01:00
Justin Clark-Casey (justincc)
205f2326dc Consolidate PersistBakedTextures, DelayBeforeAppearanceSend and DelayBeforeAppearanceSave into [Appearance] section from [Startup] config section so that all appearance settings are in the same place and not in the startup bucket.
All these settings are in OpenSimDefaults.ini only.  If you are using them then please adjust your OpenSim.ini
2012-08-03 23:02:39 +01:00
Justin Clark-Casey (justincc)
35efa88c26 Rename OpenSim.Framework.Statistics to OpenSim.Framework.Monitoring.
This better reflects the long-term purpose of that project and matches Monitoring modules.
2012-07-25 23:11:50 +01:00
Justin Clark-Casey (justincc)
a1e99642c1 Add experimental "OpenSim object memory churn" statistics to output of region console "show stats" command
This aims to capture the amount of memory that OpenSim turns over whilst operating a region.
This memory is not lost - apart from leaks it is reclaimed by the garbage collector.
However, the more memory that gets turned over the more work the GC has to do to reclaim it.
2012-07-25 22:29:40 +01:00
Justin Clark-Casey (justincc)
ef8570f789 Extend region console "show queues" command to show already collected time since last packeted received by the simulator from a viewer. 2012-07-24 23:39:31 +01:00
Justin Clark-Casey (justincc)
d1d331a4c0 Make LLClientView instant message handling asynchronous rather than synchronous to prevent long operations from holding up all inbound packet processing.
Giving a large folder from one avatar to another was causing a long delay when handled synchronously, since it took some time to retrieve the necessary data from the inventory service.
Handling this asynchronously instead stops this delay from disrupting all avatars in the scene.  This has been shown in OSGrid.
I see no reason for not handling all IM messages asynchronously, just as incoming chat is handled asynchronously, so this has been switched for all instant messages.
Thanks to Nebadon for testing this change out.
2012-07-19 23:20:03 +01:00
Justin Clark-Casey (justincc)
ba80f137b5 Prevent race conditions between two threads that call LLClientView.Close() simultaneously (e.g. ack timeout and an attempt to reconnect) 2012-07-19 22:32:27 +01:00
Justin Clark-Casey (justincc)
d6f54b25cd Stop redundantly passing in the endpoint to the LLClientView constructor.
This can always be retrieved via the LLUDPClient and is so done in various places already.
2012-07-12 23:48:42 +01:00
Justin Clark-Casey (justincc)
dda999a22c Remove IClientIPEndpoint client interface for now.
This may well come back in the future when this subinterface is actually used but it currently isn't and I feel the name was poor.
Everything uses IClientAPI.RemoveEndPoint which also returned the full endpoint rather than just the ip address.
2012-07-12 23:43:02 +01:00
Justin Clark-Casey (justincc)
3b3d9967b1 Remove IClientAPI.GetClientEP() in favour of existing identical IClientAPI.RemoteEndpoint. 2012-07-12 23:29:57 +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)
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)
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
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)
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)
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)
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)
0d2243a393 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2012-06-14 01:38:41 +01:00
Justin Clark-Casey (justincc)
917d753f1c Fix a race condition where an object update for a hud could be sent to non-owner avatars if the hud was attached directly from within the region.
If this happens, then the non-owners would see unremovable huds that they did not own until relog, and sometimes even beyond that.
This was due to a race between the entity update and the attachment code when moving an object from within scene to a hud.
2012-06-14 01:36:37 +01:00
Melanie
cba8b4f8b8 Fix not sending TransferInfo when an asset is not found. This clogs
up the sound pipeline in the viewer.
2012-06-14 00:58:17 +01:00
Justin Clark-Casey (justincc)
6a77a65675 minor: remove unnecessary IsAttachment = false setting for new object in UploadObjectAssetModule, property always starts as false 2012-06-14 00:35:26 +01:00
Justin Clark-Casey (justincc)
16ffc764bf minor: refactor part of LLClientView.ProcessEntityUpdates() to remove duplicate code 2012-06-13 23:54:32 +01:00
Justin Clark-Casey (justincc)
cf080a68d6 Remove long obsolete and unused IClientAPI.KillEndDone() 2012-06-13 23:42:22 +01:00
Justin Clark-Casey (justincc)
f726150afd Add ObjectUpdate as one of the packets that can be screened out when setting debug packet level 2012-06-13 23:39:23 +01:00
Justin Clark-Casey (justincc)
2ca31a9841 Remove accidental timeout left in during earlier debugging. Has been in since two commits ago (b099f26) 2012-06-12 02:46:14 +01:00
Justin Clark-Casey (justincc)
b099f26376 Set IClientAPI.IsActive = false early on client removal due to ack timeout rather than using IsLoggingOut flag.
IsActive is more appropriate since unack timeout is not due to voluntary logout.
This is in line with operations such as manual kick that do not set the IsLoggingOut flag.
It's also slightly better race-wise since it reduces the chance of this operation clashing with another reason for client deactivation (e.g. manual kick).
2012-06-12 02:16:36 +01:00
Justin Clark-Casey (justincc)
c89db34fc4 If the simulator closes a root agent due to ack timeout, then send the client a kick message with that reason, in case it is somehow still listening. 2012-06-12 02:03:31 +01:00
Justin Clark-Casey (justincc)
8c7149063b In PresenceDetector.OnConnectionClose(), use the IsChildAgent check already available on IClientAPI.SceneAgent rather than retrieving it again by scanning all scenes. 2012-06-12 01:25:09 +01:00
Justin Clark-Casey (justincc)
794d184c25 Stop sending a DisableSimulator packet in LLClientView.Close(), which is a duplicate for child agents and unnecessary for root agents.
Close() already calls Scene.RemoveClient() which sends the right eq or udp DisableSimulator message to child agents.
2012-06-08 04:32:51 +01:00
Justin Clark-Casey (justincc)
f94b92df46 Instead of retrieving the known client again in LLUDPServer.RemoveClient(), check the IsLoggingOut flag instead.
This is slightly better thread-race wise
2012-06-08 04:12:22 +01:00
Justin Clark-Casey (justincc)
c215b1ad16 If logging a client out due to ack timeout, do this asynchronously rather than synchronously on the outgoing packet loop.
This is the same async behaviour as normal logouts.
This is necessary because the event queue will sleep the thread for 5 seconds on an ack timeout logout as the client isn't around to pick up the final event queue messages.
2012-06-08 03:53:03 +01:00