Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0007893opensim[REGION] Specific OpenSim Modulepublic2016-04-26 13:202017-07-31 16:34
Assigned Tocolosi 
PlatformMacOSOSX YosemiteOS Version10.10.5
Product Versionmaster (dev code) 
Target VersionFixed in Version 
Summary0007893: [PATCH] Add regionID to data passed from SimulatorFeaturesModule to OnSimulatorFeaturesRequest event delegates
DescriptionThe viewer requests sim features for individual regions and stores that returned info as specific to that region. However, on the OpenSim side, the SimulatorFeaturesModule is an ISharedRegionModule and does not track the mapping of CAPS url to region/scene. Any OpenSim module subscribing to the OnSimulatorFeaturesRequest currently has no way of knowing which region the viewer is requesting details for. If that information is region specific, this event cannot be processed properly.

I have submitted a patch which retrieves the region UUID during the RegisterCaps step (which registers a unique url for each combination of agent and region). It adds this regionID to the parameters for the private HandleSimulatorFeaturesRequest function. To avoid making a breaking change to the event interface, I added the regionID to the features map passed to every event rather than as a new parameter. I then remove this entry from the features map before sending it to the viewer to avoid impacting the net protocol.
Steps To ReproduceCreate an ISharedRegionModule. Subscribe to the OnSimulatorFeaturesRequest event. Create a sim process with multiple regions. On login, your OnSimulatorFeaturesRequest event will be called once for every region/scene on this process. You will not have any information provided to determine which region the viewer is requesting feature information about.
Additional InformationThis fix is intended to be quick and backwards compatible. A proper long-term solution should be discussed by the OpenSim Core team. I would suggest either making this module an INonSharedRegionModule (and having one per region) or modifying the module to track regionID as well as agentID with each cap url. The RegisterCaps function is public, so I did not modify this, but this function should probably be private and include a regionID. The HandleSimulatorFeaturesRequest should really either pass the regionID as a parameter (or an extra OSDMap for information such as regionID which may be necessary for event processing) or keep separate delegate registration lists for each region so that modules can register for this event per region and track the regionID internally.
TagsNo tags attached.
Git Revision or version numbercf878983587f3cfe210daa98fdd7f9304d9e9627
Run Mode Standalone (Multiple Regions)
Physics EngineBasicPhysics
EnvironmentMono / OSX
Mono VersionOther
Attached Filespatch file icon 0001-Patch-for-adding-RegionID-to-OnSimulatorFeatureReque.patch [^] (4,431 bytes) 2016-04-26 13:21 [Show Content]

- Relationships

-  Notes
colosi (reporter)
2016-04-26 13:24

Patch included
- adds m_sceneList to track all scenes for this ISharedRegionModule (not just last added)
- Properly adds and removes scenes from this list as they are added or removed from the sim.
- Retrieves RegionID during the RegisterCaps function and adds it as a parameter to HandleSimultaorFeaturesRequest
- HandleSimulatorFeaturesRequest adds the regionID to the features OSDMap as "RegionIDForInternalEvents" and removes this from the OSDMap after the event is processed, but before the features map is returned to the viewer.
UbitUmarov (administrator)
2016-08-13 17:25

SimulatorFeaturesModule is already nonShared:

public class SimulatorFeaturesModule : INonSharedRegionModule, ISimulatorFeaturesModule
colosi (reporter)
2017-07-31 16:34

Module was changed to a NonSharedRegion module to fix this issue.

- Issue History
Date Modified Username Field Change
2016-04-26 13:20 colosi New Issue
2016-04-26 13:21 colosi File Added: 0001-Patch-for-adding-RegionID-to-OnSimulatorFeatureReque.patch
2016-04-26 13:24 colosi Note Added: 0030231
2016-04-26 13:24 colosi Status new => patch included
2016-08-13 17:25 UbitUmarov Note Added: 0031018
2017-07-31 16:34 colosi Note Added: 0032228
2017-07-31 16:34 colosi Status patch included => resolved
2017-07-31 16:34 colosi Resolution open => fixed
2017-07-31 16:34 colosi Assigned To => colosi

Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker