Config nondeterministic lua #483

wants to merge 203 commits into
Commits on Mar 10, 2012
  1. Build dependencies updated.

    committed Mar 10, 2012
  2. RDB version is no 4, because small hashes are now encoded as ziplists…

    committed Mar 10, 2012
    …, so older versions of Redis will not understand this format.
  3. fix typo of redis.conf

    quiver committed with Mar 10, 2012
Commits on Mar 13, 2012
  1. RDB hashes loading fixed removing the assertion that failed every tim…

    committed Mar 13, 2012
    …e an HT-encoded hash was loaded.
  2. RDB hashes loading, fixed another bug in the loading of HT-encoded ha…

    committed Mar 13, 2012
    …shes: when the hash entry is too big for ziplist, add the field, then convert. The code used to break before the new entry was inserted, resulting into missing fields in the loaded Hash object.
  3. Process async client checks like client timeouts and BLPOP timeouts i…

    committed Mar 13, 2012
    …ncrementally using a circular list.
Commits on Mar 14, 2012
  1. Call all the helper functions needed by clientsCron() as clientsCronS…

    committed Mar 14, 2012
    …omething() for clarity.
  2. sds.c new function sdsRemoveFreeSpace().

    committed Mar 14, 2012
    The new function is used in order to resize the string allocation so
    that only the minimal allocation possible is used, removing all the free
    space at the end of the string normally used to improve efficiency of
    concatenation operations.
  3. Version bumped to 2.5.2

    committed Mar 14, 2012
Commits on Mar 15, 2012
  1. Fix for issue #391.

    committed Mar 15, 2012
    Use a simple protocol between clientsCron() and helper functions to
    understand if the client is still valind and clientsCron() should
    continue processing or if the client was freed and we should continue
    with the next one.
Commits on Mar 18, 2012
  1. Number of iteration of --test-memory is now 300 (several minutes per …

    committed Mar 18, 2012
    …gigabyte). Memtest86 and Memtester links are also displayed while running the test.
  2. Fixed typo.

    committed Mar 18, 2012
  3. More memory tests implemented. Default number of iterations lowered t…

    committed Mar 18, 2012
    …o a more acceptable value of 50.
Commits on Mar 19, 2012
  1. Fixed typo in 2.6 release notes.

    committed Mar 19, 2012
Commits on Mar 20, 2012
Commits on Mar 22, 2012
  1. Support for read-only slaves. Semantical fixes.

    committed Mar 20, 2012
    This commit introduces support for read only slaves via redis.conf and CONFIG GET/SET commands. Also various semantical fixes are implemented here:
    1) MULTI/EXEC with only read commands now work where the server is into a state where writes (or commands increasing memory usage) are not allowed. Before this patch everything inside a transaction would fail in this conditions.
    2) Scripts just calling read-only commands will work against read only
    slaves, when the server is out of memory, or when persistence is into an
    error condition. Before the patch EVAL always failed in this condition.
  2. DEBUG should not be flagged as w otherwise we can not call DEBUG DIGE…

    committed Mar 20, 2012
    …ST and other commands against read only slaves.
  3. Result of INCRBYFLOAT and HINCRBYFLOAT should never be in exponential…

    committed Mar 22, 2012
    … form, and also should never contain trailing zeroes. This is not possible with vanilla printf() format specifiers, so we alter the output.
  4. Code style hack.

    committed Mar 22, 2012
Commits on Mar 23, 2012
  1. Replicate HINCRBYFLOAT as HSET.

    committed Mar 23, 2012
  2. Contextualize comment.

    committed Mar 23, 2012
Commits on Mar 24, 2012
  1. When running the test in valgrind mode, pass the right flags to show …

    committed Mar 24, 2012
    …memory leaks stack traces but only including the "definitely lost" items.
Commits on Mar 25, 2012
  1. convert-zipmap-hash-on-load false positive fixed.

    committed Mar 25, 2012
    Apparently because the sample RDB file was not copied before every test
    Redis had a chance to replace it with a newly written one, so that the
    next test could fail.
  2. Version is now 2.5.3.

    committed Mar 25, 2012
  3. New INFO field aof_delayed_fsync introduced.

    committed Mar 25, 2012
    This new field counts all the times Redis is configured with AOF enabled and
    fsync policy 'everysec', but the previous fsync performed by the
    background thread was not able to complete within two seconds, forcing
    Redis to perform a write against the AOF file while the fsync is still
    in progress (likely a blocking operation).
Commits on Mar 27, 2012
  1. SIGSEGV handler refactored so that we can reuse stack trace and curre…

    committed Mar 27, 2012
    …nt client logging functionalities in other contexts.
  2. @anydot

    remove disk-store related comments

    anydot committed with Mar 27, 2012
  3. @anydot
  4. @anydot

    use server.unixtime instead of time(NULL) where possible (cluster.c n…

    anydot committed with Mar 27, 2012
    …ot checked though)
  5. @anydot
  6. @huangz1990

    fix typo

    huangz1990 committed with Mar 15, 2012
Commits on Mar 28, 2012
  1. Redis software watchdog.

    committed Mar 27, 2012
  2. Mask SIGALRM everything but in the main thread.

    committed Mar 27, 2012
    This is required to ensure that the signal will be delivered to the main
    thread when the watchdog timer expires.
  3. Produce the watchlog warning log in a way that is safer from a signal…

    committed Mar 27, 2012
    … handler. Fix a memory leak in the backtrace generation function.
  4. Redis test: regexp to check if valgrind reported errors modified. Now…

    committed Mar 28, 2012
    … we no longer look at the total count because this includes "possibly lost" bytes that are not interesting for Redis (tons of false positives because of how sds.c works).
  5. Fixes for redisLogFromHandler().

    committed Mar 28, 2012
Commits on Mar 29, 2012
  1. @fritzy

    added redis.sha1hex(string) as lua scripting function.

    fritzy committed with Mar 28, 2012
    (The original implementation was modified by @antirez to conform Redis
    coding standards.)
  2. Test for redis.sha1hex().

    committed Mar 28, 2012
  3. Fix for slaves chains. Force resync of slaves (simply disconnecting t…

    committed Mar 29, 2012
    …hem) when SLAVEOF turns a master into a slave.
Commits on Mar 30, 2012
  1. @josephjang

    Fixed a memory leak with replication

    josephjang committed with Mar 29, 2012
    occurs when two or more dbs are replicated and at least one of them is >db10
  2. Purely aesthetic code change.

    committed Mar 30, 2012
Commits on Mar 31, 2012
Commits on Apr 1, 2012
  1. @ThePicard
Commits on Apr 2, 2012

    committed Apr 2, 2012
  2. Version bumped 2.4.5

    committed Apr 2, 2012
Commits on Apr 3, 2012
  1. When the user-provided 'maxclients' value is too big for the max numb…

    committed Apr 3, 2012
    …er of files we can open, at least try to search the max the OS is allowing (in steps of 256 filedes).
  2. Another fix for MIGRATE.

    committed Apr 3, 2012
  3. More MIGRATE tests.

    committed Apr 3, 2012
Commits on Apr 4, 2012
  1. Print milliseconds of the current second in log lines timestamps. Som…

    committed Apr 4, 2012
    …etimes precise timing is very important for debugging.
  2. Structure field controlling the INFO field master_link_down_since_sec…

    committed Apr 4, 2012
    …onds initialized correctly to avoid strange INFO output at startup when a slave has yet to connect to its master.
Commits on Apr 5, 2012
  1. @anydot

    remove mentions of VM in comments

    anydot committed with Apr 2, 2012
  2. @anydot
  3. @anydot

    in kill_server send the signal once, then wait for up to 5sec before …

    anydot committed with Apr 3, 2012
    …sending lethal SIGKILL
  4. @anydot
  5. @anydot

    future-proof version comparison

    anydot committed with Apr 5, 2012
  6. @anydot
  7. @anydot
  8. @anydot
  9. expireGenericCommand(): better variable names and a top-comment that …

    committed Apr 5, 2012
    …describes the function's behavior.
Commits on Apr 6, 2012
  1. @jokea
  2. version bumped to 2.5.5

    committed Apr 6, 2012
Commits on Apr 7, 2012
  1. Two new tests for BGREWRTIEAOF.

    committed Apr 6, 2012
    Check for scheduled rewrite if a BGSAVAE is in progress.
    Check for error if a rewrite is already in progress.
  2. Removed dead code: function rdbSaveTime() is no longer used since RDB…

    committed Apr 7, 2012
    … now saves expires in milliseconds.
  3. New client info field added to CLIENT LIST output: multi, containing …

    committed Apr 7, 2012
    …the length of the current pipeline. Test modified accordingly.
  4. Tests for MONITOR.

    committed Apr 7, 2012
Commits on Apr 8, 2012
  1. Added new test to check that "CONFIG appendonly no" actually kills th…

    committed Apr 7, 2012
    …e background AOF operation in progress if any.
Commits on Apr 10, 2012
  1. rio.c file somewhat documented so that the casual reader can understa…

    committed Apr 9, 2012
    …nd what's going on without reading the code.
  2. It is now possible to enable/disable RDB checksum computation from re…

    committed Apr 10, 2012
    …dis.conf or via CONFIG SET/GET. Also CONFIG SET support added for rdbcompression as well.
  3. Test for maxclients.

    committed Apr 8, 2012
  4. Version 2.5.6.

    committed Apr 10, 2012
  5. Check write(2) return value to avoid warnings, because in this contex…

    committed Apr 10, 2012
    …t failing write is not critical.
Commits on Apr 11, 2012
  1. @pietern

    Everything x86 is little endian

    pietern committed with Mar 25, 2012
  2. @pietern

    Clean up Makefiles

    pietern committed with Mar 25, 2012
    Remove unused variables. Instead of overriding non-standard variables
    such as ARCH and PROF, use standard variables CFLAGS and LDFLAGS to
    override Makefile settings. Move dependencies generated by `make dep` to
    a separate file.
  3. Makefile.dep updated.

    committed Apr 11, 2012
  4. @erikdubbelboer
Commits on Apr 13, 2012
  1. Makefile now introduces Redis-specific CFLAGS / LDFLAGS. Gcov target …

    committed Apr 12, 2012
    …fixed. Added comments to describe how it works.
  2. Make gcov fixed.

    committed Apr 12, 2012
  3. A few var names fixed in Makefile.

    committed Apr 13, 2012
    I modified it for error in a previous commit doing search & replace.
  4. Stop access to global vars. Not configurable.

    committed Apr 13, 2012
    After considering the interaction between ability to delcare globals in
    scripts using the 'global' function, and the complexities related to
    hanlding replication and AOF in a sane way with globals AND ability to
    turn protection On and Off, we reconsidered the design. The new design
    makes clear that there is only one good way to write Redis scripts, that
    is not using globals. In the rare cases state must be retained across
    calls a Redis key can be used.
  5. mt.declared is no longer needed.

    committed Apr 13, 2012
    Lua global protection can now be simpified becuase we no longer have the
    global() function. It's useless to occupy memory with this table, it is
    also not faster because the metamethods we use are only called when a
    global object does not exist or we are trying to create it from a
  6. EVAL errors are more clear now.

    committed Apr 13, 2012
Commits on Apr 14, 2012
  1. @pietern


    pietern committed Apr 14, 2012
    This reflects that REDIS_*FLAGS will only be used for compilation of
    Redis and not for its dependencies. Similarly, that FINAL_*FLAGS are
    composed of other variables and holds the options that are finally
    passed to the compiler and linker.
  2. @pietern

    The lcov target shouldn't clean

    pietern committed Apr 14, 2012
    This is not needed because every change in compiler/linker flags
    triggers a cleanup.
  3. @pietern

    Ignore gcov/lcov artifacts

    pietern committed Apr 14, 2012
  4. @pietern
  5. @pietern
  6. @pietern

    Remove unused LIBS variable

    pietern committed Apr 14, 2012
  7. @pietern

    Don't set flags recursively

    pietern committed Apr 14, 2012
  8. @pietern
Commits on Apr 17, 2012
  1. lookupKeyByPattern() used by SORT GET/BY rewritten. Fixes issue #460.

    committed Apr 17, 2012
    lookupKeyByPattern() was implemented with a trick to speedup the lookup
    process allocating two fake Redis obejcts on the stack. However now that
    we propagate expires to the slave as DEL operations the lookup of the
    key may result into a call to expireIfNeeded() having the stack
    allocated object as argument, that may in turn use it to create the
    protocol to send to the slave. But since this fake obejcts are
    inherently read-only this is a problem.
    As a side effect of this fix there are no longer size limits in the
    pattern to be used with GET/BY option of SORT.
    See antirez#460 for bug details.
Commits on Apr 18, 2012
  1. Two small fixes to maxclients handling.

    committed Apr 18, 2012
    1) Don't accept maxclients set to < 0
    2) Allow maxclients < 1024, it is useful for testing.
  2. More robust maxclients test.

    committed Apr 18, 2012
  3. Marginally cleaner lookupKeyByPattern() implementation.

    committed Apr 18, 2012
    just fieldobj itself as sentinel of the fact a field object is used or
    not, instead of using the filed length, that may be confusing both for
    people and for the compiler emitting a warning.
  4. Merge pull request #455 from pietern/2.6-mkopts

    committed Apr 18, 2012
    Persist Makefile flags (2.6)
  5. Test LINDEX out of range index.

    committed Apr 18, 2012
  6. Test LINSERT syntax error.

    committed Apr 18, 2012
  7. Explicit RPOP/LPOP tests.

    committed Apr 18, 2012
  8. New hash fuzzing test.

    committed Apr 18, 2012
  9. Test SDIFF with first set empty.

    committed Apr 18, 2012
  10. redis-cli --bigkeys

    committed Apr 18, 2012
  11. Tests for scripting PRNG.

    committed Apr 18, 2012
Commits on Apr 19, 2012
Commits on Apr 21, 2012
  1. Limit memory used by big SLOWLOG entries.

    committed Apr 21, 2012
    Two limits are added:
    1) Up to SLOWLOG_ENTRY_MAX_ARGV arguments are logged.
    2) Up to SLOWLOG_ENTRY_MAX_STRING bytes per argument are logged.
    3) slowlog-max-len is set to 128 by default (was 1024).
    The number of remaining arguments / bytes is logged in the entry
    so that the user can understand better the nature of the logged command.
Commits on Apr 24, 2012
  1. @schlenk

    Replace unnecessary calls to echo and cat

    schlenk committed with Apr 17, 2012
    Tcl's exec can send data to stdout itself, no need to call cat/echo for
    that usually.
  2. Fix and refactoring of code used to get registers on crash.

    committed Apr 24, 2012
    This fixes compilation on FreeBSD (and possibly other systems) by
    not using ucontext_t at all if HAVE_BACKTRACE is not defined.
    Also the ifdefs to get the registers are modified to explicitly test for the
    operating system in the first level, and the arch in the second level
    of nesting.
  3. @grisha

    Add a 24bit integer to ziplists to save one byte for ints that can

    grisha committed with Apr 20, 2012
    fit in 24 bits (thanks to antirez for catching and solving the two's compliment
    Increment REDIS_RDB_VERSION to 6
  4. Added two new encodings to ziplist.c

    committed Apr 24, 2012
    1) One integer "immediate" encoding that can encode from 0 to 12 in the
    encoding byte itself.
    2) One 8 bit signed integer encoding that can encode 8 bit signed small
    integers in a single byte.
    The idea is to exploit all the not used bits we have around in a
    backward compatible way.
Commits on Apr 26, 2012
  1. @JeffersonK
  2. @JeffersonK
  3. @JeffersonK

    rename script

    JeffersonK committed Apr 26, 2012
  4. @JeffersonK

    added another version that sets expirations on the last modified key …

    JeffersonK committed Apr 26, 2012
    …and the counter key so the server cleans up after itself
  5. @JeffersonK

    i like this one better

    JeffersonK committed Apr 26, 2012
Commits on Apr 27, 2012
  1. update default configs

    Jeffrey Kaditz committed Apr 27, 2012
Commits on May 2, 2012
  1. @JeffersonK

    add lua_nondeterministic_calls to be printed out on INFO command so w…

    JeffersonK committed May 2, 2012
    …e can check if its on or not