From: Greg B. <gre...@gm...> - 2010-05-17 17:35:44
|
Hi, I'm posting (POST) a file to an application behind a reverse proxy managed by Yaws, the connection is reset by Yaws. There is no problem when browsing the web site (GET). Here is my configuration file for the virtual host : <server dev.euphorik.ch> port = 8081 listen = 0.0.0.0 revproxy = / http://localhost:8083 </server> And here is the message output in /var/log/yaws/report.log (I'v cut the posted data) : =ERROR REPORT==== 15-May-2010::13:14:08 === Bad value on output port 'tcp_inet' =ERROR REPORT==== 15-May-2010::13:14:08 === Yaws process died: {badarg, [{erlang,iolist_size, [{partial, <<45,45,45,45,45,45,45,45,45,45,45,45,45, 45,45,45,45,45,45,45,45,45,45,45,45,45, 45,45,45,49,48,53,57,57,49,54,52,55,52, 55,49,57,53,13,10,67,111,110,116,101,110, ---------------------------------------------------------------------------- 213,152,19,43,6,175,222,119,193,231,211, 166,85,108,131,112>>}]}, {yaws,gen_tcp_send,2}, {yaws_revproxy,init,6}, {yaws_server,aloop,3}, {yaws_server,acceptor0,2}, {proc_lib,init_p_do_apply,3}]} Is this a regression because I never experience a such error previously ? /Greg |
From: Steve V. <vi...@ie...> - 2010-05-17 18:42:13
|
On Mon, May 17, 2010 at 1:35 PM, Greg Burri <gre...@gm...> wrote: > Hi, > > I'm posting (POST) a file to an application behind a reverse proxy > managed by Yaws, the connection is reset by Yaws. There is no problem > when browsing the web site (GET). > > Here is my configuration file for the virtual host : > > <server dev.euphorik.ch> > port = 8081 > listen = 0.0.0.0 > revproxy = / http://localhost:8083 > </server> > > > And here is the message output in /var/log/yaws/report.log (I'v cut > the posted data) : > > =ERROR REPORT==== 15-May-2010::13:14:08 === > Bad value on output port 'tcp_inet' > > > =ERROR REPORT==== 15-May-2010::13:14:08 === > Yaws process died: {badarg, > [{erlang,iolist_size, > [{partial, > <<45,45,45,45,45,45,45,45,45,45,45,45,45, > 45,45,45,45,45,45,45,45,45,45,45,45,45, > 45,45,45,49,48,53,57,57,49,54,52,55,52, > 55,49,57,53,13,10,67,111,110,116,101,110, > ---------------------------------------------------------------------------- > 213,152,19,43,6,175,222,119,193,231,211, > 166,85,108,131,112>>}]}, > {yaws,gen_tcp_send,2}, > {yaws_revproxy,init,6}, > {yaws_server,aloop,3}, > {yaws_server,acceptor0,2}, > {proc_lib,init_p_do_apply,3}]} > > > Is this a regression because I never experience a such error previously ? Was it a large post? You might want to see the partial_post_size config setting, the following is from the yaws.conf man page: partial_post_size = Integer | nolimit When a yaws file receives large POSTs, the amount of data received in each chunk is determined by the this parameter. The default value is 10240. If you can duplicate the problem, please do the following: 1. Tell us how to duplicate it, or better yet submit a little test case that duplicates it. 2. Try setting partial_post_size to something larger or even nolimit to see if the problem goes away. --steve |
From: Colm D. <col...@gm...> - 2010-05-18 00:05:08
|
On Mon, May 17, 2010 at 11:42 AM, Steve Vinoski <vi...@ie...> wrote: > On Mon, May 17, 2010 at 1:35 PM, Greg Burri <gre...@gm...> wrote: >> Hi, >> >> I'm posting (POST) a file to an application behind a reverse proxy >> managed by Yaws, the connection is reset by Yaws. There is no problem >> when browsing the web site (GET). >> >> Here is my configuration file for the virtual host : >> >> <server dev.euphorik.ch> >> port = 8081 >> listen = 0.0.0.0 >> revproxy = / http://localhost:8083 >> </server> >> >> >> And here is the message output in /var/log/yaws/report.log (I'v cut >> the posted data) : >> >> =ERROR REPORT==== 15-May-2010::13:14:08 === >> Bad value on output port 'tcp_inet' >> >> >> =ERROR REPORT==== 15-May-2010::13:14:08 === >> Yaws process died: {badarg, >> [{erlang,iolist_size, >> [{partial, >> <<45,45,45,45,45,45,45,45,45,45,45,45,45, >> 45,45,45,45,45,45,45,45,45,45,45,45,45, >> 45,45,45,49,48,53,57,57,49,54,52,55,52, >> 55,49,57,53,13,10,67,111,110,116,101,110, >> ---------------------------------------------------------------------------- >> 213,152,19,43,6,175,222,119,193,231,211, >> 166,85,108,131,112>>}]}, >> {yaws,gen_tcp_send,2}, >> {yaws_revproxy,init,6}, >> {yaws_server,aloop,3}, >> {yaws_server,acceptor0,2}, >> {proc_lib,init_p_do_apply,3}]} >> >> >> Is this a regression because I never experience a such error previously ? > > Was it a large post? You might want to see the partial_post_size > config setting, the following is from the yaws.conf man page: > > partial_post_size = Integer | nolimit > When a yaws file receives large POSTs, the amount of data > received in each chunk is determined by the this parameter. The > default value is 10240. > > If you can duplicate the problem, please do the following: > > 1. Tell us how to duplicate it, or better yet submit a little test > case that duplicates it. I was able to replicate this with a trivial yaws setup: yaws:start_embedded("/home/tobbe/docroot", [{revproxy, [{"/", yaws_api:parse_url("http://localhost:8083")}]}] ). .. and using curl to POST a large file as follows : curl --data @name_of_large_file http://localhost:8000 The file was 40k in my case. > 2. Try setting partial_post_size to something larger or even nolimit > to see if the problem goes away. Yes the problem goes away with that setting. Colm |
From: Steve V. <vi...@ie...> - 2010-05-18 05:27:16
|
On Mon, May 17, 2010 at 8:04 PM, Colm Dougan <col...@gm...> wrote: > > I was able to replicate this with a trivial yaws setup: > > yaws:start_embedded("/home/tobbe/docroot", > [{revproxy, [{"/", yaws_api:parse_url("http://localhost:8083")}]}] > ). > > .. and using curl to POST a large file as follows : > > curl --data @name_of_large_file http://localhost:8000 > > The file was 40k in my case. Great, thanks! I was traveling most of the day today and barely had time to check email, so this is very helpful. I can also duplicate the error with this approach. >> 2. Try setting partial_post_size to something larger or even nolimit >> to see if the problem goes away. > > Yes the problem goes away with that setting. Cool, thanks. Greg, for now I recommend using either nolimit or a larger setting for partial_post_size until we can get this fixed. Fixing the cause of the particular error you encountered is easy, but it just exposes more problems that aren't as easy to fix. thanks, --steve |
From: Greg B. <gre...@gm...> - 2010-05-19 22:06:50
|
Re, Thanks for your advices, with partial_post_size = nolimit all is working fine. /Greg On Tue, May 18, 2010 at 7:27 AM, Steve Vinoski <vi...@ie...> wrote: > On Mon, May 17, 2010 at 8:04 PM, Colm Dougan <col...@gm...> wrote: >> >> I was able to replicate this with a trivial yaws setup: >> >> yaws:start_embedded("/home/tobbe/docroot", >> [{revproxy, [{"/", yaws_api:parse_url("http://localhost:8083")}]}] >> ). >> >> .. and using curl to POST a large file as follows : >> >> curl --data @name_of_large_file http://localhost:8000 >> >> The file was 40k in my case. > > Great, thanks! I was traveling most of the day today and barely had > time to check email, so this is very helpful. I can also duplicate the > error with this approach. > >>> 2. Try setting partial_post_size to something larger or even nolimit >>> to see if the problem goes away. >> >> Yes the problem goes away with that setting. > > Cool, thanks. > > Greg, for now I recommend using either nolimit or a larger setting for > partial_post_size until we can get this fixed. Fixing the cause of the > particular error you encountered is easy, but it just exposes more > problems that aren't as easy to fix. > > thanks, > --steve > |