Segmentierungsfehler bei AWS Lambda
Bei der Nutzung von AWS Lambda in einem Linux-Container und dem mehrmaligen gleichzeitigen Aufrufen der Render-Methode tritt manchmal die folgende Ausnahme auf.
Ausnahme:
Fehler: Laufzeit beendete mit Fehler: Signal: Segmentierungsfehler Laufzeit.Beendigungsfehler
Lösungen
Die Lösung besteht darin, die Methode GC.Collect aufzurufen, nachdem das PDF-Dokument gerendert wurde. Wir haben dieses Problem auf keiner anderen Cloud-Plattform festgestellt. Dies tritt erst in der neuesten Version auf; die alte Version mit .NET 6 unter Verwendung von Amazon Linux 2 funktioniert immer noch.
// 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()

