Update on OAR Exports

A quick update on the “export OARs”. These are the OAR files I have been accepting requests for, intended to be personal OAR exports for use on something like Sim-on-a-stick or to be taken to another grid. (Note: you don’t need to be a former region owner or land owner; if you had content in an InWorldz region somewhere at grid shutdown time in July then we can try to recover it. See my earlier blog post for more.)

I have about 20 of 150 or so known requests done but I might need to redo them. it’s all been on hold a couple of days while I investigated a problem with assets not being recognized on OpenSim. While there is an OpenSim problem in how OpenSim just dumps bad data (see my follow-up blog post for more), I’ve also tracked down what the data is and where it was coming from in Halcyon OAR exports.

The root of the trouble is that when Tranq implemented a new binary format for object storage (project Thoosa) in InWorldz, he did not complete that work everywhere it needed to be. There are three problems:

Problem 1: the code that scans a region for the IDs of assets to save in an OAR file did not support his new format, so it did not include those assets in an OAR backup. This will result in missing assets when the OAR is reloaded outside InWorldz. The problem wasn’t detected in InWorldz since the assets were already there and did not need to come from the OARs. Region backups and rollbacks did not save the assets since they were already available grid-wide. This is a problem for all of our OAR exports, but not all objects (more infor below).

Problem 2: The second area that didn’t get updated for Thoosa was the OAR storage code to store nested objects in Contents of other rezzed objects. The assets for those nested objects, if modified after Thoosa was introduced a few years ago, were stored in the OARs in the newer Thoosa binary format, not non-binary XML format needed by OpenSim. (This part is understandable since OpenSim couldn’t read Halcyon OARs until recently.) This means some objects in Contents were only readable by Halcyon servers, and for those objects, any assets referenced by them were not stored at all, due to the first problem above. (Non-object Contents items are not affected.)

Problem 3: OpenSim seems to have a problem where if it cannot find an asset referenced by an object, it doesn’t rez the object at all. It tells you there’s a problem and then refuses to rez the object. This means you cannot just rez a partial object and clean it up in an OpenSim region.

I’ve fixed the first two problems, which should fix future OAR exports and also take care of the “invalid XML” messages on OpenSim and the region hangs problem on OpenSim that can result from the dumping of invalid data to the console. However, this will not restore any assets that weren’t saved in July due to problem 1 above.

However, the process for OAR exports is for me to reload each unfiltered OAR with a whitelist of avatar accounts to include (often just one account, sometimes partners or teams), then save a new “export” OAR for use in other grids. The fact that these are reloaded under the latest Halcyon code and then resaved as a new OAR means that what does get saved should be usable in OpenSim after these changes. It will fix the Thoosa-specific nested objects to be exported in XML format, and provide at least the nested object itself.

I’ve also tracked down a couple of other issues with XML object formats not being compliant with OpenSim’s needs, which is a bit quirky, and worked around those in the Halcyon code to make them more compliant with OpenSim.

I’m still investigating the effects of these issues, now that I have a clearer understanding, to determine if I need to redo the OARs I’ve already completed or not, and if the code is now complete enough after these new changes that I can proceed again with the remaining OARs.

I should be able to proceed again in another day or so.

Update: That work was completed a couple of days ago, all looks good now. I’ve redone a couple of the region OARs already exported, but I will be redoing ALL of the regions already exported (about 20) over the next few days. Then I’ll be resuming my work through the list I have so far. If you haven’t emailed a request for your content yet, please be sure to email me according to my earlier post.