[opensuse-buildservice] getbinarylist and Transfer-Encoding header
Hi, there seems to be a problem with the getbinarylist call (view=cpio) and the "Transfer-Encoding" header (depending on the "length" of the request?). I just tried the following curl calls: curl -o out.cpio -v -sS \ "https://api.opensuse.org/public/build/openSUSE:Factory/standard/x86_64/_repository?view=cpio&binary=aaa_base&binary=$(perl -e "print 'b'x3616")" and curl -o out.cpio -v -sS \ "https://api.opensuse.org/public/build/openSUSE:Factory/standard/x86_64/_repository?view=cpio&binary=aaa_base&binary=$(perl -e "print 'b'x3617")" The response of the first request still includes the "Transfer-Encoding" header but the response of the second request has no "Transfer-Encoding" header. Now consider the following call: curl http://<local obs>/build/<remote project>/<repo>/<arch>/_repository?view=cpio&<long query> This leads to a "crash" in bs_srcserver (the ajax process dies because the response has neither a "Transfer-Encoding" nor a "Content-Length" header). Any ideas why the "Transfer-Encoding" header gets swallowed? Marcus Ps. is this the same bug to which a comment in "worker_getbinaries" refers? -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Hi, On 2010-12-21 01:05:37 +0100, Marcus Hüwe wrote:
there seems to be a problem with the getbinarylist call (view=cpio) and the "Transfer-Encoding" header (depending on the "length" of the request?). I just tried the following curl calls: curl -o out.cpio -v -sS \ "https://api.opensuse.org/public/build/openSUSE:Factory/standard/x86_64/_repository?view=cpio&binary=aaa_base&binary=$(perl -e "print 'b'x3616")" and curl -o out.cpio -v -sS \ "https://api.opensuse.org/public/build/openSUSE:Factory/standard/x86_64/_repository?view=cpio&binary=aaa_base&binary=$(perl -e "print 'b'x3617")"
The response of the first request still includes the "Transfer-Encoding" header but the response of the second request has no "Transfer-Encoding" header.
Now consider the following call: curl http://<local obs>/build/<remote project>/<repo>/<arch>/_repository?view=cpio&<long query>
This leads to a "crash" in bs_srcserver (the ajax process dies because the response has neither a "Transfer-Encoding" nor a "Content-Length" header).
Any ideas why the "Transfer-Encoding" header gets swallowed?
Just a small *bump* - we just hit this bug while debugging a local obs issue in the #opensuse-buildservice irc channel. Does anyone have an idea what might be the root cause of this behaviour? Marcus -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Fri, Mar 25, 2011 at 11:55:00PM +0100, Marcus Hüwe wrote:
On 2010-12-21 01:05:37 +0100, Marcus Hüwe wrote:
there seems to be a problem with the getbinarylist call (view=cpio) and the "Transfer-Encoding" header (depending on the "length" of the request?). I just tried the following curl calls: curl -o out.cpio -v -sS \ "https://api.opensuse.org/public/build/openSUSE:Factory/standard/x86_64/_repository?view=cpio&binary=aaa_base&binary=$(perl -e "print 'b'x3616")" and curl -o out.cpio -v -sS \ "https://api.opensuse.org/public/build/openSUSE:Factory/standard/x86_64/_repository?view=cpio&binary=aaa_base&binary=$(perl -e "print 'b'x3617")"
The response of the first request still includes the "Transfer-Encoding" header but the response of the second request has no "Transfer-Encoding" header.
Now consider the following call: curl http://<local obs>/build/<remote project>/<repo>/<arch>/_repository?view=cpio&<long query>
This leads to a "crash" in bs_srcserver (the ajax process dies because the response has neither a "Transfer-Encoding" nor a "Content-Length" header).
Any ideas why the "Transfer-Encoding" header gets swallowed?
Just a small *bump* - we just hit this bug while debugging a local obs issue in the #opensuse-buildservice irc channel.
Does anyone have an idea what might be the root cause of this behaviour?
I think this is because ichain/lighttpd have a limit on the url size. I already switched to POST for the /lastevents request because of this. Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Hi! 2011/3/28 Michael Schroeder <mls@suse.de>:
I think this is because ichain/lighttpd have a limit on the url size. I already switched to POST for the /lastevents request because of this.
It seems that this switch is only done in the backend and not in the API. PublicController::lastevents still supports only get. Or am I missing something? -Johannes -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
participants (3)
-
Johannes Lahti
-
Marcus Hüwe
-
Michael Schroeder