[Rabbit-dev] Request-URI Too Long

Mindaugas Žakšauskas mindas at gmail.com
Mon Jan 3 19:38:02 CET 2011


On Mon, Jan 3, 2011 at 6:13 PM, Robert Olofsson
<robert.olofsson at khelekore.org> wrote:
> Seeing network data would be great, but I guess it can be hard to get it.

This occurs rarely enough and the overhead would be big, but if I
wanted to log complete set of headers for every request, what would be
the best way to do this?

>> This error seems to be coming from HttpHeaderReader:144. I can see a
>> TODO around here, but not quite sure if this is a placeholder for a
>> better implementation or just a corner case which is not clear how to
>> handle properly.
>
> Ops, guess I forgot to remove that TODO when I actually made the
> buffer grow.

So you're saying that buffer should be capable to grow indefinitely?

I haven't debugged this, but is the exception not always thrown (in
HttpHeaderReader::parseBuffer) if isUsingSmallBuffer(buffer) returns
false?

>> I would even be willing to recompile Rabbit myself using larger buffer, but:
>> 1) would it solve the problem?
>
> Probably not, since rabbit actually does grow the buffer (at least in
> some cases) it is probably a bug in the code.

What I could do is to add some debug code just before the exception is
thrown so this would allow me to avoid logging all headers.
I am just not sure if all necessary information is available at this
point. Do you have any tips on what debugging code could be placed
there?

> It might make the problem occur less often though, so go ahead and try.
> Switching up to 8kB buffers by default should not matter much.

I'd rather leave it as it is and try to get down to the root of the problem.

>> 2) is there only one place where the buffer size is set, or are there more?
>
> It is set in one class only, in CachingBufferHandler.java.

I can see number 4096 being repeated at least three times in this
class (methods: isLarge, putBuffer, getBuffer). I would assume all of
these would need changing, right?

Thanks for your response Robo.

m.



More information about the Rabbit-dev mailing list