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