Commit Graph

150 Commits

Author SHA1 Message Date
Sean Dague
7943ae48f5 move the lock out a bit further in the ProccessAssetCache loop to reduce
the number of times we are going to take this lock in a row (which is
just wasted resource), and to keep us from attempting to array access a
list which might be changing right now.  Extremely curious if this helps
prevent some of our mono segfaults.
2009-04-23 17:53:18 +00:00
Sean Dague
31bded51fb based on recent unit test output, put some extra checking in the
RunAssetCache error code
2009-04-23 17:38:08 +00:00
Dr Scofield
458f7eb9b3 cleaning up, fixing warnings 2009-04-22 09:42:44 +00:00
Justin Clarke Casey
ad2bd74057 * refactor: rename AssetCache.Initialize() to AssetCache.Reset() to avoid having Initialise() and Initialize() in the same class - very difficult to read. 2009-04-14 16:36:32 +00:00
Jeff Ames
cad0aab793 Formatting cleanup. 2009-04-14 11:38:33 +00:00
lbsa71
29355de6ee * Some more experimental work on distributed assets. Nothing hotwired yet.
* Introduced preprocess step in FetchAsset (Might revert this later)
  * Some minor CCC
  * Added actual implementation of GetUserProfile( uri ) and the corresponding handler to OGS1.
  * Introduced non-functioning GetUserUri( userProfile) awaiting user server wireup (this might move elsewhere)
2009-04-13 20:04:18 +00:00
lbsa71
d2a412e94b * Added some more experimental code; nothing wired in so far. 2009-04-09 16:45:22 +00:00
lbsa71
e93b782f9d * Introduced some experimental code with regards to asset data substitution 2009-04-08 19:59:37 +00:00
lbsa71
fb9a358b79 * Refactored out and de-duplicated Base64ToString(string)
* Fixed minor typo
2009-03-31 05:51:28 +00:00
Jeff Ames
54ccca1e2c Update svn properties, add copyright header, formatting cleanup. 2009-03-31 02:00:33 +00:00
lbsa71
3ca1481c3d * Minor fixes, inverted an if for readability and introduced a virtual pre-process step on the asset cache 2009-03-26 06:56:10 +00:00
Dr Scofield
b5f6aa6ff2 From: Alan Webb <alan_webb@us.ibm.com>
Changes to AssetCache and DynamicTextureModule to eliminate
  opportunities for lost texture updates.
2009-03-24 08:21:50 +00:00
Justin Clarke Casey
6573e2ee2f * Remove asset cache size and texture stat reports from ASSET STATS since these are now inaccurate
* Correct count of assets in cache
2009-03-13 18:36:24 +00:00
Justin Clarke Casey
1bf05a543c * Move method documentation from AssetCache up to IAssetCache
* No functional changes
2009-03-09 18:35:26 +00:00
Justin Clarke Casey
5a6bc26600 * Address http://opensimulator.org/mantis/view.php?id=3207
* A saved archive now immediately expires the data in the asset cache that it used, rather than retaining all the assets (esp textures) in the cache.
* This is an imperfect solution.  Ideally we would only expire the assets newly requested for the archive (not existing ones).  But doing that would require a lot more 
restructuring.
* I don't believe there are any locking issues due to the locking performed by the underlying memory cache, but please report any issues.
2009-03-09 17:55:08 +00:00
Sean Dague
57ab79e331 * Update ScenePresenceTests to reflect current REST communication workflow.
* Fixed an issue with AssetCache where it would break unit tests randomly.

From: Arthur Rodrigo S Valadares <arthursv@linux.vnet.ibm.com>
2009-02-26 21:29:16 +00:00
Charles Krinke
8f55b9d735 Mantis#3218. Thank you kindly, TLaukkan (Tommil) for a patch that:
* Added log4net dependency to physxplugin in prebuild.xml.
* Added missing m_log fields to classes.
* Replaced Console.WriteLine with appropriate m_log.Xxxx
* Tested that nant test target runs succesfully.
* Tested that local opensim sandbox starts up without errors.
2009-02-22 20:52:55 +00:00
Mike Mazur
76c0935ec7 - remove the Metadata property from AssetBase and return all previous
properties as before
- prefix private variables with m_ in AssetBase.cs
- related to Mantis #3122, as mentioned in
  https://lists.berlios.de/pipermail/opensim-dev/2009-February/005088.html
- all services will likely need to be upgraded after this commit
2009-02-17 01:36:44 +00:00
Sean Dague
f4bec00057 From: Alan Webb <awebb@linux.vnet.ibm.com>
The change makes two principal implementation changes:

[1] It removes the hard coded set of possible asset server client
implementations, allowing any arbitrary implementation that has been
identified to the PluginLoader as an appropriate extension. The
extension point for asset server client extension
is /OpenSim/AssetServerClient. All of the old configuration rules have
been preserved, and any of the legacy configuration values will still
work as they did before, except the implementation is now loaded as a
plug-in, rather than as a hard-coded instantiation of a specific class.
The re-hashing of IAssetServer as an extension of IPlugin made upgrading
of the implementation classes a necessity.

Caveat: I have not been able to meaningfully test the crypto-grid
clients. I believe they should work correctly, but the refactoring
necessary to handle plug-in based initialization (vs constructor-based
initialisation) admits the possibility of a problem.

[2] The asset cache implementation, previously introduce as a hard-code
class instantiation is now implemented as an IPlugin. Once again the
previous (configurationless) behavior has been preserved. But now it is
possible for those interested in experimenting with cache technologies
to do so simply by introducing a new extension for the asset cache
extension point (/OpenSim/AssetCache).

I've tested all of the configuration settings, after applying the patch
to a newly extracted tree, and they seem to work OK.
2009-02-16 12:20:31 +00:00
lbsa71
801da4346a * optimized usings. 2009-02-12 09:53:12 +00:00
Sean Dague
8088802c21 From Alan Webb <awebb@linux.vnet.ibm.com>
These changes replace all direct references to the AssetCache with
IAssetCache. There is no change to functionality. Everything works as
before.

This is laying the groundwork for making it possible to register
alternative asset caching mechanisms without disrupting other parts of
OpenSim or their dependencies upon AssetCache functionality.
2009-02-09 21:47:55 +00:00
Mike Mazur
0c03a48fb2 - add OpenSim.Framework.AssetMetadata class. AssetBase is now composed of it
- trim trailing whitespace
2009-02-04 00:01:36 +00:00
Justin Clarke Casey
dbd2b45233 * Write a simple archive loading test which doesn't actually do any testing yet apart from not blow up 2009-01-23 20:38:44 +00:00
Homer Horwitz
78d42a7fc8 - Fix a formatting error in a log message (Mantis#2635). 2008-11-16 21:32:10 +00:00
Justin Clarke Casey
50e3eb31b0 * Restore storing null to represent 'missing asset' requests in the AssetCache
* If we don't do this then callers to the polling GetAsset wait the full polling time before returning
2008-11-11 17:54:21 +00:00
Adam Frisby
1493f7349f * Minor typing fixes in AssetCache - now uses base types for nearly everything.
* Code Cleanliness Fixes in LLClientView
* Using field instead of local variable for handlerUpdatePrimGroupRotation (if you notice any new oddities with prim group rotation after this patch, please mantis)
2008-11-11 17:48:36 +00:00
Jeff Ames
5276c4bdf8 Update svn properties, minor formatting cleanup. 2008-11-11 00:52:47 +00:00
Adam Frisby
e0498e1638 * Fixed asset bug. 2008-11-09 23:05:08 +00:00
Adam Frisby
c43e466301 * Enabled GTCache for AssetCache
* Items will now be locally cached for only 24 hours from last access. (Rather than until restart)
* Caveat: Implementing the new caching mechanism means statistics gathering on AssetCache is no longer functional. (Justin - you might want to take a look and see if you can somehow get that back and running if you still need it)
2008-11-09 15:00:26 +00:00
Charles Krinke
17e43dcc0f Mantis#2566. Thank you kindly, Diva for a patch that:
This patch introduces a couple of read-only properties, 
so that I can grab the asset server plugin from a region 
module. This is needed to set up an http service for 
accessing standalone assets remotely.
2008-11-06 19:27:18 +00:00
Charles Krinke
d664192dfe Mantis#2557. Thank you kindly, Diva for a patch that:
This patch changes a method from private to public.
Will make life easier for the asset mapper for 
the hypergrid.
2008-11-05 02:23:44 +00:00
Justin Clarke Casey
8a3157aa6a * Check in (disabled) results of not persisting avatar textures but rather sending ImageNotFound to clients if avatar textures are missing
* Whilst this does automatically get the client to rebake, on crossing a region border the 'local' assets are left behind
* There may be a cunning solution (such as squirting the assets on region crossing, or having them fetched from the original region) but 
instead I'm going to opt for the easy solution of keeping them in the asset database, for now
2008-10-29 18:38:10 +00:00
Justin Clarke Casey
1ff9709ea3 * Possibly fix grey avatar appearance problems
* And hopefully rebaking all the time should no longer be necessary now
* It turns out that when the client baked the texture, the uploaded asset had the Temporary flag to true (Temporary is actually deprecated).  
* It also had the StoreLocal flag set to true, which signifies that the asset should be stored locally.  If it disappears we should reply to the asset request with 
ImageNotInDatabasePacket
* However, last time this was enabled some clients started crashing.  This may well no longer be the case and needs to be tested, but in the mean time we will store 
the asset instead.
* This needs to be resolved in a better way, possibly by starting to send the ImageNotInDatabase packet again instead
2008-10-28 21:31:23 +00:00
Teravus Ovares
16b6738cda * Patch from JHurliman
* Updates to libomv r2243, 
* Remove lots of unnecessary typecasts
* Improves SendWindData()
Thanks jhurliman. 
* Will update OpenSim-libs in 10 minutes..
2008-09-26 17:25:22 +00:00
Justin Clarke Casey
3782d6aab7 * minor: Remove some of the redundant asset id storage for now 2008-09-21 20:44:54 +00:00
Justin Clarke Casey
8fb3523ef7 * Start recording asset request times after a cache miss. This is very primtive at the moment - only the last time is kept for some classes of request
* This can be seen as "Latest asset request time after cache miss" in show stats on the region console
2008-09-21 20:29:06 +00:00
Justin Clarke Casey
70e8097e31 * Eliminate the need to copy asset request lists in the asset cache when an asset is received or missing
* Also eliminates a race condition
2008-09-21 18:53:58 +00:00
Justin Clarke Casey
52f0c8d15d * minor: tidy up of AssetCache, remove currently pointless storing of thread reference 2008-09-21 17:49:52 +00:00
Teravus Ovares
7d89e12293 * This is the fabled LibOMV update with all of the libOMV types from JHurliman
* This is a HUGE OMG update and will definitely have unknown side effects.. so this is really only for the strong hearted at this point.  Regular people should let the dust settle.
* This has been tested to work with most basic functions. However..   make sure you back up 'everything' before using this.  It's that big!  
* Essentially we're back at square 1 in the testing phase..  so lets identify things that broke.
2008-09-06 07:52:41 +00:00
Jeff Ames
6ef9d4da90 Formatting cleanup. 2008-08-18 00:39:10 +00:00
Jeff Ames
80d8e2889e Update svn properties. Formatting cleanup. Remove a compiler warning. 2008-07-23 13:24:25 +00:00
Melanie Thielker
f629fdb88d Patches #9143 and #9144 (Mantis #1723)
Changes the permissions module to make scripts permissive only when intended
Adds security checks to asset transfers to prevent hacked clients fron
requesting script sources.
Adds security checks to llClientView to verify all aspects of ownership
and permissions for inventory based script retrieval.
2008-07-12 06:24:43 +00:00
Justin Clarke Casey
7fa00f9ecd * remove redundant sync locking in AssetServerBase since this is already being done by the lower database layers 2008-07-07 19:32:21 +00:00
Justin Clarke Casey
0b2fcbfec4 * Start scripts loaded from an archive 2008-07-07 18:54:11 +00:00
Justin Clarke Casey
9052c43319 * Drop InvType from the assets table since it is no longer used
* Migration should be automatic on sqlite and mysql
* Migration is not automatic on mssql, you will need to drop the invType column manually
* Migration should be fine, but as for any db change, I would recommend making sure you have backups before moving past this revision
2008-07-02 16:20:54 +00:00
Sean Dague
721988adcd add the ability to cherry pick expire something from the asset
cache.  Bandaid until we rethink the caches a bit more.
2008-06-30 15:05:30 +00:00
Teravus Ovares
cb29926e3c * Refactors call to OutPacket out of AssetCache and into LLClientView 2008-06-18 23:04:15 +00:00
Justin Clarke Casey
4c2171ec82 * Allow archiver to save and load objects within other objects to arbitrary levels
* This currently has various bugs which are more to do with the way its been hacked together than the feature itself (e.g. on save-oar, ghost prims will appear of the saved 
contained items).  These will be found and eliminated in subsequent patches.
* Not yet ready for use
2008-06-16 21:59:39 +00:00
Justin Clarke Casey
3794f25ebd * minor: Properly clear the pushed asset cache statistics where the clear-assets command is used on the region console
* stop waiting for garbage collection when GC total memory used is requested, in case the periodic request of this lags the sim
2008-06-10 23:35:04 +00:00
Jeff Ames
5752c1f5c2 Formatting cleanup. 2008-05-28 03:44:49 +00:00