Fallo de segmentación en AWS Lambda
Al usar AWS Lambda en un contenedor Linux y llamar al método render de manera concurrente muchas veces, a veces provoca la siguiente excepción.
Excepción:
Error: El tiempo de ejecución terminó con error: señal: error de segmentación Runtime.ExitError
Soluciones
La solución es llamar al método GC.Collect
después de que se haya renderizado el documento PDF. No hemos encontrado este problema en ninguna otra plataforma en la nube. Esto solo comenzó a suceder en la versión reciente; el antiguo con .NET 6 usando Amazon Linux 2 todavía funciona.
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument document = renderer.RenderHtmlAsPdf(htmlString);
GC.Collect();
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument document = renderer.RenderHtmlAsPdf(htmlString);
GC.Collect();
Dim renderer As New ChromePdfRenderer()
Dim document As PdfDocument = renderer.RenderHtmlAsPdf(htmlString)
GC.Collect()