运行 在 github 操作和 ubuntu 中进行测试时打开文件过多错误
Too many open files error when running go test in github actions and ubuntu
我们已经构建了一个测试套件,它始终在本地 ubuntu 机器上和 ubuntu 机器上运行 github 操作。由于单元测试的最新添加,一个包的单元测试数量大幅增加,并且开始失败并显示 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,它大约在大约停止工作。
我认为您需要更改最大文件描述符。同样的问题发生在许多开发虚拟机之前,需要更改文件描述符最大值,而不是 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 实例注入了配置。集中定义一个毒蛇实例,然后将配置向下传递到测试中就可以了。
我们已经构建了一个测试套件,它始终在本地 ubuntu 机器上和 ubuntu 机器上运行 github 操作。由于单元测试的最新添加,一个包的单元测试数量大幅增加,并且开始失败并显示 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,它大约在大约停止工作。
我认为您需要更改最大文件描述符。同样的问题发生在许多开发虚拟机之前,需要更改文件描述符最大值,而不是 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 实例注入了配置。集中定义一个毒蛇实例,然后将配置向下传递到测试中就可以了。