Restore overload mode accidentally disabled in a prior commit. Add a new
config option, LogOverloads, to log when a thread pool overload occurs. This option defaults to "True" because the logging data is useful for diagnosing threading issues.0.8.0.3
parent
2572ed9ed9
commit
a108fcac95
|
@ -127,12 +127,14 @@ namespace OpenSim.Framework
|
||||||
/// 3 = full stack trace, including common threads
|
/// 3 = full stack trace, including common threads
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static int LogThreadPool { get; set; }
|
public static int LogThreadPool { get; set; }
|
||||||
|
public static bool LogOverloads { get; set; }
|
||||||
|
|
||||||
public static readonly int MAX_THREADPOOL_LEVEL = 3;
|
public static readonly int MAX_THREADPOOL_LEVEL = 3;
|
||||||
|
|
||||||
static Util()
|
static Util()
|
||||||
{
|
{
|
||||||
LogThreadPool = 0;
|
LogThreadPool = 0;
|
||||||
|
LogOverloads = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static uint nextXferID = 5000;
|
private static uint nextXferID = 5000;
|
||||||
|
@ -2172,7 +2174,7 @@ namespace OpenSim.Framework
|
||||||
{
|
{
|
||||||
long numRunning = numRunningThreadFuncs;
|
long numRunning = numRunningThreadFuncs;
|
||||||
|
|
||||||
if (m_ThreadPool != null)
|
if (m_ThreadPool != null && LogOverloads)
|
||||||
{
|
{
|
||||||
if ((threadFuncOverloadMode == 0) && (numRunning >= m_ThreadPool.MaxThreads))
|
if ((threadFuncOverloadMode == 0) && (numRunning >= m_ThreadPool.MaxThreads))
|
||||||
{
|
{
|
||||||
|
@ -2193,7 +2195,7 @@ namespace OpenSim.Framework
|
||||||
threadInfo.StackTrace = full;
|
threadInfo.StackTrace = full;
|
||||||
threadInfo.LogThread = ShouldLogThread(partial);
|
threadInfo.LogThread = ShouldLogThread(partial);
|
||||||
|
|
||||||
if (loggingEnabled && threadInfo.LogThread)
|
if (threadInfo.LogThread)
|
||||||
{
|
{
|
||||||
m_log.DebugFormat("Queue threadfunc {0} (Queued {1}, Running {2}) {3}{4}",
|
m_log.DebugFormat("Queue threadfunc {0} (Queued {1}, Running {2}) {3}{4}",
|
||||||
threadFuncNum, numQueued, numRunningThreadFuncs,
|
threadFuncNum, numQueued, numRunningThreadFuncs,
|
||||||
|
|
|
@ -154,6 +154,12 @@ namespace OpenSim
|
||||||
proxyUrl = networkConfig.GetString("proxy_url", "");
|
proxyUrl = networkConfig.GetString("proxy_url", "");
|
||||||
proxyOffset = Int32.Parse(networkConfig.GetString("proxy_offset", "0"));
|
proxyOffset = Int32.Parse(networkConfig.GetString("proxy_offset", "0"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IConfig startupConfig = Config.Configs["Startup"];
|
||||||
|
if (startupConfig != null)
|
||||||
|
{
|
||||||
|
Util.LogOverloads = startupConfig.GetBoolean("LogOverloads", true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual void LoadPlugins()
|
protected virtual void LoadPlugins()
|
||||||
|
|
|
@ -292,6 +292,14 @@
|
||||||
; False items will be removed from the scene permanently
|
; False items will be removed from the scene permanently
|
||||||
UseTrashOnDelete = True
|
UseTrashOnDelete = True
|
||||||
|
|
||||||
|
; #
|
||||||
|
; # Logging
|
||||||
|
; #
|
||||||
|
|
||||||
|
; Force logging when the thread pool approaches an overload condition
|
||||||
|
; Provides useful data for post-mortem analysis even in a production
|
||||||
|
; system with reduced logging
|
||||||
|
LogOverloads = True
|
||||||
|
|
||||||
[Map]
|
[Map]
|
||||||
;WorldMapModule = "WorldMap"
|
;WorldMapModule = "WorldMap"
|
||||||
|
|
Loading…
Reference in New Issue