【Azure Function App】Nodejs Function遇见WorkerProcessExitException : node exited with code -1073740791 (0xC0000409) 错误

App,code ,Function ,Function · 浏览次数 : 9

小编点评

**异常信息:** ``` Exception while executing function: Functions.AzureBlobTrigger ---> Microsoft.Azure.WebJobs.Script.Workers.WorkerProcessExitException : node exited with code -1073740791 (0xC0000409)  ``` **错误消息解释:** STATUS_STACK_BUFFER_OVERRUN 异常表示栈缓冲区溢出异常,说明程序在执行函数时所占用的内存大小超过了系统可接受的范围。 **问题分析:** * 触发函数的 Blob 文件大小是 50MB。 * 当上传文件小于 50MB 时,函数正常执行。 * 当上传文件大于 50MB 时,函数异常退出。 * 然而,根据函数的描述,它本身并没有对文件的大小由任何限制。 **解决方案:** 1. **限制 Blob 文件大小**:根据您的需求,您可以设置 Blob 文件的上传大小限制。您可以使用 `maxRequestSize` 属性设置 Azure Functions 的函数配置中。 2. **调整后端实例的内存大小**:如果您的函数后端实例的内存大小足够,您可以尝试降低 `maxRequestSize` 的值。 3. **使用其他触发机制**:如果您无法更改 Blob 文件大小,您可以考虑使用其他触发机制,例如 HTTP 请求或 WebSockets。

正文

问题描述

Nodejs Function,使用Blob Trigger用于处理上传到Storage Blob的文件,但是最近发现偶发报错:Exception while executing function: Functions.AzureBlobTrigger ---> Microsoft.Azure.WebJobs.Script.Workers.WorkerProcessExitException : node exited with code -1073740791 (0xC0000409)

 

问题解答

根据错误消息的编码[-1073740791 (0xC0000409)],查到错误消息为 STATUS_STACK_BUFFER_OVERRUN,称栈缓冲区溢出异常,说明系统在此应用程序中检测到基于堆栈的缓冲区溢出。

从此错误中可以判断中,报错与函数在执行时所占用的内存大小有关,经过对成功和失败处理的结果对比,最终发现是触发函数的Blob文件大小相关。 

  • 当上传文件小于50MB时,函数执行正常。
  • 当上传文件大于50MB时,函数异常退出。

但是,根据对Blob Trigger的描述分析,它本身并没有对文件的大小由任何限制,所以无法通过修改配置/参数的方式缓解问题。同时,函数的后端实例的内存大小也是可能导致出现  STATUS_STACK_BUFFER_OVERRUN -1073740791 (0xC0000409) 的因素之一。  

 

最终,在没有好的办法之前,通过限制Blob 文件大小的方式临时缓解。

 

参考资料

Function App的并发和内存使用情况:https://learn.microsoft.com/zh-cn/azure/azure-functions/functions-bindings-storage-blob-trigger?tabs=python-v2%2Cin-process&pivots=programming-language-javascript#concurrency-and-memory-usage

STATUS_STACK_BUFFER_OVERRUN doesn’t mean that there was a stack buffer overrun : https://devblogs.microsoft.com/oldnewthing/20190108-00/?p=100655

 

 

与【Azure Function App】Nodejs Function遇见WorkerProcessExitException : node exited with code -1073740791 (0xC0000409) 错误相似的内容:

【Azure Function App】Nodejs Function遇见WorkerProcessExitException : node exited with code -1073740791 (0xC0000409) 错误

Exception while executing function: Functions.AzureBlobTrigger ---> Microsoft.Azure.WebJobs.Script.Workers.WorkerProcessExitException : node exited with code -1073740791 (0xC0000409)

【Azure Function App】Python Function调用Powershell脚本在Azure上执行失败的案例

问题描述 编写Python Function,并且在Function中通过 subprocess 调用powershell.exe 执行 powershell脚本。 import azure.functions as func import logging import subprocess app

【Azure Function App】在ADF(Azure Data Factory)中调用 Azure Function 时候遇见 Failed to get MI access token

问题描述 在ADF(Azure Data Factory)中,调用Azure Function App中的Function,遇见了 Failed to get MI access token There was an error while calling endpoint with error m

【Azure Function App】Java Function部署到Azure后出现中文显示乱码问题

问题描述 Java Function在Azure上遇见中文显示乱码问题?如何解决呢? 问题解答 中文字符显示为乱码,这个情况就是服务实例上设置的编码格式不是统一的UTF-8所导致的。 在查看Azure App Service/Function App的官方文档,都没有明确的说明它们使用的默认编码是什

【Azure 应用服务】Azure Data Factory中调用Function App遇见403 - Forbidden

问题描述 在Azure Data Factory (数据工厂)中,调用同在Azure中的Function App函数,却出现403 - Forbidden错误。 截图如下: 问题解答 访问Azure Function App遇见403 - Forbidden错误,这是因为Function App启用

【Azure 应用服务】Azure Function App在部署时候遇见 503 ServiceUnavailable

问题描述 在VS Code中编写好 Azure Function App代码后,通过 func azure functionapp publish 部署失败,抛出 503 Service Unavailable 错误。 Getting site publishing info... Creating

【Azure 应用服务】Azure Function Python函数部署到Azure后遇见 Value cannot be null. (Parameter 'receiverConnectionString') 错误

问题描述 使用VS Code创建Python Function,处理Event Hub中的数据。当部署到Azure Function App后,函数无法执行,查看 Function 日志出现 Value cannot be null. (Parameter 'receiverConnectionSt

【Azure 应用服务】Python fastapi Function在Azure中遇见AttributeError异常(AttributeError: 'AsgiMiddleware' object has no attribute 'handle_async')

问题描述 参考文档“Using FastAPI Framework with Azure Functions”, 使用FastAPI 模块在Function中实现API请求。通过VS Code本地运行成功。 但是部署到Azure Function App后,遇见了如下错误: [2023-01-30T

【Azure 应用服务】Function App / App Service 连接 Blob 报错

问题描述 因 Blob 启用了防火墙功能,但是当把App Service 或 Function App的出站IP地址都加入到Blob的白名单中,为什么访问还是403错误呢? 问题解答 Azure Storage的IP网络规则不适用于同一数据中心的客户端。 存储帐户部署在同一区域中的服务使用专用的 A

【Azure Developer】在Github Action中使用Azure/functions-container-action@v1配置Function App并成功部署Function Image

问题描述 使用Github Action,通过 Azure/functions-container-action@v1 插件来完成 yaml 文件的配置,并成功部署Function Image 的过程记录。 操作步骤 第一步: 准备Function的镜像文件 如在VS Code中,通过Termina