regsub(all?) input limit
Christian Ruppert
idl0r at qasl.de
Thu Dec 3 14:05:44 CET 2015
On 2015-12-03 13:31, Carlos Abalde wrote:
>> On 03 Dec 2015, at 13:12, Christian Ruppert <idl0r at qasl.de> wrote:
>>
>> Hi,
>>
>> I just noticed that regsub and likely regsuball will just return the
>> untouched input string if it exceeds 57118 bytes. Is it intended to do
>> so, performance reasons perhaps?
>> In this case it's a custom error page with some (eye candy) embedded
>> images and in total a bit above the mentioned size. The regsub should
>> actually just replace a pattern with the XID, in this case simply
>> regsub(..., "bereq\.xid", bereq.xid).
>
> Hi Christian,
>
> You're probably hitting the workspace_client (or workspace_backend)
> limit. Those are varnishd parameters [1] that default to 64k. I've not
> checked the regsub implementation, but I guess it is not able to
> allocate enough memory in the workspace and in that case it simply
> returns the original input string (the alternative would be returning
> NULL or killing the child process in an assertion). Try to increase
> those parameters and try your test again.
>
> [1]
> https://www.varnish-cache.org/docs/trunk/reference/varnishd.html#list-of-parameters
>
> Best,
>
> --
> Carlos Abalde
Hi Carlos,
thanks for your fast reply! :)
You're right! Setting workspace_backend to at least 429k helps in this
case. 64k vs. >429k is quite a lot tough. So that will be allocated for
each backend req/resp? Is take from the space set by "-s" or
additionally? Is there any better way to set the XID, instead of using
smaller images? I'm not sure about the drawbacks when setting
workspace_backend to e.g. 512k.
--
Regards,
Christian Ruppert
More information about the varnish-misc
mailing list