From fcb435deb4f45511071c7bdb8c4e2290fdc9977f Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Mon, 22 May 2017 05:53:59 +0100 Subject: make sure we drop requests if DoHTTPGruntWork fails --- .../Servers/HttpServer/PollServiceRequestManager.cs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'OpenSim/Framework') diff --git a/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs b/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs index 314719c..8bf98da 100644 --- a/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs +++ b/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs @@ -244,11 +244,13 @@ namespace OpenSim.Framework.Servers.HttpServer try { req.DoHTTPGruntWork(m_server, responsedata); - byContextDequeue(req); } - catch (ObjectDisposedException) // Browser aborted before we could read body, server closed the stream + catch (ObjectDisposedException) { - // Ignore it, no need to reply + } + finally + { + byContextDequeue(req); } return null; }, null); @@ -263,12 +265,15 @@ namespace OpenSim.Framework.Servers.HttpServer { req.DoHTTPGruntWork(m_server, req.PollServiceArgs.NoEvents(req.RequestID, req.PollServiceArgs.Id)); - byContextDequeue(req); } catch (ObjectDisposedException) { // Ignore it, no need to reply } + finally + { + byContextDequeue(req); + } return null; }, null); } -- cgit v1.1 From 73222e4dd4e735225845184de22e245c454b40db Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Mon, 22 May 2017 19:14:19 +0100 Subject: fix IClientIPEndpoint broken by justin long ago.. but stop using it except on SceneBanner, later it my be also removed from there and everywhere --- OpenSim/Framework/Client/IClientIPEndpoint.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Framework') diff --git a/OpenSim/Framework/Client/IClientIPEndpoint.cs b/OpenSim/Framework/Client/IClientIPEndpoint.cs index 2b99bf0..2194616 100644 --- a/OpenSim/Framework/Client/IClientIPEndpoint.cs +++ b/OpenSim/Framework/Client/IClientIPEndpoint.cs @@ -34,6 +34,6 @@ namespace OpenSim.Framework.Client { public interface IClientIPEndpoint { - IPAddress EndPoint { get; } + IPEndPoint RemoteEndPoint { get; } } } -- cgit v1.1 From 928733efc908e25ea460ca4724a8846a4fb71fa1 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Tue, 23 May 2017 03:26:32 +0100 Subject: please DIE! PLEASE?? --- OpenSim/Framework/Servers/BaseOpenSimServer.cs | 9 +++++++-- .../Servers/HttpServer/PollServiceRequestManager.cs | 11 +++++++---- OpenSim/Framework/Servers/MainServer.cs | 12 ++++++++++++ 3 files changed, 26 insertions(+), 6 deletions(-) (limited to 'OpenSim/Framework') diff --git a/OpenSim/Framework/Servers/BaseOpenSimServer.cs b/OpenSim/Framework/Servers/BaseOpenSimServer.cs index 62cd543..99d94bb 100644 --- a/OpenSim/Framework/Servers/BaseOpenSimServer.cs +++ b/OpenSim/Framework/Servers/BaseOpenSimServer.cs @@ -108,12 +108,17 @@ namespace OpenSim.Framework.Servers protected override void ShutdownSpecific() { - m_log.Info("[SHUTDOWN]: Shutdown processing on main thread complete. Exiting..."); - RemovePIDFile(); base.ShutdownSpecific(); + MainServer.Stop(); + + Thread.Sleep(5000); + + RemovePIDFile(); + m_log.Info("[SHUTDOWN]: Shutdown processing on main thread complete. Exiting..."); + if (!SuppressExit) Environment.Exit(0); } diff --git a/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs b/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs index 8bf98da..e1bd564 100644 --- a/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs +++ b/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs @@ -181,17 +181,20 @@ namespace OpenSim.Framework.Servers.HttpServer { m_running = false; - Thread.Sleep(1000); // let the world move + Thread.Sleep(100); // let the world move foreach (Thread t in m_workerThreads) Watchdog.AbortThread(t.ManagedThreadId); + m_threadPool.Shutdown(); + // any entry in m_bycontext should have a active request on the other queues // so just delete contents to easy GC foreach (Queue qu in m_bycontext.Values) qu.Clear(); m_bycontext.Clear(); +/* try { foreach (PollServiceHttpRequest req in m_retryRequests) @@ -204,8 +207,9 @@ namespace OpenSim.Framework.Servers.HttpServer } PollServiceHttpRequest wreq; +*/ m_retryRequests.Clear(); - +/* while (m_requests.Count() > 0) { try @@ -218,7 +222,7 @@ namespace OpenSim.Framework.Servers.HttpServer { } } - +*/ m_requests.Clear(); } @@ -229,7 +233,6 @@ namespace OpenSim.Framework.Servers.HttpServer while (m_running) { PollServiceHttpRequest req = m_requests.Dequeue(5000); - Watchdog.UpdateThread(); if (req != null) { diff --git a/OpenSim/Framework/Servers/MainServer.cs b/OpenSim/Framework/Servers/MainServer.cs index ea7b2b5..9b1d906 100644 --- a/OpenSim/Framework/Servers/MainServer.cs +++ b/OpenSim/Framework/Servers/MainServer.cs @@ -353,5 +353,17 @@ namespace OpenSim.Framework.Servers return m_Servers[port]; } } + + public static void Stop() + { + lock (m_Servers) + { + foreach (BaseHttpServer httpServer in m_Servers.Values) + { + httpServer.Stop(); + } + } + } + } } \ No newline at end of file -- cgit v1.1 From f3eb73926e1602f855f2c7fceb040b07f7265f3b Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Tue, 23 May 2017 04:05:31 +0100 Subject: stop a few more threads on exit --- OpenSim/Framework/Monitoring/WorkManager.cs | 6 +++++- OpenSim/Framework/Servers/BaseOpenSimServer.cs | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'OpenSim/Framework') diff --git a/OpenSim/Framework/Monitoring/WorkManager.cs b/OpenSim/Framework/Monitoring/WorkManager.cs index 43130f9..a3e0390 100644 --- a/OpenSim/Framework/Monitoring/WorkManager.cs +++ b/OpenSim/Framework/Monitoring/WorkManager.cs @@ -82,6 +82,11 @@ namespace OpenSim.Framework.Monitoring HandleControlCommand); } + public static void Stop() + { + JobEngine.Stop(); + } + /// /// Start a new long-lived thread. /// @@ -131,7 +136,6 @@ namespace OpenSim.Framework.Monitoring thread.Start(); - return thread; } diff --git a/OpenSim/Framework/Servers/BaseOpenSimServer.cs b/OpenSim/Framework/Servers/BaseOpenSimServer.cs index 99d94bb..7d21e00 100644 --- a/OpenSim/Framework/Servers/BaseOpenSimServer.cs +++ b/OpenSim/Framework/Servers/BaseOpenSimServer.cs @@ -116,6 +116,8 @@ namespace OpenSim.Framework.Servers Thread.Sleep(5000); + WorkManager.Stop(); + RemovePIDFile(); m_log.Info("[SHUTDOWN]: Shutdown processing on main thread complete. Exiting..."); -- cgit v1.1