Ubuntu远程Screen环境下Headful Puppeteer启动超时问题求助
远程Ubuntu环境下Headful Puppeteer启动超时问题排查求助
我在Ubuntu 18.04.6 LTS机器上,通过Screen远程运行基于Puppeteer(v10.4.0)+ Lighthouse的Web测试,采用Headful模式的Chrome(v103.0.5060.134)。这套配置2022年11月运行完全正常,近日测试时却出现以下启动超时错误:
TimeoutError: Timed out after 30000 ms while trying to connect to the browser! Only Chrome at revision r901912 is guaranteed to work. at Timeout.onTimeout (/home/jin/github/policy-driven-interventions/tools/web_crawler/node_modules/puppeteer/lib/cjs/puppeteer/node/BrowserRunner.js:208:20) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7)
开启DEBUG="puppeteer:*"调试后,发现浏览器进程从未启动。
尝试切换到Headless模式测试,结果正常,但业务需求必须使用Headful模式,因此该方案不可行。
曾怀疑机器显示器断开(暂时无法现场确认),但在同一个Screen会话(该会话是显示器连接时启动的远程终端会话)中,直接启动Google Chrome可以正常运行。如果在Screen会话外无显示环境下运行测试,会出现预期的Xserver相关错误,说明Screen会话内的故障另有原因:
Error: Failed to launch the browser process! [13675:13675:0402/034541.040435:ERROR:ozone_platform_x11.cc(247)] Missing X server or $DISPLAY [13675:13675:0402/034541.040531:ERROR:env.cc(226)] The platform failed to initialize. Exiting. TROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md at onClose (/home/jin/github/policy-driven-interventions/tools/web_crawler/node_modules/puppeteer/lib/cjs/puppeteer/node/BrowserRunner.js:197:20) at ChildProcess.<anonymous> (/home/jin/github/policy-driven-interventions/tools/web_crawler/node_modules/puppeteer/lib/cjs/puppeteer/node/BrowserRunner.js:188:79) at ChildProcess.emit (node:events:402:35) at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
已排除以下因素:
- 机器内存充足,使用率仅6%,资源无瓶颈
- 自上次正常运行后未修改过任何配置
- 相同代码在本地Mac的Headful Puppeteer环境下运行完全正常,排除代码问题
目前怀疑的方向:
- 显示器断开后,Puppeteer与Chrome检测“显示环境”的逻辑存在差异
- Ubuntu 18.04.6 LTS与旧版本Puppeteer(v10.4.0)、Chrome(v103.0.5060.134)出现兼容性问题
- 其他未排查到的系统层面原因?
内容的提问来源于stack exchange,提问作者Jin
相关产品推荐
相关产品推荐

