-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: Sync changes from twitter/twemproxy #61
base: master
Are you sure you want to change the base?
Commits on Jul 26, 2016
-
Configuration menu - View commit details
-
Copy full SHA for 1e078e9 - Browse repository at this point
Copy the full SHA 1e078e9View commit details
Commits on Aug 1, 2016
-
Merge pull request twitter#484 from postwait/patch-1
Fix typo circunous -> circonus
Configuration menu - View commit details
-
Copy full SHA for ced2044 - Browse repository at this point
Copy the full SHA ced2044View commit details
Commits on Aug 3, 2016
-
Configuration menu - View commit details
-
Copy full SHA for 558e0d4 - Browse repository at this point
Copy the full SHA 558e0d4View commit details
Commits on Aug 4, 2016
-
Merge pull request twitter#486 from deep011/deep011-patch-1
fix a memory leak bug for mset command
Configuration menu - View commit details
-
Copy full SHA for 330f43a - Browse repository at this point
Copy the full SHA 330f43aView commit details
Commits on Aug 9, 2016
-
Update redis docs for PING and QUIT
Support for these was introduced in @4175419288ef66d95e082cfa2124e77fe6d4fe6d.
Configuration menu - View commit details
-
Copy full SHA for eed1953 - Browse repository at this point
Copy the full SHA eed1953View commit details -
Merge pull request twitter#489 from rohitpaulk/update-redis-docs
Update redis docs for PING and QUIT
Configuration menu - View commit details
-
Copy full SHA for e573933 - Browse repository at this point
Copy the full SHA e573933View commit details
Commits on Aug 30, 2016
-
Configuration menu - View commit details
-
Copy full SHA for b87ba1a - Browse repository at this point
Copy the full SHA b87ba1aView commit details
Commits on Sep 1, 2016
-
Configuration menu - View commit details
-
Copy full SHA for 80ef6a7 - Browse repository at this point
Copy the full SHA 80ef6a7View commit details
Commits on Sep 2, 2016
-
Configuration menu - View commit details
-
Copy full SHA for fe68175 - Browse repository at this point
Copy the full SHA fe68175View commit details
Commits on Sep 3, 2016
-
Merge pull request twitter#494 from mortonfox/patch-1
Update the sensu-metrics link
Configuration menu - View commit details
-
Copy full SHA for 017d445 - Browse repository at this point
Copy the full SHA 017d445View commit details -
Merge pull request twitter#493 from dennismartensson/patch-1
Update README.md
Configuration menu - View commit details
-
Copy full SHA for 6fd9220 - Browse repository at this point
Copy the full SHA 6fd9220View commit details -
Merge pull request twitter#492 from kalifg/patch-1
Fix typo in notes/memcache.md
Configuration menu - View commit details
-
Copy full SHA for 0f9e1ba - Browse repository at this point
Copy the full SHA 0f9e1baView commit details
Commits on Feb 11, 2017
-
takayamaki committed
Feb 11, 2017 Configuration menu - View commit details
-
Copy full SHA for 1dd442b - Browse repository at this point
Copy the full SHA 1dd442bView commit details -
Merge pull request twitter#517 from takayamaki/fix_typo
fix typo in README.md
Configuration menu - View commit details
-
Copy full SHA for 34eb60f - Browse repository at this point
Copy the full SHA 34eb60fView commit details
Commits on Mar 29, 2017
-
Configuration menu - View commit details
-
Copy full SHA for 2c1567b - Browse repository at this point
Copy the full SHA 2c1567bView commit details
Commits on Nov 13, 2017
-
Configuration menu - View commit details
-
Copy full SHA for a2159df - Browse repository at this point
Copy the full SHA a2159dfView commit details
Commits on Dec 19, 2017
-
Initialize file permissions field for unix domain socket
It seems like field->perm might be uninitialized memory depending on how it is allocated. I ran into an issue where different sockets had different file permissions, and some of those sockets weren't readable by the user which created it. This behavior probably started in https://github.com/twitter/twemproxy/pull/311/files
Configuration menu - View commit details
-
Copy full SHA for 85fb83f - Browse repository at this point
Copy the full SHA 85fb83fView commit details
Commits on Feb 15, 2018
-
Configuration menu - View commit details
-
Copy full SHA for ee44974 - Browse repository at this point
Copy the full SHA ee44974View commit details
Commits on Mar 22, 2018
-
Configuration menu - View commit details
-
Copy full SHA for 141e621 - Browse repository at this point
Copy the full SHA 141e621View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6885783 - Browse repository at this point
Copy the full SHA 6885783View commit details
Commits on Jun 8, 2018
-
Merge pull request twitter#548 from pavanky/master
Adding issue and pull request templates to comply with twitter OSS best practices.
Configuration menu - View commit details
-
Copy full SHA for 67d8848 - Browse repository at this point
Copy the full SHA 67d8848View commit details
Commits on Jun 13, 2018
-
Merge pull request twitter#551 from charsyam/feature/fix_spop
allow spop can parameters
Configuration menu - View commit details
-
Copy full SHA for c5c725d - Browse repository at this point
Copy the full SHA c5c725dView commit details
Commits on Jan 2, 2019
-
Improve formatting of README file
Fix indented bulleted list and add monospaced formatting to command flags within paragraphs
Erik Webb authoredJan 2, 2019 Configuration menu - View commit details
-
Copy full SHA for e350a6e - Browse repository at this point
Copy the full SHA e350a6eView commit details
Commits on Feb 26, 2019
-
Configuration menu - View commit details
-
Copy full SHA for fc02f09 - Browse repository at this point
Copy the full SHA fc02f09View commit details
Commits on May 13, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 62b724a - Browse repository at this point
Copy the full SHA 62b724aView commit details
Commits on Nov 5, 2020
-
Merge pull request twitter#524 from pataquets/master
Add Docker support
Configuration menu - View commit details
-
Copy full SHA for c6cc79a - Browse repository at this point
Copy the full SHA c6cc79aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 48e3f39 - Browse repository at this point
Copy the full SHA 48e3f39View commit details
Commits on May 11, 2021
-
Add a clang-format file approximating the c style guide
This detects some inconsistent uses of indentation and inconsistent space after casts, but has a lot more false positives. https://clang.llvm.org/docs/ClangFormat.html#script-for-patch-reformatting may be of use for saving time for contributors reformatting new patches
Configuration menu - View commit details
-
Copy full SHA for a575ab2 - Browse repository at this point
Copy the full SHA a575ab2View commit details -
Configuration menu - View commit details
-
Copy full SHA for f68f86c - Browse repository at this point
Copy the full SHA f68f86cView commit details -
Plugins for editors/IDEs exist that can enforce some of these rules
Configuration menu - View commit details
-
Copy full SHA for 0421ad3 - Browse repository at this point
Copy the full SHA 0421ad3View commit details
Commits on May 12, 2021
-
Merge pull request twitter#602 from ifwe/twitter-editorconfig
Add editorconfig matching the c style guide, fix typos in c style guide
Configuration menu - View commit details
-
Copy full SHA for 1fde0f4 - Browse repository at this point
Copy the full SHA 1fde0f4View commit details
Commits on Jun 30, 2021
-
Fix failing unit tests, run in Docker
Running it in docker makes it easier to run this in other CI providers and to easily reproduce any failures seen in Travis locally. Move to python 3
Configuration menu - View commit details
-
Copy full SHA for 973ef77 - Browse repository at this point
Copy the full SHA 973ef77View commit details -
Add nosetests_verbose.sh script
This is useful if the tests hang due to a change. Otherwise, log capturing would prevent you from seeing the logs.
Configuration menu - View commit details
-
Copy full SHA for 3140cda - Browse repository at this point
Copy the full SHA 3140cdaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 96a9fbd - Browse repository at this point
Copy the full SHA 96a9fbdView commit details -
Start using github workflow to build branches and PRs
Run in multiple redis versions Update some unit tests and reorganize docker build steps
Configuration menu - View commit details
-
Copy full SHA for e25f23e - Browse repository at this point
Copy the full SHA e25f23eView commit details -
Configuration menu - View commit details
-
Copy full SHA for d224107 - Browse repository at this point
Copy the full SHA d224107View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8caa0a2 - Browse repository at this point
Copy the full SHA 8caa0a2View commit details -
Merge pull request twitter#598 from ifwe/update-unit-tests
Fix failing unit tests, run in Docker
Configuration menu - View commit details
-
Copy full SHA for 5c2a373 - Browse repository at this point
Copy the full SHA 5c2a373View commit details -
Don't hang for dns error responding to fragmented requests
If hostnames are used instead of ip addresses for all hosts within a pool, and dns lookup fails, then get/multiget will hang indefinitely **instead of** responding with an error such as `SERVER_ERROR Host is down`. (I expect a client would detect this and close the connection, but this is not ideal, the client timeout could be a second) - Both redis and memcache protocols are affected - If a server resolves but is down, then `get` does respond with `SERVER_ERROR Host is down`. I suspect that's because memcached get is implemented to coalesce responses from multiple backend servers, even when there's only one key, and this is likely a bug specific to handling coalescing when there's no attempt to send the request to a backend server Because connection attempts are async but dns lookup is asynchronous, there's a non-null server connection for a host that's unavailable but a null server connection for a host that has a dns lookup error, and these end up using different code paths. (e.g. the former will call server_close() which does adjust nfrag_sent) Fixes twitter#596
Configuration menu - View commit details
-
Copy full SHA for 0667d61 - Browse repository at this point
Copy the full SHA 0667d61View commit details -
Switch to GitHub actions for builds
Travis CI builds have been queueing for hours for some builds. This a simple docker script.
Configuration menu - View commit details
-
Copy full SHA for 05032ce - Browse repository at this point
Copy the full SHA 05032ceView commit details -
Merge pull request twitter#607 from twitter/twitter-switch-github-act…
…ions Switch to GitHub actions for builds
Configuration menu - View commit details
-
Copy full SHA for 95e8de5 - Browse repository at this point
Copy the full SHA 95e8de5View commit details -
Merge pull request twitter#597 from ifwe/twitter-dns-lookup-error-tol…
…erance Don't hang for dns error responding to fragmented requests
Configuration menu - View commit details
-
Copy full SHA for eca60d6 - Browse repository at this point
Copy the full SHA eca60d6View commit details -
Merge pull request twitter#601 from ifwe/twitter-clangformat
Add a clang-format file approximating the c style guide
Configuration menu - View commit details
-
Copy full SHA for f96e354 - Browse repository at this point
Copy the full SHA f96e354View commit details -
Use nservers instead of ncontinuum
ncontinuum is `160 * the number of **non-ejected** hosts` for the ketama distribution, where 160 is the ketama consistent hashing points per server. However, the index returned by msg_backend_idx is a number between 0..nservers-1. - This is a waste of time zeroing out 160 times as much memory as needed - When there are 0 servers, this previously malloc()ed a pointer of size 0 bytes and nutcracker would write to invalid memory. Also, update redis nosetest expectation because newer redis versions changed the error message to mention replica instead. Fixes twitter#563 for redis and memcached. See the discussion there for more details.
Configuration menu - View commit details
-
Copy full SHA for 8ebfd61 - Browse repository at this point
Copy the full SHA 8ebfd61View commit details -
Don't fragment memcache get commands with a single key
Fragmentation would likely be slower. It would involve splitting up the request into multiple smaller requests (allocating and zeroing out an array) and concatenating strings to rebuild the original request. Fragmentation is also more likely to be prone to edge cases such as those mentioned in twitter#597 and twitter#595
Configuration menu - View commit details
-
Copy full SHA for 3558a39 - Browse repository at this point
Copy the full SHA 3558a39View commit details -
Configuration menu - View commit details
-
Copy full SHA for 14bac40 - Browse repository at this point
Copy the full SHA 14bac40View commit details -
Merge pull request twitter#595 from ifwe/twitter-use-nservers-instead…
…-of-ncontinuum Use nservers instead of ncontinuum to fix segfault when all hosts are ejected
Configuration menu - View commit details
-
Copy full SHA for 0984586 - Browse repository at this point
Copy the full SHA 0984586View commit details -
Merge pull request twitter#545 from TysonAndre/unset-perm-twitter
Always initialize file permissions field for unix domain socket
Configuration menu - View commit details
-
Copy full SHA for d81d8c4 - Browse repository at this point
Copy the full SHA d81d8c4View commit details -
FIX: increase the host length to 273 in ketama_update, check the host…
…len and make sure hostlen is equal or less than KETAMA_MAX_HOSTLEN Amended version of twitter#567 Amended to remove the trailing null byte when logging if this does truncate, which shouldn't happen in practice Co-Authored-By: Tyson Andre <[email protected]> Co-Authored-By: 李广博 <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for cb81d61 - Browse repository at this point
Copy the full SHA cb81d61View commit details
Commits on Jul 1, 2021
-
Add various unit tests and integration tests
Add a `make check` script with standalone unit tests of the c functions. Source: https://github.com/ifwe/twemproxy/tree/build-nutredis This is the subset of the tests that currently pass in twitter/twemproxy
Configuration menu - View commit details
-
Copy full SHA for 25d540d - Browse repository at this point
Copy the full SHA 25d540dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0b98d99 - Browse repository at this point
Copy the full SHA 0b98d99View commit details -
Merge pull request twitter#610 from ifwe/twitter-add-unit-test
Add various unit tests and integration tests
Configuration menu - View commit details
-
Copy full SHA for cb6c564 - Browse repository at this point
Copy the full SHA cb6c564View commit details -
Fix parsing of error message without space
And add unit tests of redis messages being parsed successfully
Configuration menu - View commit details
-
Copy full SHA for b97f720 - Browse repository at this point
Copy the full SHA b97f720View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7a4e7ad - Browse repository at this point
Copy the full SHA 7a4e7adView commit details -
Merge pull request twitter#611 from ifwe/twitter-fix-redis-err-no-space
Fix parsing of redis error message without space
Configuration menu - View commit details
-
Copy full SHA for ace7c2d - Browse repository at this point
Copy the full SHA ace7c2dView commit details -
Support various commands from newer redis versions
If this is approved, documentation should also be added to notes/redis.md Some commands such as EXISTS have been changed to support multiple arguments. Copied from https://github.com/ifwe/twemproxy/pull/32/files which also updates unit tests (depends on changes to the test framework) - That PR has the script used to extract updated argument counts from redis-doc's commands.json file - See twitter#598 for fixing tests Related to https://github.com/twitter/twemproxy/pull/589/files
Configuration menu - View commit details
-
Copy full SHA for 77f033a - Browse repository at this point
Copy the full SHA 77f033aView commit details -
Remove BITOP operation destkey key ..., add missing command parser
nutredis currently only supports keys for sharding in the first position. That can be fixed but using `operation` is wrong Leave more complicated implementations for subsequent PRs
Configuration menu - View commit details
-
Copy full SHA for 4b81d66 - Browse repository at this point
Copy the full SHA 4b81d66View commit details -
Configuration menu - View commit details
-
Copy full SHA for c71cb03 - Browse repository at this point
Copy the full SHA c71cb03View commit details -
Merge pull request twitter#599 from ifwe/twitter-support-more-commands
Support various commands from newer redis versions
Configuration menu - View commit details
-
Copy full SHA for 2e4f1c7 - Browse repository at this point
Copy the full SHA 2e4f1c7View commit details -
Make twemproxy able to parse nested multibulks
i.e. the response of georadiuswithcoord. This is achieved by introducing a small stack in struct msg, this stack remembers the number of arguments to be parsed of current multibulk and all nesting multibulks. Co-Authored-By: qingping209 <[email protected]> Co-Authored-By: Tyson Andre <[email protected]> This is a subset of twitter#565 (only the multibulk implementation changes by qingping209)
Configuration menu - View commit details
-
Copy full SHA for f08bcfc - Browse repository at this point
Copy the full SHA f08bcfcView commit details -
Configuration menu - View commit details
-
Copy full SHA for f387657 - Browse repository at this point
Copy the full SHA f387657View commit details -
Support arbitrarily nested redis multibulks
This amends the approach originally proposed in twitter#565 We don't need to keep a stack, we only need to keep track of how many more remaining elements need to be parsed from the redis response, decreasing it when an element is processed, and increasing it when a new redis array is seen based on the array length
Configuration menu - View commit details
-
Copy full SHA for 621e7d6 - Browse repository at this point
Copy the full SHA 621e7d6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 523348f - Browse repository at this point
Copy the full SHA 523348fView commit details -
Merge pull request twitter#612 from ifwe/twitter-fix-multibulk
Fix processing of redis multibulk (nested array) responses (from eval, new commands, etc)
Configuration menu - View commit details
-
Copy full SHA for 746216c - Browse repository at this point
Copy the full SHA 746216cView commit details -
Followup for new redis commands and multibulk support
Revert the addition of blocking commands - making them a compilation option is probably a poor way to distribute it. Support `COMMAND` (used by redis-cli) and a placeholder no-argument command forwarded to a random server.
Configuration menu - View commit details
-
Copy full SHA for 7e131f8 - Browse repository at this point
Copy the full SHA 7e131f8View commit details -
Merge pull request twitter#613 from ifwe/twitter-support-new-redis-co…
…mmands-followup Followup for new redis commands and multibulk support
Configuration menu - View commit details
-
Copy full SHA for 6006065 - Browse repository at this point
Copy the full SHA 6006065View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3f7cc0c - Browse repository at this point
Copy the full SHA 3f7cc0cView commit details -
Fix compilation warnings about log sprintf format strings
The size of the difference between two pointers depends on the platform (e.g. 64bit vs 32bit pointers), so cast it to an integer - it should fit in that range anyway.
Configuration menu - View commit details
-
Copy full SHA for 709de01 - Browse repository at this point
Copy the full SHA 709de01View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1239ef9 - Browse repository at this point
Copy the full SHA 1239ef9View commit details -
Merge pull request twitter#615 from ifwe/twitter-update-checks
Fail GitHub actions builds on new compiler warnings, warn about incorrect log format strings
Configuration menu - View commit details
-
Copy full SHA for db2e642 - Browse repository at this point
Copy the full SHA db2e642View commit details -
[skip ci] Add script to extract redis key/arg count ranges
This uses commands.json from redis's documentation to determine which category a given redis command falls into. This will be useful to ensure that twemproxy stays up to date with new redis commands.
Configuration menu - View commit details
-
Copy full SHA for 9258716 - Browse repository at this point
Copy the full SHA 9258716View commit details -
Merge pull request twitter#616 from twitter/extract_redis_commands_ar…
…gcounts [skip ci] Add script to extract redis key/arg count ranges
Configuration menu - View commit details
-
Copy full SHA for c741bf1 - Browse repository at this point
Copy the full SHA c741bf1View commit details
Commits on Jul 2, 2021
-
Fix a crash seen when logging redis
COMMAND
in recent patchesThe recent patches add support for a placeholder key, which is actually a constant string in memory. The logging helper method should not be mutating the data it's logging. Specify the length of the string to log instead of introducing a null byte.
Configuration menu - View commit details
-
Copy full SHA for 34dcc49 - Browse repository at this point
Copy the full SHA 34dcc49View commit details -
Merge pull request twitter#619 from twitter/fix-logging-crash
Fix a crash seen when logging redis `COMMAND` in recent patches
Configuration menu - View commit details
-
Copy full SHA for 67e1124 - Browse repository at this point
Copy the full SHA 67e1124View commit details -
Merge pull request twitter#541 from essanpupil/master
fix list indentation in README
Configuration menu - View commit details
-
Copy full SHA for cb0db33 - Browse repository at this point
Copy the full SHA cb0db33View commit details -
[skip ci] Remove reference to outdated python-memcached version
https://github.com/linsomniac/python-memcached/ 1.5.8 had the delete_multi signature fixed in 2016. Anyone who had installed an outdated version should have seen this recommendation already or worked around it differently. There are a large number of other languages that have their own memcache clients with different bugs, don't continue linking to the workaround for an outdated python-memcached client version Closes twitter#475
Configuration menu - View commit details
-
Copy full SHA for 2e28feb - Browse repository at this point
Copy the full SHA 2e28febView commit details -
Merge pull request twitter#622 from twitter/python-memcached-outdated
[skip ci] Remove reference to outdated python-memcached version
Configuration menu - View commit details
-
Copy full SHA for d486c11 - Browse repository at this point
Copy the full SHA d486c11View commit details -
Merge pull request twitter#570 from erikwebb/patch-1
Improve formatting of README file
Configuration menu - View commit details
-
Copy full SHA for 42c2a1d - Browse repository at this point
Copy the full SHA 42c2a1dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9022647 - Browse repository at this point
Copy the full SHA 9022647View commit details
Commits on Jul 3, 2021
-
Merge pull request twitter#623 from twitter/update-tests
Update tests
Configuration menu - View commit details
-
Copy full SHA for 4b33ca8 - Browse repository at this point
Copy the full SHA 4b33ca8View commit details -
Configuration menu - View commit details
-
Copy full SHA for d627f53 - Browse repository at this point
Copy the full SHA d627f53View commit details -
Configuration menu - View commit details
-
Copy full SHA for 35ee7a3 - Browse repository at this point
Copy the full SHA 35ee7a3View commit details -
Configuration menu - View commit details
-
Copy full SHA for ef03bf9 - Browse repository at this point
Copy the full SHA ef03bf9View commit details -
Configuration menu - View commit details
-
Copy full SHA for ca2683f - Browse repository at this point
Copy the full SHA ca2683fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0440112 - Browse repository at this point
Copy the full SHA 0440112View commit details -
Configuration menu - View commit details
-
Copy full SHA for abb3623 - Browse repository at this point
Copy the full SHA abb3623View commit details -
Configuration menu - View commit details
-
Copy full SHA for 219d167 - Browse repository at this point
Copy the full SHA 219d167View commit details -
Configuration menu - View commit details
-
Copy full SHA for b7177ba - Browse repository at this point
Copy the full SHA b7177baView commit details -
Merge pull request twitter#628 from twitter/const-values
Add const value qualifiers for C functions where applicable
Configuration menu - View commit details
-
Copy full SHA for 9339bcf - Browse repository at this point
Copy the full SHA 9339bcfView commit details -
Merge remote-tracking branch 'twitter/master' into ifwe-github-merge-…
…twitter-v2 Conflicts: .dockerignore .github/workflows/main.yml .travis.yml ChangeLog README.md ci/build-nutcracker.sh src/Makefile.am src/hashkit/nc_hashkit.h src/nc_connection.c src/nc_mbuf.c src/nc_message.c src/nc_message.h src/nc_request.c src/nc_server.c src/proto/nc_memcache.c src/proto/nc_proto.h src/proto/nc_redis.c src/test_all.c tests/test_redis/test_basic.py travis.sh
Configuration menu - View commit details
-
Copy full SHA for 45dc829 - Browse repository at this point
Copy the full SHA 45dc829View commit details -
Configuration menu - View commit details
-
Copy full SHA for a00acf5 - Browse repository at this point
Copy the full SHA a00acf5View commit details -
Configuration menu - View commit details
-
Copy full SHA for e6da0d7 - Browse repository at this point
Copy the full SHA e6da0d7View commit details