Commit Graph

57 Commits

Author SHA1 Message Date
Justin Clark-Casey (justincc)
dc0455e217 In XAssetService, on a delete asset request also delete the asset in any chained service.
This eliminates the async migration since it causes a race condition with the "delete asset" console command
2013-06-28 19:11:44 +01:00
Justin Clark-Casey (justincc)
45dee383db refactor: Reuse Get() method in AssetService to eliminate some copy/paste in other Get methods 2013-03-15 22:42:34 +00:00
Justin Clark-Casey (justincc)
bd0c1d9b6a Migrate assets from chained asset service to xassetservice as they are requested.
This shrinks the asset database over time as duplicate assets are fetched.
2013-03-15 22:33:39 +00:00
Justin Clark-Casey (justincc)
d05af4bdad Fix bug in AssetService where requesting data only for an asset would throw an exception if the asset did not exist. 2013-03-15 22:14:34 +00:00
Justin Clark-Casey (justincc)
924d6e892a Make it possible to chain another asset service underneath the de-duplicating XAssetService.
This makes it possible to use the dedupliicating service without needing to migrate all the existing asset data beforehand.
Currently controlled by a ChainedServiceModule setting in [AssetService] (e.g. ChainedServiceModule = "OpenSim.Services.AssetService.dll:AssetService")
Not yet ready for use.
2013-03-15 21:53:39 +00:00
Diva Canto
4779f7d7d5 Deleted all AssemblyFileVersion directives 2013-02-19 17:14:55 -08:00
Justin Clark-Casey (justincc)
1f1da23097 Bump version and assembly version numbers from 0.7.5 to 0.7.6
This is mostly Bluewall's work but I am also bumping the general version number
OpenSimulator 0.7.5 remains in the release candidate stage.
I'm doing this because master is significantly adding things that will not be in 0.7.5
This update should not cause issues with existing external binary DLLs because our DLLs do not have strong names
and so the exact version match requirement is not in force.
2013-02-05 00:23:17 +00:00
Diva Canto
df62d113ab The last few AssemblyInfos. Finished! 2012-11-14 21:18:18 -08:00
Justin Clark-Casey (justincc)
462ad336dc Move check to allow only deletion of maptiles up to AssetServerDeleteHandler from AssetService.
This allows us to use a common check for both AssetService and XAssetService.
It also allows future console commands to delete an asset.
As before, deletion of maptile assets is not allowed remotely unless this is explicitly configured.
2012-11-02 00:02:10 +00:00
Justin Clark-Casey (justincc)
1ec84ac8b1 Add basic asset connector tests to check behaviour for normal, local and temporary assets.
Make AssetServiceConnector return more useful data on failure, such as what DLL it was trying to load
Allow LocalAssetServiceConnector.GetData() to work without a cache present, as works for the other lasc Get* methods.
2012-09-15 02:12:26 +01:00
Justin Clark-Casey (justincc)
293d0cc629 minor: Comment out "Deleting asset" log messages for now 2012-08-03 00:25:22 +01:00
Diva Canto
8131a24cde Send the config section name up to the service classes themselves (XInventory and Assets). 2012-03-27 10:08:13 -07:00
Justin Clark-Casey (justincc)
ab54ce1907 Fix configuration problems where XAssetDatabasePlugin was picked up accidentally.
The asset data plugin now implements IXAssetData rather than IAssetData so the ordinary AssetService should no longer pick it up.
This replaces the changes in 92b1ade.  There is no longer any need to adjust your StandaloneCommon.ini/Robust.ini/Robust.HG.ini files.
This may explain very recent issues in the last few weeks where textures have been disappearing or turning white (as they were going to different places).
Unfortunately, you will need to rollback to an earlier database backup or reupload the textures.
2012-03-19 00:18:04 +00:00
Justin Clark-Casey (justincc)
dd63cd1656 Start by adding XAssetService as a copy of the existing AssetService.
This is the start of exploring the creation of a bundled OpenSimulator asset service that does de-duplication and possibly file storage of assets.
Along the lines of coyled's SRAS, but not intended to replace, merely to act as a more performant bundled default.
Might end up nicking stuff from kcozen's patch at http://opensimulator.org/mantis/view.php?id=5429
More details at http://opensimulator.org/wiki/Feature_Proposals/Deduplicating_Asset_Service
Feedback and discussion welcome as commits are made.
2012-03-02 02:23:35 +00:00
Justin Clark-Casey (justincc)
f2ff6d5186 Move asset commands from AssetService to AssetServerConnector so that we can harmonise the same commands on the simulator side.
No functional change.
2012-01-05 20:33:44 +00:00
Snoopy Pfeffer
dfbfc9826a Damaged assets, especially appearance textures, could crash the region server with a fatal exception.
Now, such excpetions are caught by an exception handler and just an error message is shown.
This was the kind of exception causing these fatal server crashes:

  APPLICATION EXCEPTION DETECTED: System.UnhandledExceptionEventArgs^M
  ^M
  Exception: System.ArgumentOutOfRangeException: Argument is out of range.
  Parameter name: offset exceeds the size of buffer
    at System.Net.Sockets.NetworkStream.BeginRead (System.Byte[] buffer, Int32 offset, Int32 size, System.AsyncCallback callback, System.Object state) [0x00000] in <filename unknown>:0
    at HttpServer.HttpClientContext.OnReceive (IAsyncResult ar) [0x00000] in <filename unknown>:0 ^M
  ^M
  Application is terminating: True^M
2011-11-06 15:05:19 +01:00
Justin Clark-Casey (justincc)
be357f8fee Fix bug in persisting saved appearances for npcs
Assets have to be marked non-local as well as non-temporary to persist.  This is now done.
Hopefully addresses http://opensimulator.org/mantis/view.php?id=5660
2011-08-30 01:58:32 +01:00
Justin Clark-Casey (justincc)
6b51d8a10e In the asset service, check that an asset exists before attempting to store it. 2011-08-17 23:24:41 +01:00
Justin Clark-Casey (justincc)
c3d82bdcb1 When loading library asset set, only store an asset if it's different from an existing one with the same id.
We compare existing and loaded asset by doing an SHA1 on both, so that a changed library asset will still update the store.
This cuts asset library load time from 10 seconds to <1 sec.
Note, a fix on the previous commit revealed a bug where a library script cannot be copied except on the first login after a cache clear.
This is unrelated to this commit and needs to be fixed at some subsequent time.
2011-07-08 22:53:19 +01:00
Justin Clark-Casey (justincc)
913e6b70c6 minor: slightly shorten "show digest" printing code 2011-05-06 22:13:56 +01:00
Justin Clark-Casey (justincc)
621279e498 on asset "show digest" command, print out the asset type name (e.g. texture) as well as its number 2011-05-06 22:04:26 +01:00
Justin Clark-Casey (justincc)
9ff94a3a44 Say which filename an asset has been dumped to on a successful dump 2011-05-06 21:58:41 +01:00
Justin Clark-Casey (justincc)
46baadbb65 remove the NDesk.Options using since didn't end up needing it 2011-05-06 00:22:19 +01:00
Justin Clark-Casey (justincc)
bc49a0bc5d Add "dump asset" command to the asset service for debugging purposes.
This command dumps the asset with the given id to a file with the same name.
2011-05-06 00:09:08 +01:00
Justin Clark-Casey (justincc)
a0d80140f2 Make all the objects in a coalescence reappears after being loaded from an IAR. This still doesn't work proprerly since some required textures/contained item assets might be missing.
From pure code inspection, it looks like the uuid gatherer may get most asset uuids because the scene object serializer naively pulls non-root parts from all contained scene objects into one mega-object.  However, root part uuids may well still be missing, and there may be other odd artifacts from this bug.
It appears that storing the size of the coalescence and the offsets is redundant, since one can work out this information from the position data already in the scene object groups.
2011-04-15 00:42:06 +01:00
Diva Canto
c169a62f55 Typo 2011-02-12 18:05:25 -08:00
Diva Canto
ae4b02e115 WARNING: LOTS OF CONFIGURATION CHANGES AFFECTING PRIMARILY HG CONFIGS. Added capability to preserve creator information on HG asset transfers. Added a new HGAssetService that is intended to be the one outside the firewall. It processes and filters the assets that go out of the grid. Also fixed the normal AssetService to do special things for the main instance (console commands, etc). Moved HGInventoryService to OpenSim.Services.HypergridService. Changed the way the login service gets the ServiceURL configs. 2010-11-25 11:14:16 -08:00
Diva Canto
b233a4b2ca * Fixed spamming the assets table with map tiles. The tile image ID is now stored in regionsettings. Upon generation of a new tile image, the old one is deleted. Tested for SQLite and MySql standalone.
* Fixed small bug with map search where the local sim regions weren't found.
2010-05-09 13:39:56 -07:00
Melanie
60357d3778 Implement the "delete" path for assets. Adds a new option to allow remote asset deletion in robust handler. 2010-05-09 17:56:52 +01:00
Melanie
9b22393cf3 Add a field asset_flags and a corresponding enum to the asset database. This
CHANGES THE ASSET SERVER PROTOCOL and means you CAN NOT MIX PRIOR VERSIONS
WITH LATER ONES. It may also eat your babies, yada, yada, yada.
The usual cautions for migrations to the assets table apply.
Coding: Can not guarantee nut free.
2010-05-09 17:02:22 +01:00
John Hurliman
e838776920 * Thanks cmickeyb, for a patch that sanity checks if the response from m_Database.GetAsset(assetID) is null in AssetService.cs 2010-04-27 17:13:54 -07:00
John Hurliman
3f6c4c150e * Adds IAssetService.GetCached() to allow asset fetching from the local cache only
* Adds GetTextureModule that implements the "GetTexture" capability, aka HTTP texture fetching. This is a significantly optimized path that does not require any server-side JPEG2000 decoding, texture priority queue, or UDP file transfer
* Sanity check for null reference in LLClientView.RefreshGroupMembership()
2010-04-08 12:31:44 -07:00
Jeff Ames
af265e001d Formatting cleanup. 2010-02-15 19:21:56 +09:00
Justin Clark-Casey (justincc)
802a969267 Fix http://opensimulator.org/mantis/view.php?id=4224
This resolves the problem where eyes and hair would turn white on standalone configurations
When a client receives body part information, for some insane reason or other it always ends up uploading this back to the server and then immediately re-requesting it.
This should have been okay since we stored that asset in cache.  However, the standalone asset service connector was not checking this cache properly, so every time the client made the request for the asset it has just loaded it would get a big fat null back in the face, causing it to make clothes and hair white.
This bug did not affect grids since they use a different service connector.
2010-02-12 21:32:03 +00:00
John Hurliman
0d2e6463d7 * Minimized the number of times textures are pulled off the priority queue
* OnQueueEmpty is still called async, but will not be called for a given category if the previous callback for that category is still running. This is the most balanced behavior I could find, and seems to work well
* Added support for the old [ClientStack.LindenUDP] settings (including setting the receive buffer size) and added the new token bucket and global throttle settings
* Added the AssetLoaderEnabled config variable to optionally disable loading assets from XML every startup. This gives a dramatic improvement in startup times for those who don't need the functionality every startup
2009-10-14 11:43:31 -07:00
Jeff Ames
ee205e7e81 Formatting cleanup. 2009-10-01 01:17:47 +09:00
Kunnis
f1287cc7af * Switching IAssetData to follow the new naming schema, removing the separate insert and update methods. 2009-08-19 23:45:22 +01:00
Melanie
430cc0a24a Add "show digest <id>" console commdn to the ROBUST asset handler
R.O.B.U.S.T.# show digest b8d3965a-ad78-bf43-699b-bff8eca6c975
Name: Terrain Dirt
Description:
Type: 0
Content-type: image/jp2
0000: FF-4F-FF-51-00-2F-00-00-00-00-00-80-00-00-00-80
2009-08-09 23:22:59 +01:00
Melanie Thielker
7f4a3392fc Fix the AssetServiceBase bug I introduced by reordering configuration load
order. Thanks, Grumly57, for pointing it out.
The point of the original change was to let the more specific setting override
the less specific one, actually, I disabled the use of the less specific one.
2009-06-23 08:37:12 +00:00
Melanie Thielker
044446821b Committing the meat of the user server interface and the bones of the service implementation 2009-06-22 12:18:04 +00:00
diva
e1fd76ace6 Moving these nice HG connectors to their homes. 2009-06-15 23:29:00 +00:00
diva
0f367bd7bb Heart surgery no.2: the inventory service hooks.
Several improvements in the connectors themselves.
Several improvements in configurations.
Needed to add a hack in IUserService and UserManagerBase, to be removed when that service is refactored.
2009-06-10 13:18:32 +00:00
Jeff Ames
840de6c036 Minor: Change OpenSim to OpenSimulator in older copyright headers and LICENSE.txt. 2009-06-01 06:37:14 +00:00
diva
fb6d314d4d This should make HG asset transfers work much better. It now uses HGUuidGatherer, which is a subclass of UuidGatherer. Hence, on-line HG asset transfers use exactly the same UUID collection code as save oar/xml. If it doesn't work, it's Justin's fault :D 2009-05-23 17:51:13 +00:00
diva
6d6d8445b9 Bug fix in HGAssetService. POSTs back home (standalone) should now work. 2009-05-22 18:02:49 +00:00
Dr Scofield
1d02636c27 cleaning out warnings.
NOTE: we currently have a gazillion warnings caused stuff flagged as
"obsolete" (OGS1 stuff) --- what's up with that?
2009-05-22 14:57:00 +00:00
diva
13da5a9fba Finished HG Service Store. Not fully functional because of problems with asset.ID insisting on being a UUID string. 2009-05-18 20:04:59 +00:00
Melanie Thielker
cb2ce61876 Move the connectors under services for reasons of application logic. Remove
the user server skeleton in preparation for introducing a generic server
2009-05-18 11:43:37 +00:00
diva
720e2bc5d9 Renaming [ServiceConnectors] back to [Modules]. 2009-05-17 15:37:50 +00:00
diva
aac8ca0411 HG asset transfers starting to work -- GETs only for now. 2009-05-17 01:38:43 +00:00