MantisBT - opensim
View Issue Details
0007777opensim[REGION] OpenSim Corepublic2015-12-10 03:512019-02-06 11:50
aiaustin 
melanie 
normaltweakalways
closedno change required 
PCWindows10
master (dev code) 
master (dev code) 
opensim-0.9.0-160-gbdab95f
Grid (Multiple Regions per Sim)
BulletSim
.NET / Windows64
None
N/A
0007777: Uncaught exception for HTTP use in Scripts when Internet not accessible gives very long error trace
It can be quite common for DNS name lookup or other temporary internet accessibility issues when scripts make use of HTTP (e.g. processed in ScriptsHttpRequests). Currently a quite long exception is thrown and reported at the default debugging level in the OpenSim.exe console of this occurs. If such an exception could be caught and properly reported with a nice simple message it would tidy things up somewhat.

E.g. here is a sample trace as shown in OpenSim.exe console for a TheHypergates.com script that is trying to use HTTP to report its online availability at a time when the Internet could not be accessed for a period....

11:55:39 - [SCRIPT INSTANCE]: Runtime error in script monitor (event timer), part HyperGate v0.7.3 (TheHyperGates.com) 62816ca0-d6ed-4a94-8659-f23e51841c95 at <137.5, 137.5, 26.6> in AiLand System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Net.Sockets.SocketException: This is usually a temporary error during hostname resolution and means that the local server did not receive a response from an authoritative server

Server stack trace:
   at System.Net.Dns.GetAddrInfo(String name)
   at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6)
   at System.Net.Dns.GetHostAddresses(String hostNameOrAddress)
   at OpenSim.Framework.OutboundUrlFilter.CheckAllowed(Uri url) in d:\Temp\opensim-0.9.0-150-g7d8b783\OpenSim\Framework\OutboundUrlFilter.cs:line 215
   at OpenSim.Region.CoreModules.Scripting.HttpRequest.HttpRequestModule.CheckAllowed(Uri url) in d:\Temp\opensim-0.9.0-150-g7d8b783\OpenSim\Region\CoreModules\Scripting\HttpRequest\ScriptsHttpRequests.cs:line 274
   at OpenSim.Region.CoreModules.Scripting.HttpRequest.HttpRequestModule.StartHttpRequest(HttpRequestClass req) in d:\Temp\opensim-0.9.0-150-g7d8b783\OpenSim\Region\CoreModules\Scripting\HttpRequest\ScriptsHttpRequests.cs:line 279
   at OpenSim.Region.CoreModules.Scripting.HttpRequest.HttpRequestModule.StartHttpRequest(UInt32 localID, UUID itemID, String url, List`1 parameters, Dictionary`2 headers, String body, HttpInitialRequestStatus& status) in d:\Temp\opensim-0.9.0-150-g7d8b783\OpenSim\Region\CoreModules\Scripting\HttpRequest\ScriptsHttpRequests.cs:line 256
   at OpenSim.Region.ScriptEngine.Shared.Api.LSL_Api.llHTTPRequest(String url, list parameters, String body) in d:\Temp\opensim-0.9.0-150-g7d8b783\OpenSim\Region\ScriptEngine\Shared\Api\Implementation\LSL_Api.cs:line 13274
   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)

Exception rethrown at [0]:
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at OpenSim.Region.ScriptEngine.Shared.Api.Interfaces.ILSL_Api.llHTTPRequest(String url, list parameters, String body)
   at OpenSim.Region.ScriptEngine.Shared.ScriptBase.ScriptBaseClass.llHTTPRequest(String url, list parameters, String body) in d:\Temp\opensim-0.9.0-150-g7d8b783\OpenSim\Region\ScriptEngine\Shared\Api\Runtime\LSL_Stub.cs:line 926
   at SecondLife.XEngineScript.O00O000OOO0O00OO() in c:\Users\bat\AppData\Local\Temp\me04tbdn.0.cs:line 47
   at SecondLife.XEngineScript.default_event_timer() in c:\Users\bat\AppData\Local\Temp\me04tbdn.0.cs:line 64
   --- End of inner exception stack trace ---

Server stack trace:
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
   at OpenSim.Region.ScriptEngine.Shared.ScriptBase.Executor.ExecuteEvent(String state, String FunctionName, Object[] args) in d:\Temp\opensim-0.9.0-150-g7d8b783\OpenSim\Region\ScriptEngine\Shared\Api\Runtime\Executor.cs:line 197
   at OpenSim.Region.ScriptEngine.Shared.ScriptBase.ScriptBaseClass.ExecuteEvent(String state, String FunctionName, Object[] args) in d:\Temp\opensim-0.9.0-150-g7d8b783\OpenSim\Region\ScriptEngine\Shared\Api\Runtime\ScriptBase.cs:line 97
   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)

Exception rethrown at [0]:
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at OpenSim.Region.ScriptEngine.Shared.ScriptBase.IScript.ExecuteEvent(String state, String FunctionName, Object[] args)
   at OpenSim.Region.ScriptEngine.Shared.Instance.ScriptInstance.EventProcessorInt() in d:\Temp\opensim-0.9.0-150-g7d8b783\OpenSim\Region\ScriptEngine\Shared\Instance\ScriptInstance.cs:line 888

No tags attached.
Issue History
2015-12-10 03:51aiaustinNew Issue
2015-12-10 03:52aiaustinSummaryUncaught exception for HTTP use in Scripts => Uncaught exception for HTTP use in Scripts when Internet not accessible gives very long error trace
2015-12-10 18:37melanieNote Added: 0029795
2015-12-10 18:37melanieStatusnew => resolved
2015-12-10 18:37melanieResolutionopen => no change required
2015-12-10 18:37melanieAssigned To => melanie
2019-02-06 11:50BillBlightNote Added: 0034584
2019-02-06 11:50BillBlightStatusresolved => closed

Notes
(0029795)
melanie   
2015-12-10 18:37   
We're not interested in hiding potentially useful information. In fact, in the past some people tended to replace e.ToString() with e.Message to achieve that. However, that produced output we, the developers, can't use to fix bugs.

There are other types of net related exceptions we need to see and we need to see where they come from, so we will not remove the traces. Run at info level if you don't need them.
(0034584)
BillBlight   
2019-02-06 11:50   
Marked as Resolved but never closed, can be reopened if needed.