Closed myleosu closed 5 years ago
/var/log/nginx没有报错信息
下面是fps导入出错的文件。
<?xml version="1.0" encoding="UTF-8"?>
<fps version="1.2" url="https://github.com/zhblue/freeproblemset/">
<generator name="HUSTOJ" url="https://github.com/zhblue/hustoj/"/>
<item>
<title><![CDATA[守护长方形]]></title>
<time_limit unit="s"><![CDATA[1]]></time_limit>
<memory_limit unit="mb"><![CDATA[32]]></memory_limit>
<description><![CDATA[111]]></description>
<input><![CDATA[<span style="font-size:18px;">输入一行,两个正整数 N 和 M。(0 <= N,M <=10000)</span>]]></input>
<output><![CDATA[<span style="font-size:18px;">输出正方形个数和长方形个数,用一个空格隔开。</span>]]></output>
<sample_input><![CDATA[2 3]]></sample_input>
<sample_output><![CDATA[8 10]]></sample_output>
<test_input><![CDATA[196 831
]]></test_input>
<test_output><![CDATA[14788396 6659218580
]]></test_output>
<test_input><![CDATA[10000 10000
]]></test_input>
<test_output><![CDATA[333383335000 2500166641665000
]]></test_output>
<test_input><![CDATA[0 0
]]></test_input>
<test_output><![CDATA[0 0
]]></test_output>
<test_input><![CDATA[1 1
]]></test_input>
<test_output><![CDATA[1 0
]]></test_output>
<hint><![CDATA[<span style="font-size:18px;">2*3 的网格中,</span><br />
<span style="font-size:18px;"> 有 6 个 1*1 和 2 个 2*2 的正方形,共 8 个正方形。</span><br />
<span style="font-size:18px;"> 有 4 个 1*2,3 个 2*1,2 个 1*3 以及 1 个 2*3 的长方形,共 10 个长方形。</span>]]></hint>
<source><![CDATA[]]></source>
<solution language="C"><![CDATA[#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <ctype.h>
long long n;
long long m;
long long all;
long long square;
int main(void)
{
scanf("%lld%lld",&n,&m);
all=n*m*(n+1)*(m+1)/4;
for (int i=1;i<=(n<m?n:m);++i)
{
square+=(n-i+1)*(m-i+1);
}
printf("%lld %lld\n",square,all-square);
return 0;
}
]]></solution>
<solution language="C++"><![CDATA[#include<iostream>
using namespace std;
int main()
{
long long n,m,sum=0,zheng=0,ju=0;
cin>>n>>m;
long long i=n,j=m;
while(i!=0&&j!=0)
{
zheng+=i*j;
i--;j--;
}
sum=(n+1)*n/2*(m+1)*m/2;
ju=sum-zheng;
cout<<zheng<<" "<<ju<<endl;
return 0;
}
]]></solution>
</item>
</fps>
能解释一下这个问题么?我该怎样做才能让题目成功导入。:(
建议先用hustoj导入测试,确定文件本身没有问题。
在hustoj能够正常导入,文件本身是没有问题的。
我自己测试出是在qingdaooj的fps解析器中出了问题,而且和题目的测试数据有关系。
例如我将成功导入的fps文件的
下面是我替换测试数据后的fps文件,能够成功导入。
<?xml version="1.0" encoding="UTF-8"?>
<fps version="1.2" url="https://github.com/zhblue/freeproblemset/">
<generator name="HUSTOJ" url="https://github.com/zhblue/hustoj/"/>
<item>
<title><![CDATA[守护长方形test]]></title>
<time_limit unit="s"><![CDATA[1]]></time_limit>
<memory_limit unit="mb"><![CDATA[32]]></memory_limit>
<description><![CDATA[111]]></description>
<input><![CDATA[<span style="font-size:18px;">输入一行,两个正整数 N 和 M。(0 <= N,M <=10000)</span>]]></input>
<output><![CDATA[<span style="font-size:18px;">输出正方形个数和长方形个数,用一个空格隔开。</span>]]></output>
<sample_input><![CDATA[2 3]]></sample_input>
<sample_output><![CDATA[8 10]]></sample_output>
<test_input><![CDATA[868
3845 15530 19695 16992 16348 12711 12700 679 6277 1504 4260 9642 2837 116 11773 11987 339 3628 2883 10382 3619 5822 4972 3506 18938 4441 13274 7583 18729 9653 13444 15343 16626 18647 13415 16908 15432 4300 7519 7736 10776 14913 17607 6821 6155 1578 4349 1203 10556 19115 10863 13387 15145 12750 10893 6450 11701 11511 13023 13060 6702 10224 16857 1947 6367 18089 3756 5031 3522 796 2546 161 5548 2184 14891 4490 14334 5439 18844 14576 12044 5411 5093 13120 1392 6281 5881 886 8093 9924 3674 10571 14351 3611 725 2888 15434 9621 3542 5338 5954 8456 14566 12748 6792 17836 1924 10161 15253 7170 8829 2675 15512 14939 7261 17062 6700 14974 19895 12727 5370 14588 1217 28 7902 12372 11683 5431 11504 623 3761 3788 9152 7502 14927 16195 17604 9494 11585 13017 2750 17672 15885 19059 840 12151 2129 262 18472 300 11517 3590 12744 2306 1653 4696 19065 19965 16210 15979 5534 4420 6931 6298 287 10586 12334 8302 9034 17456 7552 16877 12965 12022 19929 15380 9542 15733 6295 15590 14709 13612 18174 19571 6566 958 5859 16406 19160 1024 5816 10729 5617 10224 11378 19275 38 9061 3614 9224 12013 2905 8250 18749 8369 3065 2546 14120 17614 8197 10452 18671 17619 13334 16711 11527 19134 19595 19656 9529 8584 2215 4849 2592 4078 13646 1443 14384 2479 4167 18980 17920 10515 9010 8587 18772 1719 7014 1441 5716 421 572 7002 11984 13554 2377 11224 19703 9091 11897 8583 15167 12927 5088 14804 5867 4899 7327 580 15311 5059 19848 18933 16285 4258 9285 2315 11288 5124 5620 3206 9857 17054 1883 13894 972 18204 1387 14156 7039 5945 16417 13348 19852 6101 2739 18379 7468 4332 19519 6519 1285 8809 10950 19647 10637 12910 10723 17175 2060 16701 8678 4262 5749 15976 17244 11222 10461 12897 15298 3209 19871 13360 9159 898 4253 2117 12126 2387 5891 6081 12905 210 164 2752 18671 4899 3221 3802 19202 3790 13157 13581 1826 18595 7088 2656 12391 6970 19469 12493 17562 10243 17370 15636 2459 4179 3979 16905 8977 8601 6819 9563 15173 11949 14310 14659 930 2460 10750 6248 13966 7048 8044 15026 17240 8213 11988 6636 3885 6977 16449 14198 11130 762 14404 19819 12164 7845 11757 6559 18520 11952 2753 10175 14851 14440 15172 12953 226 19146 49 10273 9983 14017 2565 12922 5960 17499 11422 5297 9340 7458 9050 10278 13409 12162 3637 15410 5318 7601 9497 3203 1818 1876 4960 5977 15 14951 16516 742 6513 13328 2993 5848 1886 1386 11433 10611 6789 7053 7586 15884 5896 19705 1981 17386 1025 3055 13749 8444 1209 18340 13353 10899 10046 3599 5793 8874 7509 16127 19513 18292 12096 863 13207 10575 16693 2835 7825 15854 13180 14407 1097 2157 16886 17288 1466 2626 7439 7617 1050 2960 11808 5092 15425 8146 8273 16234 33 5486 1321 2661 4323 8501 18680 17219 5796 17564 7266 489 932 15745 6691 2603 13375 14003 11821 12995 19874 261 113 12618 19339 4000 7697 13001 19347 13336 14706 8208 8027 10605 14248 12223 228 5413 11713 7244 8757 18262 3790 5893 15330 17749 1840 17133 19214 2917 3676 8169 2860 15880 19595 11184 6608 13129 10732 7130 303 7072 2585 8770 7628 12124 346 17712 13284 12882 2090 6697 3028 14517 3919 7889 4618 5085 4934 18402 1893 2475 4163 15384 11809 792 19321 4031 18026 17748 6452 5427 9302 19560 5069 16309 16440 16127 7248 5437 19455 7892 19298 1268 8234 3437 12942 3150 7865 13569 6623 9582 5914 18530 16365 10459 9651 1980 3436 5054 15725 8647 14313 495 14217 5991 15599 2773 9924 9426 8313 7756 18883 11248 9848 11377 17563 18723 15027 8444 5271 18540 3439 4492 14659 14434 14784 15238 2233 657 1567 15189 10826 9273 8390 6906 2531 18038 5112 2612 19265 17296 17838 12613 11287 13589 6236 242 11798 3848 3095 6553 8039 8647 5174 10419 7891 18651 2120 7030 3991 5746 2750 13596 12084 263 7740 3 12013 1517 3348 15279 12574 14870 13891 4389 1061 2352 16163 2009 16804 2515 4288 4389 5002 10695 8920 17281 8815 16600 752 15181 19433 17058 17200 8785 16798 7038 4194 6388 14060 18500 10464 16643 3920 19412 3867 7907 7690 12827 12426 10381 4146 5251 4583 17603 5197 16863 6203 8529 5244 12815 1116 4202 14626 6917 13605 14546 782 13974 18983 10010 7795 19887 7362 5997 5460 12093 18683 2732 8933 10440 8826 11386 5026 12919 14983 2413 15932 11364 6607 9821 15716 2543 11002 1541 11264 9873 12529 14705 12909 8983 6772 9412 14405 1473 10317 2256 13413 6532 15564 14589 231 1461 268 15409 15873 17117 17826 5834 15533 7825 15783 3655 5836 9025 8248 8931 13033 6408 11287 3173 778 13080 17543 14990 5121 8041 1912 5249 6588 7028 193 11726 13869 2831 18838 1093 10955 17698 14355 5096 7133 41 17061 1778 6506 9024 19535 9183 18921 15157 9198 7726 17971 12254 380 19080 8432 1946 19165 8102 10301 9356 12796 5203 5638 18876 18331 19128 16109 10011 2159 11830 1462 8223 6839 19323 2271 17131 18620 3269 4378 357 13468 3213 6051 16229 9871 11901 13253 6548 3568 1367 2827 17161 16734 18647 19768
]]></test_input>
<test_output><![CDATA[6]]></test_output>
<hint><![CDATA[<span style="font-size:18px;">2*3 的网格中,</span><br />
<span style="font-size:18px;"> 有 6 个 1*1 和 2 个 2*2 的正方形,共 8 个正方形。</span><br />
<span style="font-size:18px;"> 有 4 个 1*2,3 个 2*1,2 个 1*3 以及 1 个 2*3 的长方形,共 10 个长方形。</span>]]></hint>
<source><![CDATA[]]></source>
<solution language="C"><![CDATA[#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <ctype.h>
long long n;
long long m;
long long all;
long long square;
int main(void)
{
scanf("%lld%lld",&n,&m);
all=n*m*(n+1)*(m+1)/4;
for (int i=1;i<=(n<m?n:m);++i)
{
square+=(n-i+1)*(m-i+1);
}
printf("%lld %lld\n",square,all-square);
return 0;
}
]]></solution>
<solution language="C++"><![CDATA[#include<iostream>
using namespace std;
int main()
{
long long n,m,sum=0,zheng=0,ju=0;
cin>>n>>m;
long long i=n,j=m;
while(i!=0&&j!=0)
{
zheng+=i*j;
i--;j--;
}
sum=(n+1)*n/2*(m+1)*m/2;
ju=sum-zheng;
cout<<zheng<<" "<<ju<<endl;
return 0;
}
]]></solution>
</item>
</fps>
看起来好像是末尾有空行的缘故
看看后端的报错信息
emmm和末尾空行无关,我删除后上传fps题目依旧提示server error。
我对docker+dj框架不熟,能详细说一下报错信息是在哪个log文件内吗? 我用docker logs oj-backend命令查看,但没有具体报错信息。
经过几天排查发现了错误所在: 错误:file在写入tempfile的时候,还没有写入成功但xml parser已经通过tf.name读取文件,导致读取到一个空文本文件,xml解析器报错,前端返回server error。 修正:添加两条语句确保file成功写入到tf中,xml parser就成功正常运作了。已经提交了pr。 //修正完就可以愉快地完成OJ题目迁移啦O(∩_∩)O~~
遇到同样的问题,前来尝试
经过几天排查发现了错误所在: 错误:file在写入tempfile的时候,还没有写入成功但xml parser已经通过tf.name读取文件,导致读取到一个空文本文件,xml解析器报错,前端返回server error。 修正:添加两条语句确保file成功写入到tf中,xml parser就成功正常运作了。已经提交了pr。 //修正完就可以愉快地完成OJ题目迁移啦O(∩_∩)O~~
遇到同样的问题,和您一样。您这个解决方法的具体步骤能不能详细描述一下
pr应该已经合并,理论上应该没有这个bug了。 不过可以再提一下问题原因:在代码里,将文件读取并落地时,会先将file用tempfile写入一个临时文件。但此时操作系统并没有真正的写入到文件系统,可能待在缓冲区了,因此这个时候xml parser解析器读取文件会出错。 解决方案是:在file在tempfile写入后接着调用操作系统os的清空缓冲区方法强制使得文件落地。
---原始邮件--- 发件人: @.> 发送时间: 2024年10月15日(周二) 晚上10:12 收件人: @.>; 抄送: @.>;"State @.>; 主题: Re: [QingdaoU/OnlineJudge] fps导入问题 (#279)
经过几天排查发现了错误所在: 错误:file在写入tempfile的时候,还没有写入成功但xml parser已经通过tf.name读取文件,导致读取到一个空文本文件,xml解析器报错,前端返回server error。 修正:添加两条语句确保file成功写入到tf中,xml parser就成功正常运作了。已经提交了pr。 //修正完就可以愉快地完成OJ题目迁移啦O(∩_∩)O~~
遇到同样的问题,和您一样。您这个解决方法的具体步骤能不能详细描述一下
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you modified the open/close state.Message ID: @.***>
我就是按照官网部署的,还是出现了这个问题,所以这个问题pr应该是还没有修正。感谢您的讲解,虽然一知半解,我再去探索一下,谢谢!
系统:Ubuntu 16.04 部署时间:2019.10.13 问题:从hustoj导出fps,但某些fps题目导入时发生server error,目前自己测试出是在fps parser处出了问题。