| 71536684 | 29-Jul-2016 |
antirez <[email protected]> |
Update linenoise to fix insecure redis-cli history file creation.
The problem was fixed in antirez/linenoise repository applying a patch contributed by @lamby. Here the new version is updated in the
Update linenoise to fix insecure redis-cli history file creation.
The problem was fixed in antirez/linenoise repository applying a patch contributed by @lamby. Here the new version is updated in the Redis source tree.
Close #1418 Close #3322
show more ...
|
| fdafe233 | 27-Jul-2016 |
antirez <[email protected]> |
Multiple GEORADIUS bugs fixed.
By grepping the continuous integration errors log a number of GEORADIUS tests failures were detected.
Fortunately when a GEORADIUS failure happens, the test suite log
Multiple GEORADIUS bugs fixed.
By grepping the continuous integration errors log a number of GEORADIUS tests failures were detected.
Fortunately when a GEORADIUS failure happens, the test suite logs enough information in order to reproduce the problem: the PRNG seed, coordinates and radius of the query.
By reproducing the issues, three different bugs were discovered and fixed in this commit. This commit also improves the already good reporting of the fuzzer and adds the failure vectors as regression tests.
The issues found:
1. We need larger squares around the poles in order to cover the area requested by the user. There were already checks in order to use a smaller step (larger squares) but the limit set (+/- 67 degrees) is not enough in certain edge cases, so 66 is used now.
2. Even near the equator, when the search area center is very near the edge of the square, the north, south, west or ovest square may not be able to fully cover the specified radius. Now a test is performed at the edge of the initial guessed search area, and larger squares are used in case the test fails.
3. Because of rounding errors between Redis and Tcl, sometimes the test signaled false positives. This is now addressed.
Whenever possible the original code was improved a bit in other ways. A debugging example stanza was added in order to make the next debugging session simpler when the next bug is found.
show more ...
|
| bb43f4ca | 30-May-2016 |
antirez <[email protected]> |
Fix GEORADIUS wrong output with radius > Earth radius.
Close #3266 |
| 16102bc0 | 30-May-2016 |
antirez <[email protected]> |
Geo: fix typo in geohashEstimateStepsByRadius().
I'm the author of this line but I can't see a good reason for it to don't be a typo, a step of 26 should be valid with 52 bits per coordinate, moreov
Geo: fix typo in geohashEstimateStepsByRadius().
I'm the author of this line but I can't see a good reason for it to don't be a typo, a step of 26 should be valid with 52 bits per coordinate, moreover the line was:
if (step > 26) step = 25;
So a step of 26 was actually already used, except when one of 27 was computed (which is invalid) only then it was trimmed to 25 instead of 26.
All tests passing after the change.
show more ...
|
| a7f0fb44 | 18-May-2016 |
antirez <[email protected]> |
Actually use --with-lg-quantum=3 to build jemalloc.
This change is documented in deps/README.md but was lost in one way or the other, neutralizing the benefits of 24 bytes size classes (and others).
Actually use --with-lg-quantum=3 to build jemalloc.
This change is documented in deps/README.md but was lost in one way or the other, neutralizing the benefits of 24 bytes size classes (and others).
Close #3208.
show more ...
|
| 3fd3fca0 | 13-Apr-2016 |
antirez <[email protected]> |
redis-cli hints. |
| 34354473 | 12-Apr-2016 |
antirez <[email protected]> |
Linenoise updated again (hints support). |
| 58229cd7 | 06-Apr-2016 |
antirez <[email protected]> |
Linenoise updated.
As a side effect, cat commands.txt | redis-cli now is able to handle lines more than 4096 bytes. |
| 0b4a628f | 10-Feb-2016 |
antirez <[email protected]> |
Remove Lua state reference from buffers in lua_cmsgpack. |
| 43509f68 | 07-Feb-2016 |
[email protected] <[email protected]> |
cmsgpack: pass correct osize values to lua allocator, update correct buf free space in cmsgpack |
| 6521a6b1 | 13-Dec-2015 |
Sun He <[email protected]> |
lua_struct.c/getnum: throw error if overflow happen
Fix issue #2855 |
| b9429fd8 | 16-Nov-2015 |
antirez <[email protected]> |
Lua debugger: use sds_malloc() to allocate eval cli array.
Redis-cli handles the debugger "eval" command in a special way since sdssplitargs() would not be ok: we need to send the Redis debugger the
Lua debugger: use sds_malloc() to allocate eval cli array.
Redis-cli handles the debugger "eval" command in a special way since sdssplitargs() would not be ok: we need to send the Redis debugger the whole Lua script without any parsing. However in order to later free the argument vector inside redis-cli using just sdsfreesplitres(), we need to allocate the array of SDS pointers using the same allocator SDS is using, that may differ to what Redis is using.
So now a newer version of SDS exports sds_malloc() and other allocator functions to give access, to the program it is linked to, the allocator used internally by SDS.
show more ...
|
| ad8111ba | 06-Oct-2015 |
antirez <[email protected]> |
Added a README into deps on dependencies and how to upgrade. |
| 7b74d005 | 07-Oct-2015 |
antirez <[email protected]> |
Jemalloc configure script fixed to work nested.
Now way to make unmodified Jemalloc configure to work when the jemalloc source tree is inside a subdirectory of a different git repository.
Problem s
Jemalloc configure script fixed to work nested.
Now way to make unmodified Jemalloc configure to work when the jemalloc source tree is inside a subdirectory of a different git repository.
Problem signaled here: http://www.canonware.com/pipermail/jemalloc-discuss/2015-October/001174.html
show more ...
|
| 5268379e | 06-Oct-2015 |
antirez <[email protected]> |
Jemalloc updated to 4.0.3. |
| b684e2da | 25-Jul-2015 |
antirez <[email protected]> |
deps/hiredis SDS updated to version 2.0.0. |
| 6b836b6b | 24-Jul-2015 |
antirez <[email protected]> |
Jemalloc: use LG_QUANTUM of 3 for AMD64 and I386.
This gives us a 24 bytes size class which is dict.c dictEntry size, thus improving the memory efficiency of Redis significantly. Moreover other non
Jemalloc: use LG_QUANTUM of 3 for AMD64 and I386.
This gives us a 24 bytes size class which is dict.c dictEntry size, thus improving the memory efficiency of Redis significantly. Moreover other non 16 bytes aligned tiny classes are added that further reduce the fragmentation of the allocator.
Technically speaking LG_QUANTUM should be 4 on i386 / AMD64 because of SSE types and other 16 bytes types, however we don't use those, and our jemalloc only targets Redis.
New versions of Jemalloc will have an explicit configure switch in order to specify the quantum value for a platform without requiring any change to the Jemalloc source code: we'll switch to this system when available.
This change was originally proposed by Oran Agra (@oranagra) as a change to the Jemalloc script to generate the size classes define. We ended doing it differently by changing LG_QUANTUM since it is apparently the supported Jemalloc method to obtain a 24 bytes size class, moreover it also provides us other potentially useful size classes.
Related to issue #2510.
show more ...
|
| 965abcf1 | 09-Jul-2015 |
antirez <[email protected]> |
Geo: use ULL suffix for unsigned 64 bit constants. |
| 1e127842 | 09-Jul-2015 |
antirez <[email protected]> |
Geo: -Ofast breaks builds on older GCCs. |
| 5e041898 | 06-Jul-2015 |
antirez <[email protected]> |
Geo: validate long,lat passed by user via API |
| 4160bf04 | 01-Jul-2015 |
antirez <[email protected]> |
Geo: sync faster decoding from krtm that synched from Ardb.
Instead of successive divisions in iteration the new code uses bitwise magic to interleave / deinterleave two 32bit values into a 64bit on
Geo: sync faster decoding from krtm that synched from Ardb.
Instead of successive divisions in iteration the new code uses bitwise magic to interleave / deinterleave two 32bit values into a 64bit one. All tests still passing and is measurably faster, so worth it.
show more ...
|
| d308cadc | 29-Jun-2015 |
antirez <[email protected]> |
Geo: added my copyright notice in modified files. |
| f108c687 | 29-Jun-2015 |
antirez <[email protected]> |
Geo: GEODIST and tests. |
| fa9d62d3 | 25-Jun-2015 |
antirez <[email protected]> |
Geo: from lat,lon API to lon,lat API according to GIS standard
The GIS standard and all the major DBs implementing GIS related functions take coordinates as x,y that is longitude,latitude. It was a
Geo: from lat,lon API to lon,lat API according to GIS standard
The GIS standard and all the major DBs implementing GIS related functions take coordinates as x,y that is longitude,latitude. It was a bad start for Redis to do things differently, so even if this means that existing users of the Geo module will be required to change their code, Redis now conforms to the standard.
Usually Redis is very backward compatible, but this is not an exception to this rule, since this is the first Geo implementation entering the official Redis source code. It is not wise to try to be backward compatible with code forks... :-)
Close #2637.
show more ...
|
| 55c4a365 | 24-Jun-2015 |
antirez <[email protected]> |
Geo: Fix geohashEstimateStepsByRadius() step underestimation.
The returned step was in some case not enough towards normal coordinates (for example when our search position was was already near the
Geo: Fix geohashEstimateStepsByRadius() step underestimation.
The returned step was in some case not enough towards normal coordinates (for example when our search position was was already near the margin of the central area, and we had to match, using the east or west neighbor, a very far point). Example:
geoadd points 67.575457940146066 -62.001317572780565 far geoadd points 66.685439060295664 -58.925040587282297 center georadius points 66.685439060295664 -58.925040587282297 200 km
In the above case the code failed to find a match (happens at smaller latitudes too) even if far and center are at less than 200km.
Another fix introduced by this commit is a progressively larger area towards the poles, since meridians are a lot less far away, so we need to compensate for this.
The current implementation works comparably to the Tcl brute-force stress tester implemented in the fuzzy test in the geo.tcl unit for latitudes between -70 and 70, and is pretty accurate over +/-80 too, with sporadic false negatives.
A more mathematically clean implementation is possible by computing the meridian distance at the specified latitude and computing the step according to it.
show more ...
|