Update hardening rules.
[awesomized/libmemcached] / memcached / ChangeLog
1 2010-10-11
2 * ChangeLog is no longer being updated.
3 See http://code.google.com/p/memcached/wiki/ReleaseNotes
4
5 2009-04-10
6
7 * *critical bugfix*. In 1.2.7 under multithreaded mode, memcached
8 would never restart accepting connections after hitting the
9 maximum connection limit.
10
11 2009-04-02
12
13 * Fix: Rewrote stat buffer handling (Trond)
14
15 2009-03-31
16
17 * Feature: -b option for configuring backlog
18
19 * Feature: stats settings
20
21 * Fix: binary stat alignment bug (bug26)
22
23 * Fix: buffer overflow in stats (bug27)
24
25 * Fix: recycle memory more aggressively (bug14)
26
27 * Fix: incr validation (bug31)
28
29 * Fix: 64-bit incr/decr delta problem (bug21)
30
31 * Fix: Ascii UDP set (bug36)
32
33 * Fix: stats slabs' used chunks (bug29)
34
35 * Fix: stats reset resetting more (bug22)
36
37 * Misc: More tests, documentation, cleanliness (godliness)
38
39 * Stable merge (stats, debuggability, listen bugs)
40
41 2009-03-11
42
43 * Protocol: Binary complete (Dustin, Trond, Toru, etc...)
44
45 * Performance: improvements from facebook (Dormando)
46
47 * Performance: per-thread stats (Trond)
48
49 * Performance: Hash expansion in its own thread (Trond)
50
51 * Stats: Lots of new stats (Dustin)
52
53 * Bug fixes (various)
54
55 See the 1.3.2 release notes or revision control for more detail.
56
57 2008-09-06
58 * Display error status on listen failures (Dormando)
59
60 * Remove managed instance code. Incomplete/etc. (Dormando)
61
62 * Handle broken IPV6 stacks better (Brian Aker)
63
64 * Generate warnings on setsockopt() failures (Brian Aker)
65
66 * Fix some indentation issues (Brian Aker)
67
68 * UDP/TCP can be disabled by setting their port to zero (Brian Aker)
69
70 * Zero out libevent thread structures before use (Ricky Zhou)
71
72 * New stat: Last accessed time for last evicted item per slab class.
73 (Dormando)
74
75 * Use a dedicated socket accept thread (Facebook)
76
77 * Add -R option. Limit the number of requests processed by a connection
78 at once. Prevents starving other threads if bulk loading. (Facebook)
79
80 2008-07-29 [Version 1.2.6 released]
81
82 2008-07-24 [Version 1.2.6-rc1 released]
83
84 * Add support for newer automake (Facebook)
85
86 * DTrace support for Solaris/etc (Trond Norbye)
87
88 * LRU tests (Steve Yen)
89
90 * Handle negative length items properly (Dormando)
91
92 * Don't leave stale data after failed set attempts (Dormando)
93
94 * Fix refcount leaks, which would result in OOM's on all sets
95 (Dormando)
96
97 * Fix buffer overruns (Dustin Sallings, Tomash Brechko)
98
99 * Fix memory corruption with CAS (Dustin Sallings)
100
101 2008-06-11
102
103 * Fix -k to work with -d. (reported by Gary Zhu)
104
105 2008-03-02 [Version 1.2.5-rc1 released]
106
107 * Add per-item-class tracking of evictions and OOM errors (dormando)
108
109 * Optimize item_alloc() a little (dormando)
110
111 * Give 'SERVER_ERROR out of memory' errors more context (dormando)
112
113 * Enable usage of large memory pages under solaris
114 (Trond.Norbye@Sun.COM)
115
116 * Enable UDP by default, clean up server socket code
117 (brian@tangent.org)
118
119 * 'noreply' support (Tomash Brechko)
120
121 * IPv6 support, and IPv6 multi-interface support (brian@tangent.org)
122
123 * Add compiler options for Sun Studio compilers with --enable-threads
124 (Trond.Norbye@Sun.COM)
125
126 * Add --enable-64bit for mulitarget platforms (Trond.Norbye@Sun.COM)
127
128 * Use gettimeofday(2) instead of time(2).
129
130 * Make -k option work (Tomash Brechko)
131
132 * Fix chunk slab alignment (Trond.Norbye@Sun.COM)
133
134 2007-12-06 [Version 1.2.4 released]
135
136 2007-12-05
137
138 * Fix compilation on panther (JS and Dormando)
139
140 * More CAS tests (Chris Goffinet)
141
142 * Final fixes for all 1.2.4 features are in, -rc2 sent out.
143
144 2007-11-19 [Version 1.2.4-rc1 released]
145
146 2007-11-19 Dormando <dormando@rydia.net>
147
148 * Patch series from Tomash Brechko <tomash.brechko@gmail.com>:
149 Minor fixes and optimisations.
150
151 * Patches from Chris, Dustin, and Dormando to fix CAS.
152
153 * Prepping for 1.2.4 release.
154
155 2007-11-13 Dormando <dormando@rydia.net>
156
157 * Adjusted patch from js <ebgssth@gmail.com>: Compile on OS X Panther
158 and earlier.
159
160 2007-11-12 Steven Grimm <sgrimm@facebook.com>
161
162 * Patch from Tomash Brechko <tomash.brechko@gmail.com>: Always send
163 "SERVER_ERROR out of memory" when memory exhausted.
164
165 2007-10-15 Paul Lindner <lindner@inuus.com>
166
167 * Patch from David Bremner <bremner@unb.ca> that implements
168 a new option "-a" which takes an octal permission mask
169 (like chmod) sets the permissions on the unix domain socket
170 (specified by "-s").
171
172 2007-10-03 Paul Lindner <lindner@inuus.com>
173 * Incorporate "cas" operation developed by Dustin
174 Sallings <dustin@spy.net> This change allows you
175 to do atomic changes to an existing key.
176
177 * Fix for stats.evictions not incrementing
178 when exptime == 0 items are kicked off the cache.
179 from Jean-Francois BUSTARRET <jfbustarret@wat.tv>.
180
181 * Fix for do_item_cachedump() which was returning
182 an incorrect timestamp.
183
184 * Switch to unsigned 64-bit increment/decrement counters
185 from Evan Miller and Dustin Sallings.
186
187 * Add append command support written by Filipe Laborde.
188 Thread safe version plus prepend command from Maxim Dounin
189 <mdounin@mdounin.ru>
190
191 * The memcached-tool script can now display stats. Patch
192 provided by Dan Christian <dchristian@google.com>
193
194 * Fix for Unix Domain sockets on FreeBSD
195 FreeBSD's sendmsg() requires msg_name in msghdr structure
196 to be NULL if not used, setting msg_namelen to 0 isn't enough.
197 Patch from Maxim Dounin <mdounin@mdounin.ru>
198
199 2007-08-21 Paul Lindner <lindner@inuus.com>
200 * Incorporate incrememnt patch from Evan Miller
201 <emiller@imvu.com> to define increment overflow
202 behavior.
203
204 2007-08-07 Leon Brocard <acme@astray.com>
205 * Bring the memcached.1 manpage up to date
206
207 2007-08-06 Paul Lindner <lindner@inuus.com>
208 * Fix crash when using -P and -d flags on x86_64
209 with latest libevent release.
210
211 2007-07-08 Steven Grimm <sgrimm@facebook.com>
212
213 * Item stats commands weren't thread-safe; wrap them with locks
214 when compiled in multithreaded mode.
215 * The "stats items" command now works again; it broke with the
216 introduction of the powers-of-N chunk size change.
217
218 2007-07-06 [Version 1.2.3 released]
219
220 2007-06-19 Paul Lindner <lindner@mirth.inuus.com>
221
222 * Solaris portability fixes from Trond Norbye
223
224 2007-05-29 Paul Lindner <lindner@mirth.inuus.com>
225
226 * Properly document evictions statistic value
227
228 2007-05-10 Paul Lindner <lindner@inuus.com>
229
230 * Flesh out tests for unix domain sockets and binary data.
231 * Update rpm spec file to run tests
232
233 2007-05-07 Paul Lindner <lindner@inuus.com>
234
235 * Fix compilation bug on freebsd 6.x (and maybe others)
236 * Update RPM spec file per redhat bugzilla #238994
237 * Move unistd.h to memcached.h to get rid of warnings
238 * Add string.h to thread.c to get correctly prototyped strerror()
239
240 2007-05-04 Paul Lindner <lindner@inuus.com>
241
242 * Add fedora/redhat style init script and RPM spec file
243
244 2007-05-12 [Version 1.2.2 released]
245
246 2007-04-16 Steven Grimm <sgrimm@facebook.com>
247
248 * Command tokenizer performance and cleanliness improvement.
249 Patch contributed by Paolo Borelli <paolo.borelli@gmail.com>.
250
251 2007-04-16 Paul Lindner <lindner@inuus.com>
252
253 * Add notes to README about MacOS, libevent and kqueue.
254
255 * Windows Patch integration -- part 1, warnings elimination.
256
257 2007-04-12 Paul Lindner <lindner@mirth.inuus.com>
258
259 * Allow changes to the verbosity level of the server with a new
260 "verbosity" command and some compiler cleanups.
261 Patch contributed by Paolo Borelli <paolo.borelli@gmail.com>.
262
263 2007-04-08 Paul Lindner <lindner@inuus.com>
264
265 * Add cleanup patch from "Tim Yardley" <liquid@haveheart.com> to
266 clean up source spacing issues, fix -Wall warnings, add some
267 null checks, adds asserts at the top of each function for any
268 use of conn *c without checking to see if c is NULL first.
269
270 * Also adjust clean-whitespace.pl to clean *.ac files. Add
271 script to test-suite to test for tabs.
272
273 2007-04-04 Paul Lindner <lindner@inuus.com>
274
275 * Add clarification of flush_all in the protocol docs
276 from Elizabeth Mattijsen <liz@dijkmat.nl>
277
278 2007-03-31 Paul Lindner <lindner@inuus.com>
279
280 * Add patch from Eli Bingham <eli@pandora.com> to
281 re-enable the -n switch to memcached.
282
283 2007-03-20 Paul Lindner <lindner@inuus.com>
284 * Add patch to collect eviction statistics from
285 Jean-Francois BUSTARRET <jfbustarret@wat.tv>.
286
287 * Updated docs, added new test cases for t/stats.t
288
289 2007-03-18 Paul Lindner <lindner@inuus.com>
290
291 * Add more test cases using larger buffer sizes up to and greater
292 than 1MB.
293
294 * Remove unused parameter to item_size_ok()
295
296 * Use a single printf() in usage()
297
298 * Add a failing test for conforming with maximum connections.
299
300 2007-03-17
301 * crash fix from Thomas van Gulick <thomas@partyflock.nl> in
302 conn_shrink(), passing &ptr, instead of ptr to realloc().
303
304 2007-03-05 Paul Lindner <lindner@inuus.com>
305 * Fix a number of places where (s)printf calls were using unsigned
306 or signed formats that did not match their arguments.
307
308 * Add support for stdbool.h and stdint.h to use the bool and
309 uint8_t types.
310
311 * Major refactoring - move API calls for assoc/items/slabs to
312 their own individual header files. Add apropriate const and
313 static declarations as appropriate.
314
315 * Avoid type-punning. Do a more efficient realloc inside the
316 conn_shrink routine.
317
318 * Fix overflow bug where uninitialized access to slabclass caused
319 size-0 mallocs during slab preallocation.
320
321 * Use EXIT_SUCCESS/EXIT_FAILURE constants.
322
323 * Convert some sprintf calls to snprintf to protect against
324 buffer overflows.
325
326 * Explicitly compare against NULL or zero in many places.
327
328 2007-03-05
329 * Steven Grimm <sgrimm@facebook.com>: Per-object-type stats collection
330 support. Specify the object type delimiter with the -D command line
331 option. Turn stats gathering on and off with "stats detail on" and
332 "stats detail off". Dump the per-object-type details with
333 "stats detail dump".
334
335 2007-03-01
336 * Steven Grimm <sgrimm@facebook.com>: Fix an off-by-one error in the
337 multithreaded version's message passing code.
338
339 2006-12-23
340 * fix expirations of items set with absolute expiration times in
341 the past, before the server's start time. bug was introduced in
342 1.2.0 with rel_time_t. Thanks to Adam Dixon
343 <adamtdixon@gmail.com> for the bug report and test case!
344
345 2006-11-26
346 * Steven Grimm <sgrimm@facebook.com>: Performance improvements:
347
348 Dynamic sizing of hashtable to reduce collisions on very large
349 caches and conserve memory on small caches.
350
351 Only reposition items in the LRU queue once a minute, to reduce
352 overhead of accessing extremely frequently-used items.
353
354 Stop listening for new connections until an existing one closes
355 if we run out of available file descriptors.
356
357 Command parser refactoring: Add a single-pass tokenizer to cut
358 down on string scanning. Split the command processing into
359 separate functions for easier profiling and better readability.
360 Pass key lengths along with the keys in all API functions that
361 need keys, to avoid needing to call strlen() repeatedly.
362
363 2006-11-25
364 * Steve Peters <steve@fisharerojo.org>: OpenBSD has a malloc.h,
365 but warns to use stdlib.h instead
366
367 2006-11-22
368 * Steven Grimm <sgrimm@facebook.com>: Add support for multithreaded
369 execution. Run configure with "--enable-threads" to enable. See
370 doc/threads.txt for details.
371
372 2006-11-13
373 * Iain Wade <iwade@optusnet.com.au>: Fix for UDP responses on non-"get"
374 commands.
375
376 2006-10-15
377 * Steven Grimm <sgrimm@facebook.com>: Dynamic sizing of hashtable to
378 reduce collisions on very large caches and conserve memory on
379 small caches.
380
381 2006-10-13
382 * Steven Grimm <sgrimm@facebook.com>: New faster hash function.
383
384 2006-09-20
385
386 * don't listen on UDP by default; more clear message when UDP port in use
387
388 2006-09-09
389 * release 1.2.0 (along with 1.1.13, which is the more tested branch)
390
391 nobody has run 1.2.0 in production, to my knowledge. facebook has run
392 their pre-merge-with-trunk version, but bugs were discovered (and fixed)
393 after the merge. there might be more. you've been warned. :)
394
395 2006-09-04
396 * improved autoconf libevent detection, from the Tor project.
397
398 2006-09-03
399 * test suite and lot of expiration, delete, flush_all, etc corner
400 case bugs fixed (Brad Fitzpatrick)
401
402 2006-09-02
403 * Nathan Neulinger <nneul@umr.edu>: fix breakage in expiration code
404 causing expiration times to not be processed correctly.
405
406 2006-08-21
407 * Nathan Neulinger <nneul@umr.edu>: fix incompatabilities with
408 unix domain socket support and the UDP code and clean up stale
409 sockets
410
411 2006-08-20
412 * Nathan Neulinger <nneul@umr.edu>: unix domain socket support
413
414 2006-05-03
415 * Steven Grimm <sgrimm@facebook.com>: big bunch of changes:
416 big CPU reduction work, UDP-based interface, increased memory
417 efficiency. (intertwined patch, committed all together)
418 <http://lists.danga.com/pipermail/memcached/2006-May/002164.html>
419 or see svn commit logs
420
421 2006-04-30
422 * River Tarnell: autoconf work for Solaris 10. Brad:
423 merge and verify it works on Nexenta.
424
425 2006-03-04
426 * avva: bucket/generation patch (old, but Brad's just finally
427 committing it)
428
429 2006-01-01
430 * Brad Fitzpatrick <brad@danga.com>: allocate 1 slab per class
431 on start-up, to avoid confusing users with out-of-memory errors
432 later. this is 18 MB of allocation on start, unless max memory
433 allowed with -m is lower, in which case only the smaller slab
434 classes are allocated.
435
436 2005-08-09
437 * Elizabeth Mattijsen <liz@dijkmat.nl>: needed a way to flush all
438 memcached backend servers, but not at exactly the same time (to
439 reduce load peaks), I've added some simple functionality to the
440 memcached protocol in the "flush_all" command that allows you to
441 specify a time at which the flush will actually occur (instead of
442 always at the moment the "flush_all" command is received).
443
444 2005-05-25
445 * patch from Peter van Dijk <peter@nextgear.nl> to make
446 stderr unbuffered, for running under daemontools
447
448 2005-04-04
449 * patch from Don MacAskill <don@smugmug.com> 'flush_all' doesn't
450 seem to work properly. Basically, if you try to add a key which
451 is present, but expired, the store fails but the old key is no
452 longer expired.
453
454 * release 1.1.12
455
456 2005-01-14
457 * Date: Thu, 18 Nov 2004 15:25:59 -0600
458 From: David Phillips <electrum@gmail.com>
459 Here is a patch to configure.ac and Makefile.am to put the man page in
460 the correct location. Trying to install the man page from a
461 subdirectory results in the subdirectory being used in the install
462 path (it tries to install to doc/memcached.1). This is the correct
463 thing to do:
464
465 - create a Makefile.am in the doc directory that installs the man page
466 with man_MANS
467 - modify Makefile.am in the base directory to reference the doc
468 directory using SUBDIRS
469 - modify the AC_CONFIG_FILES macro in configure.ac to output the
470 Makefile in doc
471
472
473 2005-01-14
474 * pidfile saving support from Lisa Seelye <lisa@gentoo.org>, sent
475 Jan 13, 2005
476
477 2005-01-14
478 * don't delete libevent events that haven't been added (the deltimer)
479 patch from Ted Schundler <tschundler@gmail.com>
480
481 2004-12-10
482 * document -M and -r in manpage (Doug Porter <dsp@dsp.name>)
483
484 2004-07-22
485 * fix buffer overflow in items.c with 250 byte keys along with
486 other info on the same line going into a 256 byte char[].
487 thanks to Andrei Nigmatulin <anight@monamour.ru>
488
489 2004-06-15
490 * immediate deletes weren't being unlinked a few seconds,
491 preventing "add" commands to the same key in that time period.
492 thanks to Michael Alan Dorman <mdorman@debian.org> for the
493 bug report and demo script.
494
495 2004-04-30
496 * released 1.1.11
497
498 2004-04-24
499 * Avva: Add a new command line option: -r , to maximize core file
500 limit.
501
502 2004-03-31
503 * Avva: Use getrlimit and setrlimit to set limits for number of
504 simultaneously open file descriptors. Get the current limits and
505 try to raise them if they're not enough for the specified (or the
506 default) setting of max connections.
507
508 2004-02-24
509 * Adds a '-M' flag to turn off tossing items from the cache.
510 (Jason Titus <jtitus@postini.com>)
511
512 2004-02-19 (Evan)
513 * Install manpage on "make install", etc.
514
515 2003-12-30 (Brad)
516 * remove static build stuff. interferes with PAM setuid stuff
517 and was only included as a possible fix with the old memory
518 allocator. really shouldn't make a difference.
519 * add Jay Bonci's Debian scripts and manpage
520 * release version 1.1.10
521
522 2003-12-01 (Avva)
523 * New command: flush_all, causes all existing items to
524 be invalidated immediately (without deleting them from
525 memory, merely causing memcached to no longer return them).
526 2003-10-23
527 * Shift init code around to fix daemon mode on FreeBSD,
528 * and drop root only after creating the server socket (to
529 * allow the use of privileged ports)
530 * version 1.1.10pre
531
532 2003-10-09
533 * BSD compile fixes from Ryan T. Dean
534 * version 1.1.9
535
536 2003-09-29
537 * ignore SIGPIPE at start instead of crashing in rare cases it
538 comes up. no other code had to be modified, since everything
539 else is already dead-connection-aware. (avva)
540
541 2003-09-09 (Avva, Lisa Marie Seelye <lisa@gentoo.org>)
542 * setuid support
543
544 2003-09-05 (Avva)
545 * accept all new connections in the same event (so we work with ET epoll)
546 * mark all items as clsid=0 after slab page reassignment to please future
547 asserts (on the road to making slab page reassignment work fully)
548
549 2003-08-12 (Brad Fitzpatrick)
550 * use TCP_CORK on Linux or TCP_PUSH on BSD
551 * only use TCP_NODELAY when we don't have alternatives
552
553 2003-08-10
554 * disable Nagel's Algorithm (TCP_NODELAY) for better performance (avva)
555
556 2003-08-10
557 * support multiple levels of verbosity (-vv)
558
559 2003-08-10 (Evan Martin)
560 * Makefile.am: debug, optimization, and static flags are controlled
561 by the configure script.
562 * configure.ac:
563 - allow specifying libevent directory with --with-libevent=DIR
564 - check for malloc.h (unavailable on BSDs)
565 - check for socklen_t (unavailable on OSX)
566 * assoc.c, items.c, slabs.c: Remove some unused headers.
567 * memcached.c: allow for nonexistence of malloc.h; #define a POSIX
568 macro to import mlockall flags.
569
570 2003-07-29
571 * version 1.1.7
572 * big bug fix: item exptime 0 meant expire immediately, not never
573 * version 1.1.8
574
575 2003-07-22
576 * make 'delete' take second arg, of time to refuse new add/replace
577 * set/add/replace/delete can all take abs or delta time (delta can't
578 be larger than a month)
579
580 2003-07-21
581 * added doc/protocol.txt
582
583 2003-07-01
584 * report CPU usage in stats
585
586 2003-06-30
587 * version 1.1.6
588 * fix a number of obscure bugs
589 * more stats reporting
590
591 2003-06-10
592 * removing use of Judy; use a hash. (judy caused memory fragmentation)
593 * shrink some structures
594 * security improvements
595 * version 1.1.0
596
597 2003-06-18
598 * changing maxsize back to an unsigned int
599
600 2003-06-16
601 * adding PHP support
602 * added CONTRIBUTORS file
603 * version 1.0.4
604
605 2003-06-15
606 * forgot to distribute website/api (still learning auto*)
607 * version 1.0.3
608
609 2003-06-15
610 * update to version 1.0.2
611 * autoconf/automake fixes for older versions
612 * make stats report version number
613 * change license from GPL to BSD
614
615 Fri, 13 Jun 2003 10:05:51 -0700 Evan Martin <martine@danga.com>
616
617 * configure.ac, autogen.sh, Makefile.am: Use autotools.
618 * items.c, memcached.c: #include <time.h> for time(),
619 printf time_t as %lu (is this correct?),
620 minor warnings fixes.
621