我正在尝试在无头模式下使用Heroku buildpack for Google Chrome中的 Chrome(版本 78.0.3904.108)在 Heroku“爱好”测功机上创建 HTML 文件的 PDF。
它适用于小文件。但是当我尝试转换一个 428 KiB 的 HTML 文件时,它会在几秒钟后崩溃。这些文件都包含大量图像,这些图像也通过file://URL 引用。我使用相同的 Chrome 版本来转换我计算机上的大文件,它可以正常工作。
调用如下:
~ $ $HOME/.apt/opt/google/chrome/chrome \
> --headless \
> --no-sandbox \
> --disable-gpu \
> --print-to-pdf="/tmp/test.pdf" \
> file:///tmp/large-file.html
[1127/175233.676324:ERROR:broker_posix.cc(46)] Received unexpected number of handles
[1127/175233.694403:ERROR:print_render_frame_helper.cc(1785)] Printing failed.
[1127/175233.695067:ERROR:headless_shell.cc(562)] Print to PDF failed
也就是说,/tmpulimit中unlimited还有空间,/tmp 是可写的。
Chrome 是否会启动大量进程或线程以超出这些限制?还是ulimit由于某些与容器相关的原因而无法提供信息?或者还有什么可能是罪魁祸首?
更新:它适用于标准 2x 测功机,但不适用于标准 1x 及以下。所以无论限制是什么,它必须是这两种测功机类型之间不同的限制。