Skip to content

Script creation and removal is asynchronous  #1

@arthur00

Description

@arthur00

ScriptInstance creates and removes scripts using the AsyncCommandManager. If scripts with same UUID are quickly removed and recreated (e.g. quark crossings), race conditions occur. One in particular is recurring, timers:

4975-8016-cc6dbcd60e6d) in object DeadObject in artSCR1. Unable to load script state file ScriptEngines/b99c51c7-f425-4369-9894-77e7614baf27/8e0bcf78-8e25-46fb-8aee-8c2fb229c29d.state. XML is defaultTruetimer22000000000019999999720. Exception An element with the same key already exists in the dictionary. at System.Collections.Generic.Dictionary`2[System.String,OpenSim.Region.ScriptEngine.Shared.Api.Plugins.Timer+TimerInfo].Add (System.String key, OpenSim.Region.ScriptEngine.Shared.Api.Plugins.TimerInfo value) [0x00171] in /build/buildd/mono-2.10.8.1/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:452
at OpenSim.Region.ScriptEngine.Shared.Api.Plugins.Timer.CreateFromData (UInt32 localID, UUID itemID, UUID objectID, System.Object[] data) [0x0005f] in /share/opensim/bld/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Timer.cs:185
at OpenSim.Region.ScriptEngine.Shared.Api.AsyncCommandManager.CreateFromData (IScriptEngine engine, UInt32 localID, UUID itemID, UUID hostID, System.Object[] data) [0x000df] in /share/opensim/bld/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/AsyncCommandManager.cs:429
at OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.Load (System.AppDomain dom, System.String assembly, StateSource stateSource) [0x00409] in /share/opensim/bld/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs:380

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions