Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0008545opensim[REGION] OpenSim Corepublic2019-06-11 08:012019-07-11 17:41
Assigned To 
PlatformOSOS Version
Product Version0.9.0.1 
Target VersionFixed in Version 
Summary0008545: Materials won't persist in some instances
DescriptionAfter changing normal or specular material parameters, when running the backup command in console, taking an object from world, or detaching an object, the newly changed material parameters won't be there next time the object is rezzed or attached.

It is understandable that there is a timer involved that persists materials after a certain number of minutes to prevent hitting the database too much/too often; but the materials are only persisted by timer (Indeed if I change the materials on an object and wait a few minutes before detaching or taking from world then the materials will "stick") and not also by the backup command, take from world, or detach (as is the case with everything else such as textures, colors, glow, fullbright, etc).

I don't think most people will know this though and there is an expectation that the changed materials be there in the event that they take their object back or detach their object before the persist timer has elapsed.
Steps To Reproduce1. Change normal or specular material parameters on an object (I only tested with using custom textures or a blank texture for the normal and specular maps; not the "built in" bump maps or the old shiny settings)

2. Immediately detach or take the object after changing the materials without waiting for the persist timer

3. Log off, run fcache clear in the console, clear viewer cache, log back in. This step is important so as to make sure the viewer isn't pulling cached material textures when they really aren't there on the database.

4. Rez or attach the object modified in step 1 and the material changes will not be there; and there will possibly be warnings in the OpenSim console about missing material IDs
TagsNo tags attached.
Git Revision or version number
Run Mode Grid (Multiple Regions per Sim)
Physics EngineubODE
Script Engine
Environment.NET / Windows64
Mono VersionNone
Attached Files

- Relationships

-  Notes
UbitUmarov (administrator)
2019-06-11 09:08

do not run fcache clear
region cache is fundamental for performance, and due to issues we still have, you may even lose contents.
How to proper clean region cache is still a problem
UbitUmarov (administrator)
2019-06-11 09:13

materials are saved on backup.
but materials are assets stored on grid asset services. (and region local cache)
what may be happening is that you shutdown the region before it was able to upload the material to grid. ???
mewtwo0641 (reporter)
2019-06-11 19:14

I don't normally run fcache clear; but I was doing that, and clearing the viewer cache, for the testing of this since I wanted to ensure that I was testing that the newly modified materials were persisted to and coming from the database rather than just from the cache. But I am unsure why everything else persists fine such as regular textures, prim colors, glow, fullbright, etc but not textures?
UbitUmarov (administrator)
2019-06-11 21:37

it is not textures, it is materials (that may include textures).
Diference is that materials need to be stored on grid, all other prim things are local to region, only get into grid when taken to user inventory
and sure clear cache to test this is needed
mewtwo0641 (reporter)
2019-06-13 20:58

Ah I understand now. Is there anyway to fix this so that the results of the backup command, detach, and take from world are a bit more immediate though? I don't recall this issue being present before the httptests branch and the work done on the materials scripting.
UbitUmarov (administrator)
2019-06-14 04:01

did a minor test and all worked as expected :(
One potential problem is that actual sending of the material to grid is async to the backup, so if there is lag to grid and the region does shutdown, there is the risk it is never saved and so lost.
mewtwo0641 (reporter)
2019-06-14 07:10

I am a little bit confused. Does it mean that if I change materials on an object, then immediately detach or take it back, but skip the steps of running fcache clear and shutting the server down, that the changed materials will eventually make its way to the database? Even if the object was removed from the scene before that happened?
UbitUmarov (administrator)
2019-06-14 11:45

- When a material is uploaded by viewer it is stored on local asset cache only, it is placed on a temporary materials.
- if another material is uploaded for same face(s), the material is removed from references table and local asset cache. If it is temporary it is lost.
- during normal regions backup time tick check, temporary materials that did not changed in last minute are saved to grid asset services, losing temporary status
- on manual or shutdown backup, all are sent to grid

the target object only needs to exist during the viewer upload process

*** This may change in future ***
UbitUmarov (administrator)
2019-06-14 12:15

made a change on master to reduce the async parts of material save to gird during manual backup/shutdown
mewtwo0641 (reporter)
2019-07-11 17:41

Thank you for taking a look into this Ubit. I have been busy for a while so have not had much chance to test this. Will test it out soon and report results.

- Issue History
Date Modified Username Field Change
2019-06-11 08:01 mewtwo0641 New Issue
2019-06-11 09:08 UbitUmarov Note Added: 0035386
2019-06-11 09:13 UbitUmarov Note Added: 0035387
2019-06-11 19:14 mewtwo0641 Note Added: 0035390
2019-06-11 21:37 UbitUmarov Note Added: 0035391
2019-06-13 20:58 mewtwo0641 Note Added: 0035393
2019-06-14 04:01 UbitUmarov Note Added: 0035395
2019-06-14 07:10 mewtwo0641 Note Added: 0035397
2019-06-14 11:45 UbitUmarov Note Added: 0035398
2019-06-14 12:15 UbitUmarov Note Added: 0035399
2019-07-11 17:41 mewtwo0641 Note Added: 0035472

Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker