AWS Lambdaでのセグメンテーションフォルト
LinuxコンテナでAWS Lambdaを使用し、レンダーメソッドを同時に何度も呼び出すと、以下の例外が発生することがあります。
例外:
エラー: ランタイムはエラーで終了しました: シグナル: セグメンテーションフォルト ランタイム.ExitError
ソリューション
解決策は、PDFドキュメントがレンダリングされた後にGC.Collect
メソッドを呼び出すことです。 この問題は他のクラウドプラットフォームでは発生していません。 これは最近のバージョンでのみ発生し始めました。 .NET 6を使用したAmazon Linux 2の古いものはまだ動作しています。
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()