[squeak-dev] Problems with Browse revisions in System package

Levente Uzonyi leves at caesar.elte.hu
Sat Jun 29 22:51:27 UTC 2019


On Sat, 29 Jun 2019, David T. Lewis wrote:

> On Fri, Jun 28, 2019 at 05:20:09PM -0700, Eliot Miranda wrote:
>> Hi Chris, Hi All,
>>
>>     I tried browse revisions for
>> SmalltalkImage>>recreateSpecialObjectsArray and this was the reply:
>> 
>> HTTP/1.1 414 Request-URI Too Large
>> server: nginx/1.16.0
>> date: Sat, 29 Jun 2019 00:18:02 GMT
>> content-type: text/html
>> content-length: 177
>> connection: close
>> 
>> <html>
>> <head><title>414 Request-URI Too Large</title></head>
>> <body>
>> <center><h1>414 Request-URI Too Large</h1></center>
>> <hr><center>nginx/1.16.0</center>
>> </body>
>> </html>
>> 
>> Just an FYI. I can live without this but it is really nice to have.
>> _,,,^..^,,,_
>> best, Eliot
>
> This might be a hard thing to fix. The issue is that the http request contains
> a serialized version of the MCMethodDefinition for the method being checked.
>
> In the case of SmalltalkImage>>recreateSpecialObjectsArray, the method contains
> references to a lot of classes, and the serialized version of this is rather
> huge (9324 bytes after serializing and encoding it for HTTP).
>
> The result is an unreasonablly large HTTP get request, which nginx (I think) is
> complaining about.
>
> A workaround might be to tell nginx to accept unreasonably large requests (I
> don't know how to do that, but I am sure it must be possible), or to find some
> way to reformulate the request to use a simpler representation of the method
> (possibly STON or perhaps just fileout format) rather than a full ReferenceStream
> serialization.

It's possible to change nginx's 8kB default (this method produces a 12kB 
url), but I'd rather change the server (squeaksource image) to accept POST 
requests as well. Then the only change needed in the image would be to 
replace httpGet: with httpPost:.

Levente

>
> Dave


More information about the Squeak-dev mailing list