After such a harsh response, I aught to point out Jim is right.

WTF would you compare 8192 byte strings as identifiers? Once again Graham I
think you are out of your mind.

By digesting the whole scheme://host/uri down to a hash, we have a
manageable and comparable unit to evaluate. The idea of trashing 8k in shm
for an 'unallocated' and unnecessary storage unit is absurd.

On Feb 8, 2018 11:04 PM, "William A Rowe Jr" <wr...@rowe-clan.net> wrote:

> Since you won't permit 2.6/3.0 to come into existence, we can presume this
> was just a strawman?
>
>
>
> On Feb 8, 2018 2:39 PM, "Jim Jagielski" <j...@jagunet.com> wrote:
>
>> Another, much more extensive and intrusive fix would be to create
>> each ind field dynamically and tuck away in the  proxy_worker_shared
>> struct the SHM field to be attached to which holds the actual dynamically
>> allocated string. Better on SHM usage (our current usage is sloppy
>> regarding
>> SHM utilization due to the fixed char arrays, most of which aren't
>> full) but more complex in other ways.
>>
>> Idea would be to use the actual name and generate a hash from
>> that, use the hash as the SHM filename, create the SHM using
>> that filename (hash) to dynamically allocate the host string
>> and then store in proxy_worker_shared the hash (filename) used.
>> Attach to that SHM as needed.
>>
>> Cleanup would need some thought...
>>
>> > On Feb 8, 2018, at 10:51 AM, Graham Leggett <minf...@sharp.fm> wrote:
>> >
>> > On 07 Feb 2018, at 8:46 PM, William A Rowe Jr <wr...@rowe-clan.net>
>> wrote:
>> >
>> >> In order to find the slot, we need to strcmp. 512 is arbitrary, does
>> this
>> >> become an 8192 byte identifier? Or do we insist people distill names to
>> >> fit into a schema, much like DNS or file names, as the *identifier*?
>> >
>> > Right now the identifier is the URL prefix, and that URL prefix is
>> imposed on our users externally - we can’t insist people do anything,
>> because that anything will be “use a different server”.
>> >
>> > If the value is a hostname, then it needs to conform to RFC1035 (255
>> chars + nul).
>> >
>> > If the value is an URL (such as the name of each balancer) then we need
>> to be at least 255 chars for the hostname in the URL, plus space for the
>> rest of the URL. We could dynamically do this by following LimitRequestLine
>> but that might be tricky, and we recommend people don’t fiddle with
>> LimitRequestLine anyway.
>> >
>> > My suggestion is we extend the struct with a name_ex (or name2) and a
>> hostname_ex that have 8192 and 256 respectively. This is backportable, and
>> won’t fail in any server with default LimitRequestLine.
>> >
>> > Regards,
>> > Graham
>> > —
>> >
>>
>>

Reply via email to