Cypress测试运行器在CircleCI中意外退出,信号为SIGSEGV。

14


我陷入了这个问题。我正在运行 Cypress 测试。当我在本地运行时,它可以顺利运行。但是当我在 CircleCI 上运行时,它会在某些执行之后抛出错误。
以下是我收到的错误信息:

[334:1020/170552.614728:ERROR:bus.cc(392)] Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
[334:1020/170552.616006:ERROR:bus.cc(392)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[334:1020/170552.616185:ERROR:bus.cc(392)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[521:1020/170552.652819:ERROR:gpu_init.cc(441)] Passthrough is not supported, GL is swiftshader

当前行为:
当我在CircleCI上运行我的规范时,使用无头浏览器时,Cypress因套接字错误意外关闭。

错误信息:

测试运行程序通过退出事件以信号SIGSEGV意外退出

请搜索Cypress文档以获取可能的解决方案:

https://on.cypress.io


平台:linux (Debian - 10.5)
Cypress版本:8.6.0


2
我自己遇到了这个问题,使用的是8.6.0版本。在本地运行顺畅,但在CircleCI中会抛出此错误。 - jtiscione
1
问题已解决,通过将Cypress版本回退到7.6.0。 - Abdullah Sohail Yaqoob
1
实际上,我的CircleCI进程失败了,因为我的一些API调用仍然需要从Cyress 6进行更新。现在它们已经修复,测试通过了,但是这条消息仍然出现在输出中。 - jtiscione
我也在 Github 上开了一个问题,你可以在那里关注进展 https://github.com/cypress-io/cypress/issues/18569 - Abdullah Sohail Yaqoob
5个回答

7

通过将Cypress版本退回到7.6.0,问题已得到解决。


1
终于,在经过4个小时的奋斗后,运行Cypress的问题得以解决。将版本从8.7.0降级到7.6.0。+1 - Sahil Gulati
降级Cypress或任何依赖项是不良实践。很可能在您的Cypress测试或依赖项中存在已弃用或有缺陷的代码,导致关闭。 - Jakob Jan Kamminga

1
运行npm install cypress@7.6.0以降级Cypress版本。

1

我们在Azure构建中也遇到了同样的问题。最近才从Cypress 8.4.0迁移,回退到该版本解决了问题。


是的,新标签存在问题。 - Abdullah Sohail Yaqoob

0

降级Cypress到8.3.0对我有用,解决了这个问题,你不需要回到以前的版本。

npm install cypress@8.3.0

1
我很讨厌降级是唯一的解决方案,但这对我起作用了。我使用的是Ubuntu 20.*。 - Dylan Pierce

0

SIGSEGV 意味着分段错误。在这里阅读有关此错误的所有信息。

“实际上,当您的程序违反操作系统设置的某些基本规则时,会发生段错误。在这种情况下,操作系统会向您的进程发送一个信号(在 Mac 和 Linux 上为 SIGSEGV,在 Windows 上为 STATUS_ACCESS_VIOLATION),通常进程会立即关闭。”

这篇博客文章还详细介绍了即使您不直接与操作系统交互(因为我们正在编写 JavaScript),也可能会发生这种情况。请在原始作者的网站上阅读以获取上下文。

但简而言之 - 您可能会遇到此错误,因为

a. 您在旧版本的 NodeJS 上升级 Cypress,或

b. 您升级了 NodeJS,而您的 Cypress 代码直接或间接不兼容(这可能是您自己的代码或其依赖项)该 NodeJS 版本

由于 SIGSEGV 是完全关闭,因此您没有堆栈跟踪或调试信息可供指导您。因此,您必须以传统方式进行调试,打开或关闭测试和/或依赖项,以定位代码中的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接