You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Service Fabric集群频繁崩溃转储:Method CompareOrdinal不支持

Service Fabric集群崩溃转储持续生成导致内存占用过高问题

环境信息

  • Service Fabric集群版本:10.1.2493.9590
  • 节点规格:Standard_D2ds_v4
  • 操作系统:Ubuntu 20.04-LTS-Gen2

问题现象

集群每小时生成新的崩溃转储,.NET ThreadPool.dmp文件大量写入日志,引发内存占用过高问题。

崩溃转储堆栈跟踪

{"Method CompareOrdinal not supported."}        System.NotSupportedException
 Message    Method CompareOrdinal not supported.    string
 Thread [1971120] .NET ThreadPool Worker    System.Threading.Thread
 StackTrace     System.Diagnostics.StackFrame[]
 [0]    Azure.Data.Tables.Queryable.ExpressionNormalizer.VisitMethodCallNoRewrite(System.Linq.Expressions.MethodCallExpression call)    System.Diagnostics.StackFrame
 [1]    Azure.Data.Tables.Queryable.ExpressionNormalizer.VisitMethodCall(System.Linq.Expressions.MethodCallExpression call) System.Diagnostics.StackFrame
 [2]    [External Code] System.Diagnostics.StackFrame
 [3]    Azure.Data.Tables.Queryable.ExpressionNormalizer.VisitBinary(System.Linq.Expressions.BinaryExpression b)    System.Diagnostics.StackFrame
 [4]    [External Code] System.Diagnostics.StackFrame
 [5]    Azure.Data.Tables.Queryable.ExpressionNormalizer.VisitBinary(System.Linq.Expressions.BinaryExpression b)    System.Diagnostics.StackFrame
 [6]    [External Code] System.Diagnostics.StackFrame
 [7]    Azure.Data.Tables.Queryable.ExpressionNormalizer.VisitBinary(System.Linq.Expressions.BinaryExpression b)    System.Diagnostics.StackFrame
 [8]    [External Code] System.Diagnostics.StackFrame
 [9]    Azure.Data.Tables.Queryable.ExpressionNormalizer.Normalize(System.Linq.Expressions.Expression expression, System.Collections.Generic.Dictionary<System.Linq.Expressions.Expression, System.Linq.Expressions.Expression> rewrites)   System.Diagnostics.StackFrame
 [10]   Azure.Data.Tables.TableClient.Bind(System.Linq.Expressions.Expression expression)   System.Diagnostics.StackFrame
 [11]   FabricDCA.AzureTableQueryableCsvUploaderDefault.DeleteOldEntities(Azure.Data.Tables.TableClient tableClient, System.DateTime cutoffTime, string partitionKey, FabricDCA.AzureTableQueryableCsvUploaderDefault.StatusEntity statusEntity)    System.Diagnostics.StackFrame
 [12]   FabricDCA.AzureTableQueryableCsvUploaderDefault.DeleteOldLogsHandler(object state)  System.Diagnostics.StackFrame
 [13]   [External Code] System.Diagnostics.StackFrame
 InnerException null    
 Additional details     string
 

   at Azure.Data.Tables.Queryable.ExpressionNormalizer.VisitMethodCallNoRewrite(MethodCallExpression call)
   at Azure.Data.Tables.Queryable.ExpressionNormalizer.VisitMethodCall(MethodCallExpression call)
   at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
   at System.Linq.Expressions.ExpressionVisitor.VisitBinary(BinaryExpression node)
   at Azure.Data.Tables.Queryable.ExpressionNormalizer.VisitBinary(BinaryExpression b)
   at System.Linq.Expressions.BinaryExpression.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
   at System.Linq.Expressions.ExpressionVisitor.VisitBinary(BinaryExpression node)
   at Azure.Data.Tables.Queryable.ExpressionNormalizer.VisitBinary(BinaryExpression b)
   at System.Linq.Expressions.BinaryExpression.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
   at System.Linq.Expressions.ExpressionVisitor.VisitBinary(BinaryExpression node)
   at Azure.Data.Tables.Queryable.ExpressionNormalizer.VisitBinary(BinaryExpression b)
   at System.Linq.Expressions.BinaryExpression.Accept(ExpressionVisitor visitor)
   at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
   at System.Linq.Expressions.ExpressionVisitor.VisitLambda[T](Expression`1 node)
   at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
   at Azure.Data.Tables.Queryable.ExpressionNormalizer.Normalize(Expression expression, Dictionary`2 rewrites)
   at Azure.Data.Tables.TableClient.Bind(Expression expression)
   at Azure.Data.Tables.TableClient.Query[T](Expression`1 filter, Nullable`1 maxPerPage, IEnumerable`1 select, CancellationToken cancellationToken)
   at FabricDCA.AzureTableQueryableCsvUploaderDefault.DeleteOldEntities(TableClient tableClient, DateTime cutoffTime, String partitionKey, StatusEntity statusEntity)
   at FabricDCA.AzureTableQueryableCsvUploaderDefault.DeleteOldLogsHandler(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Threading.TimerQueueTimer.Fire(Boolean isThreadPool)
   at System.Threading.TimerQueue.FireNextTimers()
   at System.Threading.UnmanagedThreadPoolWorkItem.ExecuteUnmanagedThreadPoolWorkItem(IntPtr callback, IntPtr state)
   at System.Threading.UnmanagedThreadPoolWorkItem.System.Threading.IThreadPoolWorkItem.Execute()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()

临时缓解方案

执行以下PowerShell命令禁用崩溃转储收集:

Set-AzServiceFabricSetting -ResourceGroupName 'API-PROD' -Name 'admiral-prod-api'  -Section 'AzureWinFabCrashDump' -Parameter 'IsEnabled' -Value "false"

内容的提问来源于stack exchange,提问作者ODrobyazko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 14:05:01