Commit Graph

9445 Commits (759636f37e4ea212af4ca40565b2d4e9be1eebbe)

Author SHA1 Message Date
Dr Scofield 759636f37e From: Alan Webb <alan_webb@us.ibm.com>
This change addresses two issues:

  [1] It adds a flag field to the blendface call which allows the
      caller to indicate whether or not the generated asset is
      temporary, and whether or not the asset being replaced should
      be explicitly retired fromt the memory cache. The decimal
      values correspond to:
      0 - Permanent asset, do not expire old asset
      1 - Permanent asset, expire old asset
      2 - Temporary asset, do not expire old asset
      3 - Temporary asset, expire old asset
      '3' corresponds to the default behavior seen today, and is
          the continued behavior of the non-blendface calls.
  [2] The dynamic texture routines are highly-asynchronous and can
      be scheduled simultaneously on a multi-core machine. The nature
      of the texture management interfaece is such that updates may
      be lost, and the nature of asynchornous operation means that
      they may be processed out of order. A lock has been added to
      ensure that updates are at least atomic. No attempt has been
      made to enforce ordering. The lock applies to the SceneObjectPart
      being updated and is held for the lifetime of the TextureEntry
      used to carry texture updates (the one instance carries all
      faces supported by the prim).

   Users of these services should remember that the dynamic texture
   call is asynchronous and control will be returned *before* the
   texture update has actually occurred. As a result, a isubsequent
   GetTexture call may not return the expected asset id. A script
   must wait for the corresponding TEXTURE_CHANGED event before
   retrieving any texture information.
2009-06-09 06:39:27 +00:00
Melanie Thielker 0356fef9ab Updating the flotsam asset cache. Thank you, mcortez!
Fixes Mantis #3784
2009-06-08 20:09:49 +00:00
diva b87f982a7e Bug fix. Adding the asset to the cache after a DB get. 2009-06-08 19:35:36 +00:00
diva b43fc318fb That didn't quite work. Trying this instead -- prompt given in the cmd line. 2009-06-08 17:50:17 +00:00
diva 71c8346f78 Making the prompt configurable in the server shell. Default is "Server". 2009-06-08 17:34:42 +00:00
diva 398d321f15 IInentoryDataPlugins were missing. 2009-06-08 17:22:23 +00:00
diva 9216f4b7c2 First draft of the inventory service IN connector. Probably won't work yet. But everything of inventory service is now checked in, first draft. 2009-06-08 03:16:55 +00:00
diva 16d5003274 Added more functions to IInventoryService. Unsure about whether all of these are really necessary. 2009-06-08 03:09:24 +00:00
diva 1ad237a8a7 First draft of inventory service connectors, and service implementation. No handlers yet, this is just the OUT part for now. It's not active and nothing in the simulator uses this yet. Just checking it in to start sharing with others. There are a couple of interesting software design points that could use other devs opinions.
Hopefully I added all needed files.
2009-06-07 19:00:55 +00:00
Mike Mazur cda6b24668 Skip lone ident statments or for-loop assignments
SL's LSL supports lone idents:

    integer x;
    x;

as well as lone idents in for-loop assignments:

    for (x; x < 10; x++) { ... }

while those are errors in C# (MONO at least). This patch skips lone
idents in such places.

Fixes Mantis #3042.
2009-06-07 10:22:55 +00:00
Mike Mazur 48bc2f3a42 Allow empty assignment in for-loop
For loops with no assignment are no longer syntax errors. For example,
this is now valid:

    for ( ; i < 10; i++) { ... }

Corresponding changes to lsl.{lexer,parser} in r99 in opensim-libs.

Fixes Mantis #2501. Fixes Mantis #2884.
2009-06-07 10:22:41 +00:00
lbsa71 a3c91de17d * Reverting the test restructuring as, on second thought, this is not at all how the tests are structured.
(pt2)
2009-06-07 08:51:10 +00:00
lbsa71 6267f939c5 * Reverting the test restructuring as, on second thought, this is not at all how the tests are structured.
(pt1)
2009-06-07 08:50:43 +00:00
Mike Mazur d25b9151c8 Rename private TestllAngleBetween method
It seems overloading the method TestllAngleBetween confused nunit a bit
and caused it to try running the private TestllAngleBetween method. The
method's access modified prevented that from happening, and nunit
complained.
2009-06-07 08:32:07 +00:00
diva db9d3d3a90 Added Flotsam's cache config vars to configuration. Made it the default in grided sims. Made Cenome cache the default in standalone sims. More splitting in ini files, invisible to the user. 2009-06-06 17:06:47 +00:00
Melanie Thielker 5139160ce4 Correct an error where the config file name was always considered to be a
local file. This caused llHttpRequest and llSetInventoryPermsMask to fail
on regions that load their config from a web server
2009-06-06 16:39:28 +00:00
Dahlia Trimble f94e192b86 some code cleanup
test commit with cygwin svn
2009-06-06 08:41:27 +00:00
Justin Clarke Casey 4234e49445 * minor: tiny tweak just to trigger another panda build 2009-06-05 19:53:24 +00:00
Justin Clarke Casey ccbe049287 * A bug fix for the last mantis 3741 bugfix
* Hopefully now, the nre should not occur and the lock should be correctly unlocked during the initial save oar process
2009-06-05 19:34:35 +00:00
Justin Clarke Casey fbd0f5491b * A further fix for mantis 3641 (oar saves do not complete)
* For some reason, if a null was recieved (indicating a missing asset), the code had stopped passing that on to the waiting lock, resulting in a perpetual freeze
* This change passes the null on correctly
* Many thanks to thomax for being insistent in presenting his analysis of the problem :)
2009-06-05 19:20:31 +00:00
Justin Clarke Casey c20f31beff * refactor: split out part xml writing in SceneObjectSerializer 2009-06-05 18:44:44 +00:00
Justin Clarke Casey 87097f2484 * Fix unit tests so that they correctly handle 404 missing asset response
* I didn't think there were tests in this area - my bad
2009-06-05 17:03:44 +00:00
Justin Clarke Casey 593942b195 * Fix problem where known missing assets would stop save oar ever completing
* Issue was that region server was silently dropping an XmlException caused by trying to deserialize the blank asset service response
* So make asset service return http status NOT FOUND rather than OK in accordance with REST
* and interpret this correctly in the async response so that a null object is sent back
* This means that this fix won't be active until both region simulator and server reach this revision
2009-06-05 16:14:22 +00:00
Justin Clarke Casey bfea077508 * Add oar saving timeout
* If an oar save fails to get responses to all asset requests to the asset service then timeout after 60 seconds
* Timeout executes abort, since missing assets in an OAR seems bad
* This means that oar saves won't permanently hang and instead can be retried if something goes wrong with the asset service
* This is not a solution to mantis 3714.  Hopefully a fix will be along shortly since I can now consistently reproduce that problem
2009-06-05 13:48:43 +00:00
Melanie Thielker 9f932a4205 Thank you, thomax, for a patch to provide finer-grained access control to
scripting.
Fixes Mantis #2862
2009-06-05 09:47:42 +00:00
lbsa71 d3ae3d7e72 * convenience ignores 2009-06-05 06:23:09 +00:00
lbsa71 7431b9a3f9 * Restructured Scenes Tests to follow (what I conceive of as being) current directory standards. (pt 2 - thank you, svn. not.) 2009-06-05 06:22:42 +00:00
lbsa71 fd5e45733c * Restructured Scenes Tests to follow (what I conceive of as being) current directory standards. (pt 1 - thank you, svn. not.) 2009-06-05 06:22:08 +00:00
Melanie Thielker f992db6807 Committing mcortez's FlotsamAssetCache after several positive reviews.
Thank you, mcortez!
2009-06-05 04:58:55 +00:00
diva ffac6f94f0 Changed a comment to reflect changes in config. 2009-06-04 18:41:19 +00:00
diva 99f3382c9c Fixed placement of optional configs for CenomeAssetCache. Thank you ImazeR. 2009-06-04 18:36:02 +00:00
Jeff Ames c6cef4bad5 Comment out unused variables / private fields to avoid compiler warnings. 2009-06-04 03:58:04 +00:00
Jeff Ames 2a855a6457 Comment out unused private functions to avoid compiler warnings. 2009-06-04 01:37:31 +00:00
Jeff Ames 1e3f378c57 Fix comparison of UUID with null. 2009-06-04 01:26:31 +00:00
Jeff Ames f9bca113e3 Ignore some generated files. 2009-06-04 01:10:49 +00:00
Jeff Ames 5f923f0632 Add copyright headers. 2009-06-04 01:09:18 +00:00
Jeff Ames 007016ecd2 Update svn properties. 2009-06-04 00:51:02 +00:00
Melanie Thielker 14bb372bb0 Committing the skeleton of the authentication service 2009-06-03 20:14:41 +00:00
Melanie Thielker 18cc7ffa44 Make AssetMetadata [Serializable] to help in binary caching 2009-06-03 19:54:19 +00:00
Melanie Thielker 6e494e5de5 Committing the partial refactor of authentication services. No user functionlity
will eat your babies, etc
2009-06-03 19:49:26 +00:00
lbsa71 9b619043ce * Making sure we fail a bit earlier if we have no AssetService 2009-06-03 17:29:21 +00:00
Dr Scofield 717fd3b5b9 From: Chris Yeoh <yeohc@au1.ibm.com>
This patch adds oar file date and time (UTC) meta data to an oar file
when it is created.  It also adds a unique ID, though this id does not
in anyway identify the machine that the oar file was created on.

When an oar file with this meta data is loaded this extra information
is saved with the region settings and available via LSL through:

- osLoadedCreationDate()
- osLoadedCreationTime()
- osLoadedCreationID()

If there is no meta data these fields will be blank. Subsequent oar
file loads will erase the information for the previous oar file
load. Persistence has only been implemented for MySQL, the other
backends need updating.

Overall this allows us to much more easily identify the specific version of
software that clients are using. Its very straightforward to edit the oar file
to change the ID string to be something more human friendly.

Included in the patch is a new file OpenSim/Data/MySQL/Resources/030_RegionStore.sql
required for the MySQL DB migration.

btw I had a chat with justincc about this a few weeks ago since he
wrote the oar file import/export and he sounded happy to accept
something that included date/time information but didn't want anything
that would silently leak private information like machine names.
2009-06-03 12:48:04 +00:00
Dr Scofield 074b66ddcf From: Chris Yeoh <yeohc@au1.ibm.com>
- fixes wild swings in memory usage related to usage of GetDrawStringSize()

  We've been seeing wild swings in memory usage and a large chunk of
  memory leak. From analysing this it's pretty clear that the mono
  garbage collector is rather buggy! When exercised heavily it looks
  like it frees more than its meant to resulting in crashes.

  GetDrawStringSize() measures the size in pixels of text. To do this
  memory for an image is allocated and used to call the GDI text
  measure functions.  Although no reference to the temporary memory
  for the measuring is kept, it takes quite a while for the mono
  garbage collector to clean up - so if lots calls to
  GetDrawStringSize() are made at once there can be a spike in memory
  usage. If the garbage collector is not fast enough then the GDI
  layer runs out of memory. It also looks like the garbage collector
  is not always reclaiming all of the memory.

  I've attached an OpenSim patch which works around the garbage collector
  issues. Instead of dynamically allocating memory for measuring
  text sizes, it serialises (on a per region basis) access to a single
  block of memory. The effect of this is to be nicer to the garbage
  collector as it has a lot less work to do, at the cost of some
  theoretical loss in performance (nothing noticeable with our tests
  which hit it pretty hard).

  OpenSim still does leak memory slowly, but it is a lot more stable
  with this patch. I suspect that either the garbage collector misses
  bits of freed memory or the GDI/cairo layer leaks a bit each time a
  texture is created. Thats going to be a lot harder to hunt down, but
  for reference if someone has OpenSim running on Windows it would be
  interesting to see if it has the same problem as it would tell us if
  its a mono/GDI problem or an OpenSim problem.
2009-06-03 12:39:44 +00:00
Dr Scofield 25a0a56570 From: Alan Webb <alan_webb@us.ibm.com>
Modify dynamic texture handling so that an explicitly targetted
  face is not scheduled for immediate expiration. The requirement
  for precaching explicitly requires these assets to persist. They
  do however remain temporary.

  This approach leaves the legacy mode of operation (ALL_SIDES)
  unchanged in this respect.
2009-06-03 12:21:14 +00:00
Dahlia Trimble 9e3b592fa3 Thank you Imaze Rhiano for a patch that implements Cenome Memory Asset Cache (Mantis #3759)
See the files: bin/config-include/GridCommon.ini.example and bin/config-include/StandaloneCommon.ini.example to configure and enable this caching method.
2009-06-03 08:41:08 +00:00
Dahlia Trimble b64c484d26 Thanks aduffy70 for Mantis #3762: A patch to fix llGround, llGroundNormal, and llGroundSlope 2009-06-03 05:31:53 +00:00
Dahlia Trimble 528db43326 revert r9765 due to too many errors on some compilers. Affects Mantis #3759 2009-06-03 02:03:11 +00:00
Dahlia Trimble e978edc264 add body to an empty getter/setter 2009-06-03 01:27:07 +00:00
Dahlia Trimble 23e0c84f51 fix a int[] declaration 2009-06-03 01:06:00 +00:00
Dahlia Trimble b38be1a7fd Thank you Imaze Rhiano for a patch that implements Cenome Memory Asset Cache (Mantis #3759)
See the files: bin/config-include/GridCommon.ini.example and bin/config-include/StandaloneCommon.ini.example to configure and enable this caching method.
2009-06-02 22:42:47 +00:00