Commit Graph

221 Commits (a9cc76e0efba7496909d613c75b81de6a9c5d979)

Author SHA1 Message Date
Justin Clarke Casey fed46ba6a7 * Winnow the debug and info messages associated with stat fetching
* As such, only a request for a non cached asset, the response and failures show up now.
* I know lbsa71 only put these in not long ago, so if they are really still required, I think we should think whether we can move the default log4net level off 'Debug'
2008-02-22 22:54:50 +00:00
Tedd Hansen 7102ac7769 "threads" command now works. I've added manual tracking of threads (only if compiled in DEBUG mode)... Its ugly and even requires a separate thread to track the treads, but it will be very valuable in debugging. 2008-02-21 10:43:24 +00:00
Justin Clarke Casey b0c5ef0b68 * Eliminate AssetCache.CopyAsset()
* Resolve a bad logic bug in AssetCache.GetAsset()
* This may make some asset related things work better (possibly getting main map images will now be improved).
2008-02-20 23:21:51 +00:00
Justin Clarke Casey 7d7ad4dff2 * Only count download requests for assets which are not already waiting for data from the asset server
* This should stop the constant increase in the download requests statistics
* If you see stat numbers for download requests which are far from what you'd expect, please report
2008-02-20 20:23:03 +00:00
Justin Clarke Casey f3190810d3 * Properly guard removal of asset request lists on AssetCache.AssetNotFound (my own bug) 2008-02-20 19:13:59 +00:00
Justin Clarke Casey 53d5aeec24 * Remove unused texture dictionaries from AssetCache
* Add documentation to AssetCache
2008-02-20 19:02:04 +00:00
Jeff Ames a8cfbbe963 Minor cleanup. 2008-02-20 18:38:20 +00:00
Justin Clarke Casey c66b5a9e71 Report command string on ConsoleBase.RunCommand exception 2008-02-20 17:54:14 +00:00
Justin Clarke Casey 877713999c * Report 'asset not found' situations back to UserTextureDownloadService
* This fixes some of the 'runaway downloads' problem but not all of it
* Also fix up logging messages so texture requests are reported as such rather than as assets
2008-02-20 17:34:10 +00:00
lbsa71 4c6e5a5090 * re-enabled AssetNotFound code
* turned script asset fetching asynchronous
2008-02-20 13:11:19 +00:00
lbsa71 9be5f9d6cc * Fixed xml loading bug (the xml was scheduled for update before added to a scene)
* Fixed ClickAction situation on the same note (properties shouldn't cause big changes)
* Added some more debug output to AssetCache
2008-02-20 09:38:45 +00:00
Tedd Hansen 47c909ca0a Playing "Name that thread". Adding names and isbackground=true to all threads so it will be easier to debug. 2008-02-19 12:02:53 +00:00
MW b618802e53 Moved the AgentAssetTransactionsManager (and AgentAssetTransactions) out of CommsManager and into a module (AgentAgentTransactionModule), still needs cleaning up though.
But its one more thing out of the CommsManager. One day we will kill the CommsManager!
2008-02-16 13:01:42 +00:00
Jeff Ames 001ce95e4c Clean up more unnecessary String.Format calls 2008-02-13 03:38:18 +00:00
Justin Clarke Casey a1a206cb05 * Clean up LIBRARY INVENTORY messages 2008-02-13 02:43:41 +00:00
Justin Clarke Casey 45638cc141 Commenting and a spelling correction 2008-02-13 01:04:27 +00:00
Justin Clarke Casey 1677bde480 * Clean up the agent's asset transactions when it is removed from the scene
* This may or may not help with the memory leak, need to assess
2008-02-13 00:52:49 +00:00
Justin Clarke Casey 365cf8e455 * Refactor: Move last commit's refactor back to AgentAssetTransactionsManager
* Push asset update (invoked when clothing is altered) down into AgentAssetTransactions from Scene.Inventory.cs to join others
* I've tested that clothing creation and update still works, but please let me know if it suddently breaks for you.
* Add/correct comments
2008-02-13 00:30:51 +00:00
Justin Clarke Casey 2018cf312b Refactor: factor a method out of AgentAssetTransactionsManager 2008-02-12 22:41:57 +00:00
Justin Clarke Casey c0211c1ca2 * Add missing locking to mysql inventory plugin
* Should resolve mantis 542
2008-02-12 22:24:12 +00:00
Justin Clarke Casey 6a3455a98c * Refactoring: Rename AssetTransactions.cs and AssetTransactionsManager and align classes with file names
* Small amount of ndoc
* This will probably require a prebuild and nant clean
2008-02-12 18:15:54 +00:00
MW 7bbb9a08cb Re-enabled Inventory creation of body parts 2008-02-11 20:54:46 +00:00
Jeff Ames e207284fef Clean up logging calls using String.Format explicitly 2008-02-10 01:57:59 +00:00
lbsa71 e9eaf8e949 * fixed typo. thanks, nebadon! 2008-02-09 22:26:28 +00:00
lbsa71 7486762aa0 * Refactored some asset code and in the process uncovered a bug; now, I think first transfer of asset should start faster. 2008-02-09 22:23:36 +00:00
lbsa71 0b0bb28fd5 * added count of texture data bytes and asset bytes 2008-02-09 21:50:45 +00:00
lbsa71 e2ed5bf6b9 * Added count of temporary assets 2008-02-09 21:25:34 +00:00
lbsa71 176a1fe382 * added two new commands (for debug/disaster recovery)
'show assets' shows the current state of the asset cache (number of cached assets, requests, et c)
  'clear-assets' forcibly re-initializes the asset cache thereby freeing all cached items.

'clear-assets' is not to be used lightly, as it probably introduces mem inconsistencies and doubling up of textures.
2008-02-09 21:17:47 +00:00
Justin Clarke Casey d546859bc1 * Change logger to handle [<entry>] where <entry> contains non alphabetic characters
* Change logger to not print extra line if [<entry>] <text> like string is not logged
* Remove more of my previous chatty debugging statements
2008-02-09 01:53:57 +00:00
Justin Clarke Casey 16f8f19a54 * Stop asset transactions hanging around after they've completed
* Still not enough to solve the memory leak, though hopefully this is another step on the path
* All these changes are pretty temporary - this will be addressed with a more fundamental refactor in the future
2008-02-08 23:42:19 +00:00
Justin Clarke Casey f05f583613 Still chasing logout memory leak. Putting in small changes and temporary light verbosity to this end 2008-02-08 22:39:08 +00:00
Sean Dague 598c5a95d9 fix the issue found on IRC this morning. The logging call was mistructured
so threw and exception when attempting to log that we missed an asset and
were waiting for it.
2008-02-08 15:29:53 +00:00
Jeff Ames 6ed5283bc0 Converted logging to use log4net.
Changed LogBase to ConsoleBase, which handles console I/O.
This is mostly an in-place conversion, so lots of refactoring can still be done.
2008-02-05 19:44:27 +00:00
MW 755ad9e3e0 First part of avatar persistence, currently only really works in standalone mode (with accounts_authenticate set to true), it also only currently has a mysql database connector. (sqlite one will follow soon). It also uses the tribalmedia database system, so this needs checking to see if the old problems with mono have been fixed.
To use, see the appearance section in opensim.ini.example, set "persist = true", then add the correct connection string for your database.(see mysql-AvatarAppearance.sql in share folder for a example of the table mysql table structure).
This could possible be used in a very small grid, but would mean each region server would need to connect to the same mysql database. 
But the work to move the code to one of the grid servers shouldn't be too much.
2008-02-04 12:04:02 +00:00
Adam Frisby 35a8c95e1d * Lowered maxchunk from 1500 bytes to 1250 bytes to make sure packets fit below the average maximum MTU of 1500 bytes inc. header. Thanks Alex for reporting this. 2008-02-04 10:28:39 +00:00
Adam Frisby d12f253cca * Default inventory permissions patch (#444), courtesy of alex_carnell -- thanks! 2008-02-04 10:24:37 +00:00
Justin Clarke Casey a4bf98f4ba * Add asset/texture cache statistics to region server console
* You can type 'stats' at the REGION# prompt to get this information in grid or standalone mode
* Don't take these numbers as gospel yet, since for some reason textures displayed from inventory which require downloading from the server are being recorded as assets 
rather than textures
* But I don't have any reason to believe they aren't broadly accurate.
* I've put these in so I can tell whether the high memory usage on regions is down to the asset/texture cache
* This will require a prebuild
* DEV: Only adds needed to be implemented since, as far as I can tell, assets cached are currently never released.  For my part, seeing large cache memory numbers will 
provoke me to think about doing something about this.
* DEV: Now switched to using a singleton to get the stats reporters rather than threading the object through various layers
* DEV: Will refactor the other server stats reporters to do this in one of the next commits
2008-01-31 00:42:31 +00:00
Adam Frisby b25f9f322c * Mother of all commits:
* Cleaned up copyright notices in AssemblyInfo.cs's
* Added Copyright headers to a bunch of files missing them
* Replaced several common string instances with a static constant to prevent reallocation of the same strings thousands of times. "" -> String.Empty is the first such candidate.
2008-01-15 02:09:55 +00:00
Jeff Ames 5a6fd21a2c Whitespace cleanup. 2008-01-10 06:49:29 +00:00
lbsa71 c0252073d0 * removed another superfluous debug message 2008-01-09 09:31:07 +00:00
Brian McBee bafdac7874 dump_assets_to_file=true will now cause the asset to go into a UserAssets subdirectory of bin instead of cluttering up your bin directory (Thanks CharlieO!) 2008-01-09 03:57:53 +00:00
Brian McBee 19ed64b114 Third part of CharlieO's library rework. We now have library organization! Thanks CharlieO! 2008-01-09 03:52:07 +00:00
lbsa71 4b4ee98070 * Trying to address TextureSender issues
* The BlockingQueue exposes Contains so we can make sure we don't add a TextureSender to the queue if there's already one present
* introduced some TryGetValue and various code convention stuff
2008-01-02 09:07:11 +00:00
lbsa71 20653830fb * Refactored out function to load specified AssetSet Xml
This commit dedicated to 'Mohawk - Bad Girls (Need Love Too)'
2008-01-02 07:13:34 +00:00
Justin Clarke Casey b8975ecbd9 Make it possible for new inventory 'libraries' to be added without changing the default OpenSimLibrary files. Additional library folders and items can be added in a separate
directory 
and linked in by an entry to inventory/Libraries.xml
2007-12-31 23:20:49 +00:00
Justin Clarke Casey 60fa75ac04 Standard library folders can now be configued in the xml in inventory/OpenSimLibrary - no hardcoded changes are required. For some reason, all the folders are currently
showing up as texture folders, even though they are configured with the same types as the agent inventory folders.  This should be resolved soon.
2007-12-31 03:33:21 +00:00
Justin Clarke Casey 7d04cf8d4e Shift default OpenSim library into its own directory 2007-12-30 19:05:11 +00:00
Justin Clarke Casey 40e89678b7 Make inventory items nominate explicit inventory folders rather than hardcoding 2007-12-29 19:41:50 +00:00
Justin Clarke Casey 4ae10034bd Factor out common asset loading from AssetServerBase and Grid/AssetServer/Main 2007-12-28 22:13:43 +00:00
Justin Clarke Casey 7cf9a8d4f9 Move inventory contents configuration files to bin/inventory folder 2007-12-28 18:01:20 +00:00
lbsa71 efd90b56b7 * Optimized usings
* shortened references
* Removed redundant 'this'
* Normalized EOF
2007-12-27 21:41:48 +00:00
Justin Clarke Casey 997a2907e2 Move hardcoded texture library inventory items out into OpenSimLibrary/xml. However, even before these change the five textures moved
are not displaying (which is why default cubes are coming up as grey plywood unless you happen to have that texture cached).  These
were working before so they must have broken in the last month.  Might be something to do with the fact that these identify (using file
under linux) as jpeg2000 files, while all the other working textures identify simply as data.
2007-12-27 15:17:22 +00:00
lbsa71 87e2a694e2 * AssetServerBase: _ProcessRequest is now called GetAsset
* PrimitiveBaseShape: The textures are now exposed as a 'TextureEntry Textures'; all serialization still using the 'byte[] TextureEntry' for backwards compatibility.
* Scene: Re-added AddTree, since the Tree type isn't gone from libsl, merely relocated.
2007-12-27 14:00:30 +00:00
Justin Clarke Casey 77a2755e14 Yet more inventory debugging messages 2007-12-23 11:43:46 +00:00
Justin Clarke Casey c545cc8cd9 Miscellaneous small tweaks and more logging messages to move towards resolving inventory problems 2007-12-23 02:14:29 +00:00
Justin Clarke Casey c470efea57 Make copying of scripts into prim inventories more reliable on the first attempt when the asset server is lagging by formalising the de facto polling.
This may not be the best solution in the long run, but should improve things for now.
This may also improve reliability when updating inventory item metadata (e.g. renaming an item) and in retrieving textures
for the main map view.
2007-12-22 19:48:01 +00:00
Justin Clarke Casey ed0f8bd572 minor refactor 2007-12-22 16:45:44 +00:00
Justin Clarke Casey 42bc256e4f Refix bug where inventory textures don't appear in prim edit texture selection box
unless previously expanded in inventory.
2007-12-21 19:47:45 +00:00
Jeff Ames be2ad79e52 Added patch from Johan. First attempt to solve the LibSL.Packet GC problem. Works with LibSL rev>1532 2007-12-20 05:43:02 +00:00
Justin Clarke Casey 45567b71b8 Refactor asset request processing for consistent status information on whether an asset was actually found or not 2007-12-19 18:05:45 +00:00
Jeff Ames 6702b03733 Misc. cleanup:
* added Util.Clip(value, min, max)
* modified asset cache's numPackets calculation to use max packet size (600) instead of 1000
* removed a few magic numbers
2007-12-19 08:44:25 +00:00
Brian McBee 8a8c89a0f3 Grid Inventory feature upgrade: renaming folders should now be correct, subfolders work, moving folders works.
Tested only in MYSQL, but may work in MSSQL and sqlite.
Probably not working in standalone mode.
2007-12-15 04:57:14 +00:00
Charles Krinke 4e7763f8de Thank you Justin for:
0000188: Clean up of some AssetCache.ProcessAssetQueue() code
2007-12-14 20:09:44 +00:00
lbsa71 9ed2b26232 * Just making Create public 2007-12-14 15:29:51 +00:00
lbsa71 0a4a5bbcef * ARequest changed name to AssetRequest and moved to own file.
* The AssetServerBase is now responsible for dequeueing, the server implementations merely recieves ProcessRequest( AssetRequest req )
* Catchall added around queue processing thread so thread won't abort on exceptions.
2007-12-14 08:47:15 +00:00
Teravus Ovares fef8c77a8a patch from justincc for Mantis #163 - Opening a script in inventory longer than 1500characters can cause looping crash. 2007-12-14 00:54:12 +00:00
Brian McBee 16903ec488 Implementing updateinventoryfolder: Should now be able to rename folders in inventory 2007-12-11 03:51:32 +00:00
Jeff Ames 712efda9b9 added copyright notices 2007-12-11 01:26:06 +00:00
MW 611327e104 more work on texture downloading.
Refractored the TextureDownloadModule (but currently to make debugging easier, it is running as a non shared module, so this results in a instance of this module being created for each region (and a extra thread per region), this will be changed back soon.
Removed the old texture handling/sending code from AssetCache.
A few other small changes/fixes.
2007-12-10 13:27:23 +00:00
Jeff Ames af6eb67999 saved OpenSim source code from the giant rampaging unterminated copyright notice of doom 2007-12-10 05:25:16 +00:00
Brian McBee 383eccc543 hackish code to allow emptying of trash. This really should be done on the inventory server, and not from the region.
Also: it appeared to work the first try, so I have probably done something horribly wrong.
2007-12-08 20:41:37 +00:00
Sean Dague 1ad83bcf1b reversing the r2599 patch, as this started causing CreateThread errors for
me on Mono 1.2.4, which led to client crashes.  I think the Timer.Stop() 
wasn't doing what was desired on Mono.  The Queue refactoring should address
the readability issues lbsa71 was working on as soon as I get the merge together.
2007-12-06 20:13:02 +00:00
lbsa71 395637acdd * now the throttle timer is stopped whilst processing Queue so that it won't fire twice
* started to refactored throttling method
* some code convention refactorings
2007-12-06 14:08:22 +00:00
Sean Dague c29105aa3e This is a simple patch which just renames an IClientAPI method to
SendInventoryItemCreateUpdate() in order to reflect the actual packet it
sends (UpdateCreateInventoryItem).

From Justin Casey (IBM)
2007-12-03 17:24:27 +00:00
MW ac77c32453 Attempt to fix mantis issue #82, taking prims into inventory and then rezzing them in another region. 2007-12-02 20:43:21 +00:00
MW cac98171e5 Very partial Avatar Appearance (ie, clothes/body parts) "storage". In standalone mode it will mean that when you log off and log back on ,as long as the region server hasn't been restarted , your avatar will start with wearing the clothes that it wore on log off. In grid mode its even more limited in that wearing/removing clothes/body parts are only stored in the region server instance you are one. so if you are in a different region to your login region (which are on different region server instances), and then change clothes, those changes won't be remembered. So as said, its very limited but is a small step towards having proper appearance persist.
Just need to store this data out to a database.
2007-12-02 14:56:23 +00:00
MW 86ae8e97cd Fixes a bug that my last commit introduced. 2007-12-02 14:12:56 +00:00
MW 80609c2b15 Some refactoring , mainly on Inventory code. 2007-12-02 13:59:15 +00:00
MW b92df4aaaf New Inventory folder should now be stored to the inventory server/database. This also seems to fix the problem of Body parts not being persisted properly. 2007-12-02 10:21:17 +00:00
MW 4dee53c7fb Attempt to fix mantis issue # 73 2007-12-01 20:57:14 +00:00
MW fff468dcfe Attempt to fix mantis issue # 65, seems like it is a race condition between two regions trying to add a user to the AssetTransactionManager at the same time. So have placed a lock around the Dictionary add. 2007-12-01 16:40:26 +00:00
Sean Dague b167507e32 Patch for mantis 0000015: Textures don't display in the object
properties window

From Justin Casey (IBM)
2007-11-30 20:16:40 +00:00
lbsa71 fb2588b409 * Refactored NumPackets calculation 2007-11-23 13:21:39 +00:00
Teravus Ovares 615b40b68b * Refactored IClientAPI.OutPacket to require a second mandatory parameter. This parameter has an enum:int ThrottleOutPacketType and contains types; Resend, Land, Wind, Cloud, Task, Texture, and Asset. 2007-11-18 15:54:05 +00:00
Jeff Ames d10c79d421 first stab at implementation of CopyInventoryItem 2007-11-18 13:50:46 +00:00
Jeff Ames 946db5461c catch exceptions when loading malformed xml files 2007-11-17 05:53:12 +00:00
Brian McBee 46fbcad2aa Fixed bug in assetcache where certain textures were not being packetized correctly 2007-11-11 00:11:34 +00:00
lbsa71 ee1fcc729c * Added better logging to AssetCache
* AssetCache now ignores duplicate uploads
* some m_ refactoring
* ignored some bins
2007-11-06 11:10:45 +00:00
MW 19fe9a0208 Do I really have to write a log entry, can't I just hide this commit somewhere so its added but doesn't show up anywhere. As I can't believe I would make such a stupid mistake and not notice. 2007-11-04 10:40:28 +00:00
MW 91c2c3c096 testing different rest post method/class for Grid asset client. (possible that I haven't set the post url correctly) 2007-11-03 14:04:59 +00:00
Sean Dague 21e47f8ef0 debug tracing for asset server hangs 2007-11-01 22:01:26 +00:00
lbsa71 4fad66f855 * Diuerse beavtificatems 2007-11-01 19:19:05 +00:00
MW 7a66eff8af renamed FetchAsset to RequestAsset on IAssetServer, as think its a more fitting name. As the call shouldn't actually return the data, but just add a request for the data to be sent back via the callback. 2007-11-01 17:28:38 +00:00
MW 88f04731ca Test on the grid asset problem, don't update to this version unless you just want to test to see if this fixes anything (but it could just as well break grid assets even more). 2007-11-01 15:54:59 +00:00
lbsa71 b3aa6e616b * Took a stab at #500 by making sure there is only one place stuff gets added, and that that place is thread-aware.
* Refactored it to TryGetValue instead of Contains
2007-10-31 20:39:52 +00:00
Tleiades Hax 5fb956f75a Improved logging, to identify which asset fetch caused an execption during retrieval of assets from the asset server 2007-10-31 18:49:40 +00:00
Jeff Ames f42afe81af added .dat extension to dumped asset files 2007-10-31 08:07:20 +00:00
Jeff Ames 7f0d836d35 made illogical bitwise operations logical 2007-10-31 05:29:51 +00:00
lbsa71 67e12b95ea * Optimized usings
* Shortened type references
* Removed redundant 'this' qualifier
2007-10-30 09:05:31 +00:00
MW 3d8219f6c7 as per the "Filesystem cleanup for OpenSim repository" mailing list thread. Have flattened the OpenSim.Framework project/namespace. The problem is that the namespace is still wrong as its "OpenSim.Framework" while the directory is "OpenSim\Framework\General" , so we need to decide if we change the directory or correct the namespace.
Note this has lead to a big flat project, but I think a lot of the files we most likely don't even use any longer. And others belong in other projects/namespaces anyway.
2007-10-29 21:46:25 +00:00