我正在使用Kitware/cdash-docker码头工人构成文件来构建运行CDash
的码头工人容器。我正在运行一个大型C++
项目的提交,该项目生成了大约3.5Mb的XML文件,其中包含代码覆盖率信息。然后ctest在提交时超时,并显示以下消息
Error when uploading file: <code coverage xml file name>
Error message was: Operation too slow. Less than 1 bytes/sec transferred the last 120 seconds
Problem when submitting via HTTP
我已修改docker映像以检出CDash
的v2.4.0-prebuilt分支,问题仍然存在于一个docker主机上,但是当安装在另一台Docker(功能不强的机器)上时,它实际上接受了提交并花费了在PUT请求上花了超过一分钟的时间。
我的问题是,如何修改文件提交的120秒限制?CDash
安装的设置是否会影响此类上传的性能?我在Docker容器日志中找不到任何内容,因此我对情况的理解是,他们会继续执行工作,直到客户端因超时限制终止而我不知道如何修改为止。
答案 0 :(得分:0)
提交超时被硬编码到CTest可执行文件中。 https://gitlab.kitware.com/cmake/cmake/blob/master/Source/CTest/cmCTestSubmitHandler.cxx#L36
我对此进行了修补,将其增加到600s,并且我的提交正在运行。需要调查我的服务器是否正在遇到问题,或者是否可以将其视为CTest错误。
编辑: 解决此问题的最终正确方法是使用异步提交。要使用异步提交,请将以下行添加到local_config.php:
$CDASH_BASE_URL = 'http://localhost';
这不适用于端口映射的Docker容器,因为异步提交会向自身创建一个curl请求,该请求需要开始解析上传的文件。由于我的CDash服务器正在docker容器上的端口80上运行,该端口已映射到docker主机上的端口8080,因此curl请求自身推断出8080端口的使用,这从docker容器的角度来看是不正确的。
将CDash基本URL设置为localhost可以明确解决此问题
.first{
position: absolute;
bottom: 15%;
right: 3%;
font-family: 'Heebo', sans-serif;
font-weight: 900;
font-size: 5rem;
color: rgb(255, 131, 30);
white-space: nowrap;
overflow: hidden;
z-index: 30;
background: url('http://127.0.0.1:3000/img/brush.svg');
background-repeat: no-repeat;
background-size: 115%;
background-position: center;
}
.second{
margin: 1rem;
position: absolute;
bottom: 0px;
right: 8%;
font-family: 'Heebo', sans-serif;
font-weight: 900;
font-size: 6.5rem;
color: orange;
white-space: nowrap;
overflow: hidden;
z-index: 30;
background: url('http://127.0.0.1:3000/img/brush.svg');
background-repeat: no-repeat;
background-size: 110%;
background-position: center;
}