Segmentierungsfehler bei AWS Lambda

Curtis Chau
Curtis Chau
Updated: 29. Juni 2026

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
Text

Lösungen

Die Lösung besteht darin, die GC.Collect Methode aufzurufen, nachdem das PDF-Dokument gerendert wurde. Dieses Problem wurde auf Amazon Linux 2023 mit aktuellen IronPDF-Versionen berichtet; frühere Bereitstellungen mit .NET 6 und Amazon Linux 2 sind nicht betroffen.

// 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();

Mehrprozess-Rendering und wstring_convert::from_bytes Fehler

Falls GC.Collect() das Problem nicht löst, könnte die Ursache das Multi-Prozess-Rendering oder die globale ChromePdfRenderer Wiederverwendung innerhalb des Lambda-Containers sein. Dies erzeugt entweder einen Segmentierungsfehler oder eine C++-Ausnahme:

Process runtime-1 exited: signal: segmentation fault
Error while generating PDF from HTML: 'wstring_convert::from_bytes'
Text

Diese Fehler treten sporadisch auf und können erst nach dem ersten oder zweiten Lambda-Container-Aufruf auftreten.

Lösung

Setzen Sie Installation.SingleProcess = true, leiten Sie Pfade zu /tmp um und erstellen Sie ein neues ChromePdfRenderer pro Aufruf:

IronPdf.Installation.SingleProcess = true;
IronPdf.Installation.TempFolderPath = "/tmp";

var renderer = new ChromePdfRenderer();
var pdf = await renderer.RenderHtmlAsPdfAsync(htmlString);

Rufen Sie Installation.Initialize() nicht auf und halten Sie kein ChromePdfRenderer als statische oder Feldebenen-Instanz. Ein persistenter Renderer nimmt alten Speicherzustand in nachfolgende Lambda-Aufrufe mit und verursacht den Absturz.

// Avoid: global renderer reuse
private readonly ChromePdfRenderer _renderer = new();

// Avoid: calling Initialize()
Installation.Initialize();

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender Handbücher.

Weiterlesen

Bereit anzufangen?

Nuget Downloads 21,916,531Version:2026.11gerade veröffentlicht