繁体   English   中英

在 github 操作和 ubuntu 中运行 go test 时出现打开文件过多错误

[英]Too many open files error when running go test in github actions and ubuntu

我们有一个测试套件,它总是在本地 ubuntu 机器和 github 操作上的 ubuntu 机器上工作。 由于最新添加了单元测试,一个包的单元测试数量大幅增加,并且它开始失败,并显示too many open files错误消息:

{"Time":"2021-10-22T13:24:15.784106437Z","Action":"output","Package":"github.com/MyCompany/Product/src/interface/service/user","Test":"Test_userService_MethodTest/Case_1","Output":"2021/10/22 13:24:15 too many open files\n"}

出现了两件奇怪的事情:在 Windows 上没有这样的问题。 如果我注释掉错误中提到的包中的一半单元测试,它也不会发生。

受影响包中的单元测试数量目前为 245,大约停止工作。

我认为您需要更改最大文件描述符。 之前的许多开发 VM 中都发生了同样的问题,需要更改文件描述符最大值,而不是使用inotify设置更改任何内容。

注意ulimit != ulimit -n

➜  cmd git:(wip-poop) ✗ ulimit -a
-t: cpu time (seconds)              unlimited
-f: file size (blocks)              unlimited
-d: data seg size (kbytes)          unlimited
-s: stack size (kbytes)             8192
-c: core file size (blocks)         0
-v: address space (kbytes)          unlimited
-l: locked-in-memory size (kbytes)  unlimited
-u: processes                       1418
-n: file descriptors                4864

在我们的测试设置中,我们有一个单独的 viper 实例为每个子测试注入配置,每次都打开一些文件。 集中定义一个 viper 实例,然后将配置传递到测试中就可以了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM