Difference between revisions of "Parcel Prim Limit Overflow test"

From Second Life Wiki
Jump to navigation Jump to search
 
(3 intermediate revisions by one other user not shown)
Line 9: Line 9:
== setup ==
== setup ==
* UserA, own some land.
* UserA, own some land.
* UserA, upload a mesh that has a prim equivalent less than 40 (Use duck.dae with the default upload settings and scale)
* UserA, upload a mesh that has a prim equivalent less than 10 (Use duck.dae with the physics settings set to use level of detail 'lowest')
* UserA, upload a mesh that has a prim equivalent greater than 40 (Use duck.dae with the default upload settings, then scale it up.)
* UserA, upload a mesh that has a prim equivalent greater than 40 (Use duck.dae with the physics settings set to use level of detail 'lowest', then scale it up.)
* UserB, rez objects on UserA land until only 40 prims are available on the parcel.
* UserB, rez objects on UserA land until only 10 prims are available on the parcel.


=== rez a mesh ===
=== rez a mesh ===
* UserA, rez a mesh that has a prim equivalent greater than 40.
* UserA, rez a mesh that has a prim equivalent greater than 10.
* '''Verify''' UserA receives a descriptive message explaining that the rez failed because the parcel is full
* '''Verify''' UserA receives a descriptive message explaining that the rez failed because the parcel is full
* '''Verify''' Neither UserA's nor UserB's objects are not returned.
* '''Verify''' Neither UserA's nor UserB's objects are not returned.
Line 21: Line 21:
* UserA, create a prim on your parcel and add the following script
* UserA, create a prim on your parcel and add the following script
<pre>default{touch_start(integer total_number){llRezObject(llGetInventoryName(INVENTORY_OBJECT, 0), llGetPos()+<0,0,1>, ZERO_VECTOR, ZERO_ROTATION, 1);}}</pre>
<pre>default{touch_start(integer total_number){llRezObject(llGetInventoryName(INVENTORY_OBJECT, 0), llGetPos()+<0,0,1>, ZERO_VECTOR, ZERO_ROTATION, 1);}}</pre>
* UserA, put a mesh that has a prim equivalent greater than 40 inside the contents of the prim.
* UserA, put a mesh that has a prim equivalent greater than 10 inside the contents of the prim.
* Touch the prim.
* Touch the prim.
* '''Verify''' UserA receives a descriptive message explaining that the rez failed because the parcel is full
* '''Verify''' UserA receives a descriptive message explaining that the rez failed because the parcel is full
Line 27: Line 27:


== resize a mesh ==
== resize a mesh ==
* UserA, rez a mesh that has a prim equivalent less than 40.
* UserA, rez a mesh that has a prim equivalent less than 10.
* UserA, resize the mesh larger, so its cost increases past 40
* UserA, resize the mesh larger, so its cost increases past 10
* UserA, deselect the object
* UserA, deselect the object
* (Ideal behavior: The scale operation fails and the object snaps back to its previous scale. A helpful error message explains that the scale operation failed because it would have exceeded the parcel's resource limit.)
* (Ideal behavior: The scale operation fails and the object snaps back to its previous scale. A helpful error message explains that the scale operation failed because it would have exceeded the parcel's resource limit.)
Line 91: Line 91:
* '''Verify''' UserA's attachment is not dropped on the parcel.
* '''Verify''' UserA's attachment is not dropped on the parcel.
* '''Verify''' UserA receives the same standard error message as when you try to drop a prim attachment on a parcel that is full.
* '''Verify''' UserA receives the same standard error message as when you try to drop a prim attachment on a parcel that is full.
== parcel resources shrink due to abandon, causing overflow ==
* UserA: subdivide your parcel into 2 halves
* UserA: rez a mesh object onto one of the halves
* UserB: rez another mesh object onto one of the halves.  Choose an object which brings the parcel to over 50% full
* UserA: abandon the empty parcel
* '''Verify''' The parcel prim resource dropped accordingly (via About Land)
* '''Verify''' UserA's object is not returned
* '''Verify''' UserB's object is returned
== parcel resources shrink due to decreased region object bonus, causing overflow ==
* Estate manager: set the region "object bonus" to 2.0, and hit "Apply"
* UserA: rez a mesh object onto your parcel
* UserB: rez another mesh object onto the parcel.  Choose an object which brings the parcel to over 50% full
* Estate manager:  set the region "object bonus" to 1.0, and hit "Apply"
* '''Verify''' The parcel prim resource dropped by a factor of 2 (via About Land)
* '''Verify''' UserA's object is not returned
* '''Verify''' UserB's object is returned
== parcel prim limits do not immediately apply to selected objects ==
* UserA: rez a mesh object onto your parcel
* UserA: rez a 2nd mesh object next to your parcel, with enough cost to cause overflow returns
* UserA: drag the 2nd object onto your parcel, and don't deselect it
* UserA: wait a minute or two
* '''Verify''' neither of UserA's objects are returned
* UserA: deselect the 2nd object
* '''Verify''' that the 2nd object is returned within a few seconds

Latest revision as of 16:19, 15 July 2011


Purpose

  • Eliminate paths of accidental object return due to Mesh object editing.
  • This means that when UserA is editing or creating objects on his parcel, there should be no way to accidentally return other people's objects on his land.
  • When possible also avoid returning UserA's own objects, by failing to perform the operation that would have caused the overflow and providing a helpful error message.

setup

  • UserA, own some land.
  • UserA, upload a mesh that has a prim equivalent less than 10 (Use duck.dae with the physics settings set to use level of detail 'lowest')
  • UserA, upload a mesh that has a prim equivalent greater than 40 (Use duck.dae with the physics settings set to use level of detail 'lowest', then scale it up.)
  • UserB, rez objects on UserA land until only 10 prims are available on the parcel.

rez a mesh

  • UserA, rez a mesh that has a prim equivalent greater than 10.
  • Verify UserA receives a descriptive message explaining that the rez failed because the parcel is full
  • Verify Neither UserA's nor UserB's objects are not returned.

rez a mesh via script

  • UserA, create a prim on your parcel and add the following script
default{touch_start(integer total_number){llRezObject(llGetInventoryName(INVENTORY_OBJECT, 0), llGetPos()+<0,0,1>, ZERO_VECTOR, ZERO_ROTATION, 1);}}
  • UserA, put a mesh that has a prim equivalent greater than 10 inside the contents of the prim.
  • Touch the prim.
  • Verify UserA receives a descriptive message explaining that the rez failed because the parcel is full
  • Verify Neither UserA's nor UserB's objects are not returned.

resize a mesh

  • UserA, rez a mesh that has a prim equivalent less than 10.
  • UserA, resize the mesh larger, so its cost increases past 10
  • UserA, deselect the object
  • (Ideal behavior: The scale operation fails and the object snaps back to its previous scale. A helpful error message explains that the scale operation failed because it would have exceeded the parcel's resource limit.)
  • Verify UserA's mesh object is returned.
  • Verify UserA receives a descriptive message explaining why the object was returned.
  • Verify UserB's objects are not returned.
  • Also test:
    • A rezzes object, B rezzes object, A scales already-rezzed object beyond resource limit.
    • B rezzes object, A rezzes object, A scales B's already-rezzed object (B will need to give A permissions to do this)

change Physics shape type manually

  • UserA, rez a mesh that has a prim equivalent less than 10.
  • UserA, change the Physics Shape Type to Prim. (This should increase the cost past 10)
  • Verify UserA's mesh object is returned.
  • Verify UserA receives a descriptive message explaining why the object was returned.
  • Verify UserB's objects are not returned.


  • UserA, link several torii together
  • UserB, rez other prims or meshes on the parcel until the parcel prim limit is reached.
  • UserA, edit the root prim of the torii linked set and set the Physics Shape Type to Convex Hull
  • Verify the Prim equivalent of the object increased , overflowing the parcel prim limit and causing the linked set to return.
  • Verify this caused no other objects to return.

change the physics shape type as a result of linking or unlinking.

  • UserA, on some parcel other than your own, rez a mesh that has a prim equivalent less than 10.
  • Duplicate the mesh and link the 2 meshes together.
  • Set the Physics Shape Type to None. (You'll see an error, but that's okay. The child mesh is now set to None)
  • Take the linked mesh into inventory.
  • Rez the linked mesh onto your parcel
  • UserB, Fill up the parcel with objects
  • UserA, Unlink the linked meshes.
  • Verify one of UserA's mesh object is returned.
  • Verify UserA receives a descriptive message explaining why the object was returned.
  • Verify UserB's objects are not returned.
  • It would be better if only the prims of the linked object were returned. Or better yet, the unlink should fail with a helpful error because it will cause a surprise object return situation.(SH-570)

stand up from a vehicle

  • UserA, Sit on a Mesh that has a prim equivalent greater than 10 then drag it onto your parcel
  • Verify no prims are returned.
  • UserA, stand up.
  • Verify UserA's mesh object (the vehicle) is returned.
  • Verify UserA receives a descriptive message explaining why the vehicle was returned.
  • Verify UserB's objects are not returned.

change a temporary prim into a temporary mesh

  • UserA, create 15 torii on a different parcel.
  • Link the torii together.
  • Set the torii to Temporary by checking the Temporary box in the Objects tab of the Edit Tools.
  • Move the linked set onto your parcel and deselect the linked set.
  • Verify no objects return. (because temporary prims are not counted against the parcel resource limit)
  • Edit the torii and set the Physics Shape Type to Convex Hull then deselect the object.
  • Verify UserA's mesh object is returned. (because temporary meshes are counted against the parcel resource limit)
  • Verify UserA receives a descriptive message explaining why the object was returned.
  • Verify UserB's objects are not returned.

drop a mesh attachment that would overflow the parcel

  • UserA, attach a mesh that has a resource cost greater than the resource available on your parcel.
  • UserA, stand on your parcel and attempt to Drop the attachment on the parcel.
  • Verify UserA's attachment is not dropped on the parcel.
  • Verify UserA receives the same standard error message as when you try to drop a prim attachment on a parcel that is full.

parcel resources shrink due to abandon, causing overflow

  • UserA: subdivide your parcel into 2 halves
  • UserA: rez a mesh object onto one of the halves
  • UserB: rez another mesh object onto one of the halves. Choose an object which brings the parcel to over 50% full
  • UserA: abandon the empty parcel
  • Verify The parcel prim resource dropped accordingly (via About Land)
  • Verify UserA's object is not returned
  • Verify UserB's object is returned

parcel resources shrink due to decreased region object bonus, causing overflow

  • Estate manager: set the region "object bonus" to 2.0, and hit "Apply"
  • UserA: rez a mesh object onto your parcel
  • UserB: rez another mesh object onto the parcel. Choose an object which brings the parcel to over 50% full
  • Estate manager: set the region "object bonus" to 1.0, and hit "Apply"
  • Verify The parcel prim resource dropped by a factor of 2 (via About Land)
  • Verify UserA's object is not returned
  • Verify UserB's object is returned

parcel prim limits do not immediately apply to selected objects

  • UserA: rez a mesh object onto your parcel
  • UserA: rez a 2nd mesh object next to your parcel, with enough cost to cause overflow returns
  • UserA: drag the 2nd object onto your parcel, and don't deselect it
  • UserA: wait a minute or two
  • Verify neither of UserA's objects are returned
  • UserA: deselect the 2nd object
  • Verify that the 2nd object is returned within a few seconds