[microsoft/playwright]Playwright 1.35 无法在 azure devops CI 中加载 chrome dll

2024-04-09 463 views
5

我们遇到一个问题,剧作家测试无法在 @playwright/test 版本 1.32 及以上的 Azure DevOps 中运行。我尝试了一些不同的想法来让它再次工作,但到目前为止唯一的方法是恢复到 1.31。

我们已经尝试过的想法包括:

  1. 编辑版本以仅在特定路径安装 chromium 浏览器,然后从特定文件路径加载
  2. 跳过浏览器下载
  3. 1 和 2 合并
  4. 分析全局安装和拆卸文件 - 将浏览器从安装关闭到拆卸的微小更改没有帮助

我应该指出,我对 Playwright 还很陌生,并且继承了一个测试套件,所以我仍在学习并掌握它的配置方式。我已经在发行说明中搜寻了线索,但什么也没有跳出来。很高兴分享更多信息,请让我知道需要调查什么。

有任何想法吗?

之前提出的问题: https://github.com/microsoft/playwright/issues/21490#issuecomment-1620426095_

回答

4

你好!您是否有机会使用自托管的 Azure Pipelines 代理?

看起来我们下载了浏览器,提取了二进制文件,然后防病毒软件可能会启动并删除 chrome.dll 文件,因此 Chromium 无法再启动。

当您重新启动工作流程时,它是否也会一直重现?

您是通过稳定渠道还是普通 Chromium 使用 Google Chrome?

8

感谢@JenH11 由此创建了一个新问题,上一问题由于缺乏信息而被关闭,我认为:https://github.com/microsoft/playwright/issues/21490

我可以插话,因为我有一个与@JenH11非常相似的问题,但是你能确认你这边构建服务器的操作系统版本吗?

我们正在使用自托管的 Azure Pipeline,如果我们降级到 1.27.1,我们会看到积极的结果,但任何高于该版本的版本都会出现与 @JenH11 相同的错误。重启后问题依然存在,失败率为 100%,我们使用的是 chromium。

以下是软件包升级后全新安装 chromium 的管道中的一些原始日志以及失败的测试:

`


真 否 NoChangeNeeded {}

从https://playwright.azureedge.net/builds/chromium/1071/chromium-win64.zip下载 Chromium 115.0.5790.75(playwright build v1071) | | 114.3 Mb 的 0% |■■■■■■■■ | 114.3 Mb 的 10% |■■■■■■■■■■■■■■■■| | 114.3 Mb 的 20%|■■■■■■■■■■■■■■■■■■■■■■■■| | 114.3 Mb 的 30% |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 114.3 Mb 的 40% |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■| 114.3 Mb 的 50% |██████████████████████████████████████████████████████████████████████████ ||||| 114.3 Mb 的 60% |██████████████████████████████████████████████████████████████████ | | | ||||||||||||| 114.3 Mb 的 70% |█████████████████████████████████████████████████████████████ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 114.3 Mb 的 80% |███████████████████████████████████████████████████████████████ |||||||||||||||||||||||||||||| 114.3 Mb 的 90% |████████████████████████████████████████████████████████████████ ||||||||||||||||||||||||||||||||||||| 114.3 Mb Chromium 115.0.5790.75(playwright build v1071)的 100% 下载到 C:\Users\OUR_SERVER\AppData\Local\ms-playwright\chromium-1071 从https://playwright.azureedge下载 Firefox 115.0(playwright build v1419) .net/builds/firefox/1419/firefox-win64.zip | .net/builds/firefox/1419/firefox-win64.zip | 79.5 Mb 的 0% |■■■■■■■■ | 79.5 Mb 的 10% |■■■■■■■■■■■■■■■■| | 79.5 Mb 的 20% |■■■■■■■■■■■■■■■■■■■■■■■■| | 79.5 Mb 的 30% |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 79.5 Mb 的 40% |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■| 79.5 Mb 的 50% |████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ ||||| 79.5 Mb 的 60% |████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | | | ||||||||||||| 79.5 Mb 的 70% |█████████████████████████████████████████████████████████ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 79.5 Mb 的 80% |████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ |||||||||||||||||||||||||||||| 79.5 Mb 的 90% |██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ ||||||||||||||||||||||||||||||||||||| 79.5 Mb Firefox 115.0(playwright build v1419)的 100% 下载到 C:\Users\OUR_SERVER\AppData\Local\ms-playwright\firefox-1419 从https://playwright.azureedge.net下载 Webkit 17.0(playwright build v1869) /builds/webkit/1869/webkit-win64.zip | | 45.6 Mb 的 0% |■■■■■■■■ | 45.6 Mb 的 10% |■■■■■■■■■■■■■■■■| | 45.6 Mb 的 20%|■■■■■■■■■■■■■■■■■■■■■■■■| | 45.6 Mb 的 30% |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 45.6 Mb 中的 40% |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■| 45.6 Mb 的 50% |█████████████████████████████████████████████ ||||| 45.6 Mb 的 60% |█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | | | ||||||||||||| 45.6 Mb 的 70% |█████████████████████████████████████████████ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 45.6 Mb 的 80% |█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ |||||||||||||||||||||||||||||| 45.6 Mb 的 90% |███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ ||||||||||||||||||||||||||||||||||||| 45.6 Mb Webkit 17.0(playwright build v1869)的 100% 下载到 C:\Users\OUR_SERVER\AppData\Local\ms-playwright\webkit-1869 完成:安装 Playwright 浏览器

`

` 开始:运行 Playwright 测试 任务:Bash 描述:在 macOS、Linux 或 Windows 上运行 Bash 脚本 版本:3.179.0 作者:Microsoft Corporation 帮助:https://docs.microsoft.com/azure/devops/pipelines/tasks /实用程序/bash

生成脚本。脚本内容: npx nx run STUFF_WE_DOlite-e2e:e2e --skip-nx-cache "C:\Program Files\Git\bin\bash.exe" --noprofile --norc -c pwd /d/B/5/_temp ========================== 启动命令输出 ===================== ====== "C:\Program Files\Git\bin\bash.exe" --noprofile --norc /d/B/5/_temp/ba201f2a-bedc-47e9-bd31-a69df6e6bc5d.sh

nx 运行 OUR_APP-e2e:e2e

Retry #1 ───────────────────────────────────────────────────────────────────────────────────────
Error: browserType.launch: Browser closed.
==================== Browser output: ====================
<launching> C:\Users\SERVER_NAME\AppData\Local\ms-playwright\chromium-1071\chrome-win\chrome.exe --disable-field-trial-config --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=ImprovedCookieControls,LazyFrameLoading,GlobalMediaControls,DestroyProfileOnBrowserClose,MediaRouter,DialMediaRouteProvider,AcceptCHFrame,AutoExpandDetailsElement,CertificateTransparencyComponentUpdater,AvoidUnnecessaryBeforeUnloadCheckSync,Translate --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --start-fullscreen --user-data-dir=C:\Users\ENTP1T~1\AppData\Local\Temp\playwright_chromiumdev_profile-ZBts9Y --remote-debugging-pipe --no-startup-window
<launched> pid=6260
[pid=6260][err] [0713/144133.384:ERROR:main_dll_loader_win.cc(109)] Failed to load Chrome DLL from C:\Users\ENTP1TFSBA_SVC\AppData\Local\ms-playwright\chromium-1071\chrome-win\chrome.dll: The specified procedure could not be found. (0x7F)
=========================== logs ===========================
<launching> C:\Users\ENTP1TFSBA_SVC\AppData\Local\ms-playwright\chromium-1071\chrome-win\chrome.exe --disable-field-trial-config --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=ImprovedCookieControls,LazyFrameLoading,GlobalMediaControls,DestroyProfileOnBrowserClose,MediaRouter,DialMediaRouteProvider,AcceptCHFrame,AutoExpandDetailsElement,CertificateTransparencyComponentUpdater,AvoidUnnecessaryBeforeUnloadCheckSync,Translate --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --start-fullscreen --user-data-dir=C:\Users\ENTP1T~1\AppData\Local\Temp\playwright_chromiumdev_profile-ZBts9Y --remote-debugging-pipe --no-startup-window
<launched> pid=6260
[pid=6260][err] [0713/144133.384:ERROR:main_dll_loader_win.cc(109)] Failed to load Chrome DLL from C:\Users\ENTP1TFSBA_SVC\AppData\Local\ms-playwright\chromium-1071\chrome-win\chrome.dll: The specified procedure could not be found. (0x7F)
============================================================
attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
..\..\test-results\coverage-coverage-should-navigate-to-Dental-Tab-chromium-retry1\trace.zip
Usage:
    npx playwright show-trace ..\..\test-results\coverage-coverage-should-navigate-to-Dental-Tab-chromium-retry1\trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Retry #2 ───────────────────────────────────────────────────────────────────────────────────────
Error: browserType.launch: Browser closed.
==================== Browser output: ====================
<launching> C:\Users\ENTP1TFSBA_SVC\AppData\Local\ms-playwright\chromium-1071\chrome-win\chrome.exe --disable-field-trial-config --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=ImprovedCookieControls,LazyFrameLoading,GlobalMediaControls,DestroyProfileOnBrowserClose,MediaRouter,DialMediaRouteProvider,AcceptCHFrame,AutoExpandDetailsElement,CertificateTransparencyComponentUpdater,AvoidUnnecessaryBeforeUnloadCheckSync,Translate --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --start-fullscreen --user-data-dir=C:\Users\ENTP1T~1\AppData\Local\Temp\playwright_chromiumdev_profile-xXjrgW --remote-debugging-pipe --no-startup-window
<launched> pid=5584
[pid=5584][err] [0713/144134.275:ERROR:main_dll_loader_win.cc(109)] Failed to load Chrome DLL from C:\Users\ENTP1TFSBA_SVC\AppData\Local\ms-playwright\chromium-1071\chrome-win\chrome.dll: The specified procedure could not be found. (0x7F)
=========================== logs ===========================
<launching> C:\Users\ENTP1TFSBA_SVC\AppData\Local\ms-playwright\chromium-1071\chrome-win\chrome.exe --disable-field-trial-config --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=ImprovedCookieControls,LazyFrameLoading,GlobalMediaControls,DestroyProfileOnBrowserClose,MediaRouter,DialMediaRouteProvider,AcceptCHFrame,AutoExpandDetailsElement,CertificateTransparencyComponentUpdater,AvoidUnnecessaryBeforeUnloadCheckSync,Translate --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --start-fullscreen --user-data-dir=C:\Users\ENTP1T~1\AppData\Local\Temp\playwright_chromiumdev_profile-xXjrgW --remote-debugging-pipe --no-startup-window
<launched> pid=5584
[pid=5584][err] [0713/144134.275:ERROR:main_dll_loader_win.cc(109)] Failed to load Chrome DLL from C:\Users\SERVER_NAME\AppData\Local\ms-playwright\chromium-1071\chrome-win\chrome.dll: The specified procedure could not be found. (0x7F)
============================================================
attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
..\..\test-results\coverage-coverage-should-navigate-to-Dental-Tab-chromium-retry2\trace.zip
Usage:
    npx playwright show-trace ..\..\test-results\coverage-coverage-should-navigate-to-Dental-Tab-chromium-retry2\trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────

`

3

@哈雷兹

您的自托管运行器上是否运行任何防病毒或安全扫描软件?你是怎么设置的?

我的猜测仍然是您的防病毒软件认为 chrome.dll 是恶意软件,在安装后将其删除,并且 chrome 无法启动。就像误报一样。

4

嘿@mxschmitt - 在构建代理设置了安全上下文的帐户下远程连接到 azure devops 构建服务器,并确保 chrome.exe 文件在那里。我可以确认它没有被防病毒软件删除。我还更进一步,从该帐户执行该文件,我收到了一个可能有帮助的错误。我还查看了chrome代码:https://chromium.googlesource.com/chromium/src/+/cfa5b01bb1d06bf96967bd37e21a44752801948c/chrome/app/main_dll_loader_win.cc 代码中的第109行似乎是异常的来源。

我收到的错误: 图像

更进一步,做了一些谷歌搜索,看到了这个:

https://github.com/kopia/kopia/issues/2968

我可以确认我们使用的是 Windows Server 2012 R2

5

这不是关于chrome.exe文件,而是关于chrome.dll文件。查看您提供的日志,我们从此处下载包含此文件的 Chromium,然后我们提取它,但它再次被删除。

提供您的 Windows Server 版本是很好的一点,Google 不再支持此版本,请参阅此处。所以这很可能是这里的问题。我建议升级到 Windows Server 2022。

3

确认chrome.dll

图像

谢谢@mxschmitt - 我们将考虑升级 Windows 服务器。如果其他人在线程中侦听时遇到此问题,请告诉我们您是否有类似版本的 Windows 操作系统。

5

你好!您是否有机会使用自托管的 Azure Pipelines 代理?

看起来我们下载了浏览器,提取了二进制文件,然后防病毒软件可能会启动并删除 chrome.dll 文件,因此 Chromium 无法再启动。

当您重新启动工作流程时,它是否也会一直重现?

您是通过稳定渠道还是普通 Chromium 使用 Google Chrome?

嗨,(抱歉我这几天不在办公室,所以我才看到这些评论)

是的,我们使用的是自托管的 Azure Pipeline 代理和 Chromium 通道,而不是 Google Chrome。

我已经检查了构建机器版本与 Playwright 的兼容性,听起来我们高于所有最低要求 - Windows Server 2022、WS 2019 和 Windows 2016 的混合。

该问题是间歇性的,但很多时候都会因该错误而失败。然而,防病毒软件(有时)剥离 dll 听起来是可行的,但我不确定如何证明它是否发生。有小费吗?

目前我仍然无法访问代理计算机,但我会尽快仔细检查操作系统版本和防病毒软件。

谢谢!

6

我道歉。我以为哈雷兹是提交该文件的人。

重新打开并等待确认是否是防病毒原因。另请尝试手动启动 Chrome 并查看其行为(打开文件夹并双击 chrome.exe)

8

@mxschmitt - 我在这里发表评论(劫持),因为我认为 @JenH11 和我有类似的问题,但现在不太确定。

然而,为了跟进对话,我们使用更新的 Windows 操作系统建立了新的构建代理,并且使用相同的代码现在获得了成功的结果。就我而言,这肯定与旧版本的 Windows 操作系统有关。

干杯

9

@JenH11 你还会遇到这种情况吗?你检查一下dll是否就位了吗?

3

从那时起,我就能够检查构建盒上的操作系统版本,3 个中的 2 个在 Windows Server 2012 上,因此不受支持。支持另一个(Windows Server 2016)。手动运行时,Chrome.exe 也可以在这些构建框中正常加载。现在我可以访问这些盒子了,我只想检查一些东西,但我不确定什么时候可以这样做。希望在本周的某个时候。

我很高兴它现在为你工作@harleyz,很高兴知道它是操作系统并且也给了我希望!

0

我们需要更多信息来根据这份报告采取行动。只要我们无法重现它,就不可能取得进展。请允许我关闭它,但请提交一个新的问题,并在您返回时链接到此问题!

7

没问题!抱歉,我昨天才又看了一遍。我很高兴只有不受支持的操作系统才会出现此问题。如果受支持的操作系统版本出现新问题,我将记录该问题。