memcache buffer overflow?
Anton Yuzhaninov
citrin at citrin.ru
Tue May 19 01:29:57 MSD 2009
batrick wrote:
> I am trying to get memcache with nginx to work to improve the performance of my php web application. However, while my configuration is working fine for small outputs, if output size exceeds 20k I only get garbage characters posted back to the client. The test was carried out on debian lenny, with nginx version nginx/0.6.32
>
> Test Code:
>
> --- snip
> <?php
> $length = 20;
>
> $memcache = new Memcache;
> $memcache->connect('localhost', '11211');
> $x='';
> for($i=0;$i<$length*1024;$i++) {
> $x .= 'x';
> }
> $memcache->set('/k',$x, 0, 6100);
> echo strlen($memcache->get('/k'));
> --- snap
>
> If I run this code with length set to 20, the string is correctly stored in memcache (as verified by reading from the memcache). However, nginx returns garbage characters only - especially NULL strings.
>
> If length is reduced to 19, both the memcache module and the script correctly output the x's.
don't forget to disable gzip compression of values stored in memcached by php:
http://php.net/manual/en/function.memcache-setcompressthreshold.php
--
Anton Yuzhaninov
More information about the nginx
mailing list