【问题标题】:Azure Function V2 - Error :The connection with the server was terminated abnormallyAzure Function V2 - 错误:与服务器的连接异常终止
【发布时间】:2018-12-24 05:20:29
【问题描述】:

我已经开发了带有服务总线触发器的函数应用程序 v2 - https://oneprofilesyncappeus.azurewebsites.net 并在三周前部署到生产环境中,并在 App 洞察力中看到这个问题从 12 月 22 日开始记录。根据错误消息和堆栈跟踪,我在我的编程模块中收到消息之前就在 Azure 功能模块中看到了此错误。

错误信息:

Error while copying content to a stream. The write operation failed, see inner exception. 
Error 12030 calling WinHttpWriteData, 'The connection with the server was terminated abnormally'.

堆栈跟踪

System.Net.Http.HttpRequestException:
at System.Net.Http.HttpContent+d__47.MoveNext (System.Net.Http, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Net.Http.WinHttpHandler+d__131.MoveNext (System.Net.Http, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Net.Http.WinHttpHandler+d__105.MoveNext (System.Net.Http, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter.GetResult (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Net.Http.DiagnosticsHandler+d__2.MoveNext (System.Net.Http, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)
Inner exception System.IO.IOException handled at System.Net.Http.HttpContent+d__47.MoveNext:
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable+ConfiguredValueTaskAwaiter.GetResult (System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Net.Http.HttpContent+d__47.MoveNext (System.Net.Http, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)
Inner exception System.Net.Http.WinHttpException handled at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw:

在美国西部和美国东部部署了两个函数实例,我看到这个异常只发生在美国东部,尽管我没有看到这两个应用服务之间的任何 CPU 峰值或配置更改。

【问题讨论】:

  • 您是否尝试重新启动应用服务?错误是否反复发生?
  • @HariHaran:我也重启了应用服务。它不会重复发生,而是一天发生一次或两次,我看到在指定时间记录了数百个错误,而这只发生在美国东部地区。
  • 所以问题只出在美国东部地区?
  • 是的,没错。
  • 谢谢,会试一试,并会为此创建票证。

标签: .net asp.net-core azure-functions azure-functions-core-tools


【解决方案1】:

我想分享一下我们的 func 应用程序由于 CPU 使用率高而在生产中经常崩溃的经验,除了 “与服务器的连接异常终止”

以下是我们的观察结果:

  1. CPU 利用率逐渐增加,直到达到 100%,应用程序重新启动,有时也变得无响应。
  2. 增加实例没有帮助。
  3. 应用程序崩溃期间线程计数很高。
  4. 数据库连接数和内存利用率在可控范围内。
  5. 很少有应用洞察记录被遗漏。

在我们与 azure 支持团队联系并分析转储文件后,我们发现根本原因是记录器在我们的函数应用中的初始化方式。 请参考这个https://evandontje.com/2018/10/09/high-thread-count-in-azure-functions/,它清楚地说明了这个问题的原因并重构了代码来解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 2020-10-25
    相关资源
    最近更新 更多