Błąd segmentacji w AWS Lambda
Podczas korzystania z AWS Lambda w kontenerze Linux i wielokrotnego wywoływania metody renderowania jednocześnie, czasami powoduje to następujący wyjątek.
Wyjątek:
Błąd: Środowisko uruchomieniowe zakończyło działanie z błędem: sygnał: błąd segmentacji Runtime.ExitError
Rozwiazania
Rozwiązaniem jest wywołanie metody GC.Collect po wyrenderowaniu dokumentu PDF. Nie napotkaliśmy tego problemu na żadnej innej platformie chmurowej. To zaczęło się dziać tylko w najnowszej wersji; stara wersja z .NET 6 używająca Amazon Linux 2 nadal działa.
// Create an instance of ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the HTML string to a PDF document
PdfDocument document = renderer.RenderHtmlAsPdf(htmlString);
// Explicitly trigger garbage collection to help manage memory usage
GC.Collect();
// Create an instance of ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the HTML string to a PDF document
PdfDocument document = renderer.RenderHtmlAsPdf(htmlString);
// Explicitly trigger garbage collection to help manage memory usage
GC.Collect();
' Create an instance of ChromePdfRenderer
Dim renderer As New ChromePdfRenderer()
' Render the HTML string to a PDF document
Dim document As PdfDocument = renderer.RenderHtmlAsPdf(htmlString)
' Explicitly trigger garbage collection to help manage memory usage
GC.Collect()

