After shutdown application hangs... Still listening on assigned ports tcp 0 0 0.0.0.0:8003 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:8903 0.0.0.0:* LISTEN Full thread dump: "PollServiceWatcherThread:8003" at <0xffffffff> at (wrapper managed-to-native) System.Threading.Thread.SleepInternal (int) <0x00051> at System.Threading.Thread.Sleep (int) <0x00016> at OpenSim.Framework.Servers.HttpServer.PollServiceRequestManager.CheckRetries () <0x00041> at System.Threading.ThreadHelper.ThreadStart_Context (object) <0x00099> at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) <0x00178> at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) <0x00020> at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object) <0x00059> at System.Threading.ThreadHelper.ThreadStart () <0x0002e> at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) <0x000c8> "PollServiceWorkerThread 0:8003" "PollServiceWorkerThread 1:8903" at <0xffffffff> at System.Threading.Monitor.ObjWait (bool,int,object) <0x00095> at System.Threading.Monitor.Wait (object,int,bool) <0x0002c> at System.Threading.Monitor.Wait (object,int) <0x00013> at OpenSim.Framework.BlockingQueue`1.Dequeue (int) <0x000ed> at OpenSim.Framework.Servers.HttpServer.PollServiceRequestManager.PoolWorkerJob () <0x000c3> at System.Threading.ThreadHelper.ThreadStart_Context (object) <0x00099> at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) <0x00178> at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) <0x00020> at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object) <0x00059> at System.Threading.ThreadHelper.ThreadStart () <0x0002e> at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) <0x000c8> "PollServiceWorkerThread 0:8903" "HttpServer Internal Zombie Timeout Checker" at <0xffffffff> at (wrapper managed-to-native) System.Threading.Thread.SleepInternal (int) <0x00051> at System.Threading.Thread.Sleep (int) <0x00016> at HttpServer.ContextTimeoutManager.ThreadRunProcess (object) <0x00028> at System.Threading.ThreadHelper.ThreadStart_Context (object) <0x000d0> at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) <0x00178> at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) <0x00020> at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object) <0x00059> at System.Threading.ThreadHelper.ThreadStart (object) <0x0004c> at (wrapper runtime-invoke) .runtime_invoke_void__this___object (object,intptr,intptr,intptr) <0x000d6> "PollServiceWorkerThread 1:8003" "PollServiceWatcherThread:8903" at <0xffffffff> at (wrapper managed-to-native) System.Threading.Thread.SleepInternal (int) <0x00051> at System.Threading.Thread.Sleep (int) <0x00016> at OpenSim.Framework.Servers.HttpServer.PollServiceRequestManager.CheckRetries () <0x00041> at System.Threading.ThreadHelper.ThreadStart_Context (object) <0x00099> at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) <0x00178> at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) <0x00020> at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object) <0x00059> at System.Threading.ThreadHelper.ThreadStart () <0x0002e> at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) <0x000c8> "STP:PoolService:0" at <0xffffffff> at (wrapper managed-to-native) System.Threading.WaitHandle.WaitAny_internal (System.Threading.WaitHandle[],int) <0x00057> at System.Threading.WaitHandle.WaitMultiple (System.Threading.WaitHandle[],int,bool,bool) <0x0010b> at System.Threading.WaitHandle.WaitAny (System.Threading.WaitHandle[],int,bool) <0x000d3> at Amib.Threading.Internal.STPEventWaitHandle.WaitAny (System.Threading.WaitHandle[],int,bool) <0x00023> at Amib.Threading.Internal.WorkItemsQueue.DequeueWorkItem (int,System.Threading.WaitHandle) <0x00213> at Amib.Threading.SmartThreadPool.Dequeue () <0x0003b> at Amib.Threading.SmartThreadPool.ProcessQueuedItems () <0x002d7> at System.Threading.ThreadHelper.ThreadStart_Context (object) <0x00099> at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) <0x00178> at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) <0x00020> at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object) <0x00059> at System.Threading.ThreadHelper.ThreadStart () <0x0002e> at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) <0x000c8> "Timer-Scheduler" at <0xffffffff> at (wrapper managed-to-native) System.Threading.WaitHandle.WaitOne_internal (intptr,int) <0x00057> at System.Threading.WaitHandle.WaitOneNative (System.Runtime.InteropServices.SafeHandle,uint,bool,bool) <0x00058> at System.Threading.WaitHandle.InternalWaitOne (System.Runtime.InteropServices.SafeHandle,long,bool,bool) <0x0003f> at System.Threading.WaitHandle.WaitOne (long,bool) <0x0002b> at System.Threading.WaitHandle.WaitOne (int,bool) <0x00032> at System.Threading.WaitHandle.WaitOne (int) <0x0001b> at System.Threading.Timer/Scheduler.SchedulerThread () <0x00890> at System.Threading.ThreadHelper.ThreadStart_Context (object) <0x00099> at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) <0x00178> at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) <0x00020> at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object) <0x00059> at System.Threading.ThreadHelper.ThreadStart () <0x0002e> at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) <0x000c8> "HttpServer Internal Zombie Timeout Checker" at <0xffffffff> at (wrapper managed-to-native) System.Threading.Thread.SleepInternal (int) <0x00051> at System.Threading.Thread.Sleep (int) <0x00016> at HttpServer.ContextTimeoutManager.ThreadRunProcess (object) <0x00028> at System.Threading.ThreadHelper.ThreadStart_Context (object) <0x000d0> at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) <0x00178> at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) <0x00020> at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object) <0x00059> at System.Threading.ThreadHelper.ThreadStart (object) <0x0004c> at (wrapper runtime-invoke) .runtime_invoke_void__this___object (object,intptr,intptr,intptr) <0x000d6> "STP:PoolService:0" at <0xffffffff> at (wrapper managed-to-native) System.Threading.WaitHandle.WaitAny_internal (System.Threading.WaitHandle[],int) <0x00057> at System.Threading.WaitHandle.WaitMultiple (System.Threading.WaitHandle[],int,bool,bool) <0x0010b> at System.Threading.WaitHandle.WaitAny (System.Threading.WaitHandle[],int,bool) <0x000d3> at Amib.Threading.Internal.STPEventWaitHandle.WaitAny (System.Threading.WaitHandle[],int,bool) <0x00023> at Amib.Threading.Internal.WorkItemsQueue.DequeueWorkItem (int,System.Threading.WaitHandle) <0x00213> at Amib.Threading.SmartThreadPool.Dequeue () <0x0003b> at Amib.Threading.SmartThreadPool.ProcessQueuedItems () <0x002d7> at System.Threading.ThreadHelper.ThreadStart_Context (object) <0x00099> at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) <0x00178> at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) <0x00020> at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object) <0x00059> at System.Threading.ThreadHelper.ThreadStart () <0x0002e> at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) <0x000c8> "Finalizer" "" at <0xffffffff> at (wrapper managed-to-native) System.Environment.Exit (int) <0x00051> at OpenSim.Server.OpenSimServer.Main (string[]) <0x00906> at (wrapper runtime-invoke) .runtime_invoke_int_object (object,intptr,intptr,intptr) <0x000f5> **** NOTES **** SmartThreadPool has Shutdown methods for aborting threads. Maybe we need to add calls to these as we exit the application?