1

在执行这个氮气函数 wf:q_pl(KeyList) 时,我在 Yaws 上运行氮气时遇到了一个令人震惊的错误。好吧,当长度(KeyList)大约小于 40 时它起作用了,但是当长度(KeyList)增加到大约 200 的更大值时,这个错误被抛出在氮气控制台中。

(nitrogen@127.0.0.1)1> 
=INFO REPORT==== 8-Feb-2014::08:14:25 ===
{error,error,function_clause,
   [{yaws_api,do_parse_spec,
              [{partial,<<"pageContext=FhJWIkuBAhVTtWBwx55fbLljhPYGt-X8C_M2b61YwTPKWz1ZKhzsOTGaRHOLK2T-3f1weOU5CiIqfj98YG1QsFxX2WWfI_fYamdSBPK9RX1_i9t7QzQlFT1iT1R_sj_gLalDJuczluCQfN87a5t_CWLwepgPXyfOiTW1XQDIqcYlIXokbnKiPPvh_lqNvL472LrXC1xweYipFQiDCUgDjd5nFWa8XczD1GZROvDs1zTAeMAPQHQW8IGMHXVWFURWGfXA5OQkRKdY41J7yHUBdhawMLrP_kjeov-4ldWTtDDzqCMI8yJCOFN6Jkkcnk_-TJ-LInGIbxk52h141lCte03BD4NTxNRdRrP0GGz787V8B0YmGTeyYVetuFhpBFZwsMWo5e2nS2_xjLf0ju7W8oPChVwoHjtK9zKfA2FHtofmhflkqWheYwjTe6YnJRZMbzJUebKdvm_YCpCZc0SogQgTLxvazreQNnOWhnb44rBaG2JT1zqjCiOPcXHgjSGafF6UkvLh_TAAyMrZmOhGPjH-NrMPsCr0Grcn8CTU2jnj0Ea2VHWnb031VZwy3DFiGM6cf22f6SRxs7mACftzG8pOTApyBdQhiiR3VB0Kd939lyjmSKVThcR2cGrVmuHktZW8nTWGaaym_RNIehhzWXGjzrbED9c98d63dr-HvJ6S0WCOqRFkniNNd7et0NN0C-8w6Jspj45A1fnLVKpYSs-x7H4VBSfxAcxg8buWYMKOu8klIxLNltEPsOGK90xG6bBrPWwO10SWmr-l-c7lWrDhsxEEEX-tMJ8t82Zwkrh7foRa9LDufgSx1d1hyLVpqQkQxmZMfWpexvJCmb9Yz4hnu5DnBn8Ee08OpYvgdcT7poRYe1vBJ1W1RNphiQUr5mnNjP9CLy70F5VBXqcNmQ2ZezuCKaY9jIkebCu1-vmMpSClkyEaf0j2BtLiFrC2pwn-6y6p_oPrf_77LZSD_zrPLtJv-wS25TahuYEiT7WcF5PU4IinE7kMe4PY79mMprMiGo3FXbsG8G6P4MgaSvCnfdugh_lIrzZ8GPhE51fpAvClKyhWehscEvRt8WknCmD9-PvMBGRRYj1elxLqFSQgsDDKZUnDMCbWY3vYNkKq6MlPbd6tZ1ReBGH1bk4J25v-1jKrhhaaHixjIrVK4TeqLmWuohsK5RtUAVDRhQxjOEOSB4SaPo6RfMoYmNaJWCq2yZKd1dwuNMViP_wU3W8ndcRZ9qfP4d8BQugYCC6QrRHlZn0c4zuLjD6ovw0JQrNka1Aarpx-tJRM2HMxTlJtl4Ibbwmc6H9MEUBa9VFWt2WTsgwppb1u2q1aWjlJRJDO2XgXERDaxXHR-xG0iUUSjvk&wfid_temp805312.wfid_temp805312.wfid_temp805504.wfid_response.wfid_temp949315.wfid_year=2014&wfid_temp805312.wfid_temp805312.wfid_temp805504.wfid_response.wfid_temp949361.wfid_term=1&wfid_temp805312.wfid_temp805312.wfid_temp805504.wfid_response.wfid_temp949403.wfid_stream=p.2+west&wfid_temp805312.wfid_temp805312.wfid_temp805504.wfid_response.wfid_temp949446.wfid_class=p.2&wfid_temp805312.wfid_temp805312.wfid_temp805504.wfid_response.wfid_temp949488.wfid_assessment=beginning+of+term&wfid_temp805312.wfid_temp805312.wfid_temp805504.wfid_response.wfid_temp949539=&wfid_temp805312.wfid_temp805312.wfid_temp805504.wfid_response.wfid_temp949575.wfid_subject=english&wfid_temp950069.wfid_temp950497.wfid_temp950541.wfid_100000721=45&wfid_temp950069.wfid_temp950600.wfid_temp950642.wfid__100000721=&wfid_temp950702.wfid_temp950911.wfid_temp950958.wfid_100000726=&wfid_temp950702.wfid_temp951013.wfid_temp951056.wfid__100000726=&wfid_temp951111.wfid_temp951326.wfid_temp951665.wfid_100000728=78&wfid_temp951111.wfid_temp951726.wfid_temp951768.wfid__100000728=&wfid_temp951822.wfid_temp952032.wfid_temp952074.wfid_100000729=&wfid_temp951822.wfid_temp952128.wfid_temp952174.wfid__100000729=&wfid_temp952281.wfid_temp952492.wfid_temp952533.wfid_100000730=86&wfid_temp952281.wfid_temp952587.wfid_temp952629.wfid__100000730=&wfid_temp952771.wfid_temp952977.wfid_temp953023.wfid_100000725=&wfid_temp952771.wfid_temp953077.wfid_temp953150.wfid__100000725=&wfid_temp953205.wfid_temp953416.wfid_temp953514.wfid_100000722=87&wfid_temp953205.wfid_temp953573.wfid_temp953616.wfid__100000722=&wfid_temp953670.wfid_temp953912.wfid_temp953953.wfid_100000720=&wfid_temp953670.wfid_temp954007.wfid_temp954053.wfid__100000720=&wfid_temp954107.wfid_temp954372.wfid_temp954428.wfid_100000731=&wfid_temp954107.wfid_temp954483.wfid_temp954524.wfid__100000731=&wfid_temp954583.wfid_temp954824.wfid_temp954866.wfid_100000723=&wfid_temp954583.wfid_temp954919.wfid_temp955741.wfid__100000723=&wfid_temp955811.wfid_temp956044.wfid_temp956090.wfid_100000727=&wfid_temp955811.wfid_temp956155.wfid_temp956202.wfid__100000727=&wfid_temp956265.wfid_temp956497.wfid_temp956547.wfid_100000724=&wfid_temp956265.wfid_temp956610.wfid_temp956655.wfid__100000724=&wfid_temp956719.wfid_temp956954.wfid_temp957000.wfid_100000732=&wfid_temp956719.wfid_temp957064.wfid_temp957110.wfid__100000732=&wfid_temp957180.wfid_temp957418.wfid_temp957465.wfid_100000733=&wfid_temp957180.wfid_temp957527.wfid_temp957579.wfid__100000733=&wfid_temp957638.wfid_temp958889.wfid_temp958936.wfid_100000719=&wfid_temp957638.wfid_temp959002.wfid_temp959049.wfid__100000719=&wfid_temp959113.wfid_temp959344.wfid_temp959396.wfid_100000692=&wfid_temp959113.wfid_temp959462.wfid_temp959508.wfid__100000692=&wfid_temp959586.wfid_temp959894.wfid_temp959941.wfid_100000589=&wfid_temp959586.wfid_temp959997.wfid_temp960039.wfid__100000589=&wfid_temp960095.wfid_temp960306.wfid_temp960348.wfid_100000685=&wfid_temp960095.wfid_temp960408.wfid_temp960450.wfid__100000685=&wfid_temp960661.wfid_temp960872.wfid_temp960913.wfid_100000532=&wfid_temp960661.wfid_temp960967.wfid_temp961014.wfid__100000532=&wfid_temp961069.wfid_temp961279.wfid_temp961321.wfid_100000622=&wfid_temp961069.wfid_temp961375.wfid_temp961416.wfid__100000622=&wfid_temp961475.wfid_temp961742.wfid_temp961789.wfid_100000596=&wfid_temp961475.wfid_temp961845.wfid_temp961887.wfid__100000596=&wfid_temp961941.wfid_temp962152.wfid_temp962194.wfid_100000602=&wfid_temp961941.wfid_temp962254.wfid_temp962296.wfid__100000602=&wfid_temp962361.wfid_temp962720.wfid_temp962763.wfid_100000671=&wfid_temp962361.wfid_temp962819.wfid_temp962865.wfid__100000671=&wfid_temp962920.wfid_temp963131.wfid_temp963172.wfid_100000620=&wfid_temp962920.wfid_temp963226.wfid_temp963267.wfid__100000620=&wfid_temp963325.wfid_temp963537.wfid_temp963584.wfid_100000691=&wfid_temp963325.wfid_temp963638.wfid_temp963751.wfid__100000691=&wfid_temp963808.wfid_temp964022.wfid_temp964065.wfid_100000533=&wfid_temp963808.wfid_temp964125.wfid_temp964169.wfid__100000533=&wfid_temp964225.wfid_temp964439.wfid_temp964481.wfid_100000599=&wfid_temp964225.wfid_temp964537.wfid_temp964724.wfid__100000599=&wfid_temp964779.wfid_temp964991.wfid_temp965032.wfid_100000709=&wfid_temp964779.wfid_temp965086.wfid_temp965129.wfid__100000709=&wfid_temp965188.wfid_temp965395.wfid_temp965442.wfid_100000598=&wfid_temp965188.wfid_temp965497.wfid_temp965538.wfid__100000598=&wfid_temp965592.wfid_temp965872.wfid_temp965914.wfid_100000568=&wfid_temp965592.wfid_temp965974.wfid_temp966017.wfid__100000568=&wfid_temp966072.wfid_temp966284.wfid_temp966326.wfid_100000537=&wfid_temp966072.wfid_temp966381.wfid_temp966427.wfid__100000537=&wfid_temp966483.wfid_temp966843.wfid_temp966885.wfid_100000687=&wfid_temp966483.wfid_temp966941.wfid_temp966983.wfid__100000687=&wfid_temp967043.wfid_temp967268.wfid_temp967318.wfid_100000717=&wfid_temp967043.wfid_temp967373.wfid_temp967415.wfid__100000717=&wfid_temp967471.wfid_temp967768.wfid_temp967811.wfid_100000558=&wfid_temp967471.wfid_temp967872.wfid_temp967915.wfid__100000558=&wfid_temp967971.wfid_temp968183.wfid_temp968225.wfid_100000699=&wfid_temp967971.wfid_temp968281.wfid_temp968329.wfid__100000699=&wfid_temp968385.wfid_temp970042.wfid_temp970116.wfid_100000710=&wfid_temp968385.wfid_temp970187.wfid_temp970233.wfid__100000710=&wfid_temp970296.wfid_temp970535.wfid_temp970650.wfid_100000551=&wfid_temp970296.wfid_temp970716.wfid_temp970766.wfid__100000551=&wfid_temp970825.wfid_temp971071.wfid_temp971117.wfid_100000632=&wfid_temp970825.wfid_temp971180.wfid_temp971231.wfid__100000632=&wfid_temp971290.wfid_temp971529.wfid_temp971576.wfid_100000648=&wfid_temp971290.wfid_temp971634.wfid_temp971680.wfid__100000648=&wfid_temp971743.wfid_temp971975.wfid_temp972021.wfid_100000600=&wfid_temp971743.wfid_temp972091.wfid_temp972138.wfid__100000600=&wfid_temp972196.wfid_temp972437.wfid_temp972483.wfid_100000662=&wfid_temp972196.wfid_temp972545.wfid_temp972597.wfid__100000662=&wfid_temp972658.wfid_temp972893.wfid_temp972939.wfid_100000539=&wfid_temp972658.wfid_temp972997.wfid_temp973043.wfid__100000539=&wfid_temp973106.wfid_temp973343.wfid_temp973389.wfid_100000577=&wfid_temp973106.wfid_temp973456.wfid_temp973502.wfid__100000577=&wfid_temp973562.wfid_temp975361.wfid_temp975410.wfid_100000535=&wfid_temp973562.wfid_temp975478.wfid_temp975526.wfid__100000535=&wfid_temp975589.wfid_temp975831.wfid_temp975879.wfid_100000540=&wfid_temp975589.wfid_temp975944.wfid_temp975996.wfid__100000540=&wfid_temp976057.wfid_temp976296.wfid_temp976347.wfid_100000688=&wfid_temp976057.wfid_temp976407.wfid_temp976458.wfid__100000688=&wfid_temp976522.wfid_temp976905.wfid_temp976946.wfid_100000654=&wfid_temp976522.wfid_temp977000.wfid_temp977042.wfid__100000654=&wfid_temp977101.wfid_temp977307.wfid_temp977353.wfid_100000701=&wfid_temp977101.wfid_temp977407.wfid_temp977449.wfid__100000701=&wfid_temp977503.wfid_temp977713.wfid_temp977754.wfid_100000636=&wfid_temp977503.wfid_temp977812.wfid_temp977854.wfid__100000636=&wfid_temp978142.wfid_temp978372.wfid_temp978415.wfid_100000626=&wfid_temp978142.wfid_temp978470.wfid_temp978517.wfid__100000626=&wfid_temp978572.wfid_temp978812.wfid_temp978854.wfid_100000669=&wfid_temp978572.wfid_temp978909.wfid_temp978951.wfid__100000669=&wfid_temp979011.wfid_temp979220.wfid_temp979268.wfid_100000550=&wfid_temp979011.wfid_temp979323.wfid_temp979366.wfid__100000550=&wfid_temp979420.wfid_temp979633.wfid_temp979675.wfid_100000683=&wfid_temp979420.wfid_temp979734.wfid_temp979776.wfid__100000683=&wfid_temp979945.wfid_temp980160.wfid_temp980202.wfid_100000640=&wfid_temp979945.wfid_temp980262.wfid_temp980305.wfid__100000640=&wfid_temp980360.wfid_temp980572.wfid_temp980614.wfid_100000656=&wfid_temp980360.wfid_temp980669.wfid_temp980719.wfid__100000656=&wfid_temp980776.wfid_temp980996.wfid_temp981039.wfid_100000675=&wfid_temp980776.wfid_temp981095.wfid_temp981137.wfid__100000675=&wfid_temp981192.wfid_temp981590.wfid_temp981637.wfid_100000572=&wfid_temp981192.wfid_temp981691.wfid_temp981733.wfid__100000572=&wfid_temp981787.wfid_temp982000.wfid_temp982042.wfid_100000647=&wfid_temp981787.wfid_temp982101.wfid_temp982143.wfid__100000647=&wfid_temp982202.wfid_temp982435.wfid_temp982476.wfid_100000556=&wfid_temp982202.wfid_temp982531.wfid_temp982576.wfid__100000556=&wfid_temp982631.wfid_temp982888.wfid_temp982930.wfid_100000582=&wfid_temp982631.wfid_temp982985.wfid_temp983027.wfid__100000582=&wfid_temp983081.wfid_temp983400.wfid_temp983442.wfid_100000695=&wfid_temp983081.wfid_temp983501.wfid_temp983544.wfid__100000695=&wfid_temp983599.wfid_temp983810.wfid_temp983853.wfid_100000653=&wfid_temp983599.wfid_temp983908.wfid_temp983954.wfid__100000653=&wfid_temp984009.wfid_temp984223.wfid_temp984266.wfid_100000542=&wfid_temp984009.wfid_temp984321.wfid_temp984363.wfid__100000542=&wfid_temp984418.wfid_temp984820.wfid_temp984867.wfid_100">>},
               nokey,[],key],
              [{file,"src/yaws_api.erl"},{line,499}]},
    {wf_core,deserialize_context,0,
             [{file,"/home/dotshule/nitrogen/rel/nitrogen/lib/nitrogen_core/src/wf_core.erl"},
              {line,115}]},
    {wf_core,run_catched,0,
             [{file,"/home/dotshule/nitrogen/rel/nitrogen/lib/nitrogen_core/src/wf_core.erl"},
              {line,48}]},
    {wf_core,run,0,
             [{file,"/home/dotshule/nitrogen/rel/nitrogen/lib/nitrogen_core/src/wf_core.erl"},
              {line,19}]},
    {yaws_server,deliver_dyn_part,8,
                 [{file,"src/yaws_server.erl"},{line,2801}]},
    {yaws_server,aloop,4,[{file,"src/yaws_server.erl"},{line,1215}]},
    {yaws_server,acceptor0,2,[{file,"src/yaws_server.erl"},{line,1052}]},
    {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]}

=INFO REPORT==== 8-Feb-2014::08:14:25 ===
{error,error,
   {case_clause,undefined},
   [{wf_core,finish_dynamic_request,0,
             [{file,"/home/dotshule/nitrogen/rel/nitrogen/lib/nitrogen_core/src/wf_core.erl"},
              {line,87}]},
    {wf_core,run_crash,4,
             [{file,"/home/dotshule/nitrogen/rel/nitrogen/lib/nitrogen_core/src/wf_core.erl"},
              {line,37}]},
    {yaws_server,deliver_dyn_part,8,
                 [{file,"src/yaws_server.erl"},{line,2801}]},
    {yaws_server,aloop,4,[{file,"src/yaws_server.erl"},{line,1215}]},
    {yaws_server,acceptor0,2,[{file,"src/yaws_server.erl"},{line,1052}]},
    {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]}

=ERROR REPORT==== 8-Feb-2014::08:14:25 ===
Unhandled reply fr. do_recv() {error,emsgsize}

我认为这是一个错误,因为当我更改为牛仔 Web 服务器时,即使在 wf:q_pl(KeyList), length(KeyList) > 400 中它也运行良好

4

1 回答 1

3

这个问题是由于 Yaws 对 POST 的大小有一个内置限制,默认为 10240 字节。通过发布大于 10240 字节的数据,我能够复制您看到的问题。(顺便说一句,下次请提供有关如何重现您所看到的问题的更多详细信息。)

要解决这个问题,您可以更改在 Nitrogen 下运行的 Yaws 的配置。您无需停止 Nitrogen 或 Yaws 即可进行此更改。首先,编辑文件rel/nitrogen/etc/yaws.conf以将以下内容添加到<server>块中:

partial_post_size = 2048000

这会将 POST 大小限制提高到 2048000 字节。随意更改您认为合适的值,但只需确保它足够大以处理您的应用程序发送的最大 POST。您还可以将值设置为 wordnolimit以完全消除限制,但这对于生产服务器来说是个坏主意,因为它会允许恶意客户端使服务器崩溃。

保存rel/nitrogen/etc/yaws.conf文件后,如果它没有运行,只需启动 Nitrogen,或者如果它正在运行,运行以下命令:

rel/nitrogen/lib/yaws/bin/yaws --hup

这向正在运行的 Yaws 服务器发出信号以重新加载其配置。

我相信要完全解决这个问题需要改变Nitrogen 和 Yaws 之间的桥梁

更新:如果您从其github 存储库中获取 Nitrogen,则它在提交 8bf48378时具有更大的 Yawspartial_post_size配置设置设置。

于 2014-02-23T15:24:51.913 回答