about summary refs log tree commit homepage
path: root/lib/unicorn/const.rb
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2010-02-12 23:59:55 -0800
committerEric Wong <normalperson@yhbt.net>2010-02-13 00:34:50 -0800
commitafdc6fce5f7e34a5c07f24204625cd466e93e5ac (patch)
tree1dfb1c5d5e0dccae3480609147b6e7dfb1226b48 /lib/unicorn/const.rb
parent615cede23579906b486c7a18bdeb22d04864a6ea (diff)
downloadunicorn-afdc6fce5f7e34a5c07f24204625cd466e93e5ac.tar.gz
First off, this memory leak DOES NOT affect Unicorn itself.
Unicorn allocates the HttpParser once and always reuses it
in every sequential request.

This leak affects applications which repeatedly allocate a new
HTTP parser.  Thus this bug affects _all_ deployments of
Rainbows! and Zbatery.  These servers allocate a new parser for
every client connection.

I misread the Data_Make_Struct/Data_Wrap_Struct documentation
and ended up passing NULL as the "free" argument instead of -1,
causing the memory to never be freed.

From README.EXT in the MRI source which I misread:
> The free argument is the function to free the pointer
> allocation.  If this is -1, the pointer will be just freed.
> The functions mark and free will be called from garbage
> collector.
Diffstat (limited to 'lib/unicorn/const.rb')
0 files changed, 0 insertions, 0 deletions