blPop leaking memory #9

pdewaha opened this Issue Apr 14, 2011 · 3 comments


None yet

2 participants

pdewaha commented Apr 14, 2011

We use redis to dispatch commands to worker processes based on lists (as queues).
The worker processes pop commands from lists in blocking mode.
The blPop command leaks memory heavily.

Please use following code snippet to reproduce the problem:
It is a consumer producer, just to showcase the bug.

Call the consumer from the command line and let it run.
Call the producer from the command line in parallel to the consumer.

You can see how the consumer (blPop) increases the memory usage until memory limit is reached.

Can't tell you the version of phpredis, it was a master checkout in february.

Best regards,

connect('', 6379); while (true) { if ($r->lpush('queue', mt_rand(1,1232432342342)) > 10) usleep(500); echo "Memory used (".memory_get_usage().")\n"; } } public static function consumer() { $r = new Redis(); $r->connect('', 6379); while (true) { $result = $r->blPop('queue', 1); // this bugs... echo "Memory used (".memory_get_usage().")\n"; } } ``` } ?>


Thanks for reporting this, I'll have a look at it today.


@nicolasff nicolasff was assigned Apr 14, 2011
@nicolasff nicolasff closed this in 87cfc26 Apr 15, 2011

This issue has been fixed in the pecl branch and merged into master.

pdewaha commented Apr 20, 2011

Thank you for your fast intervention


@yatsukhnenko yatsukhnenko added a commit to yatsukhnenko/phpredis that referenced this issue Dec 2, 2016
@yatsukhnenko yatsukhnenko #9 e112d98
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment