summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Lua debugger: infinite loop detection.ldbantirez2015-11-181-7/+35
|
* Lua debugger: fix trace command infinite loop.antirez2015-11-171-5/+6
| | | | Thanks to Itamar Haber for bug report and test case to reproduce.
* Lua debugger: redis-cli: allow restart after end of session.antirez2015-11-171-1/+3
|
* Lua debugger: redis-cli can restart Lua debugging sessions.antirez2015-11-171-44/+74
|
* Lua debugger: maxlen command implemented.antirez2015-11-172-14/+55
| | | | Let the user control the replies truncation.
* Lua debugger: trace command implemented.antirez2015-11-171-0/+24
|
* Lua debugger: redis-cli: show compile errors in LDB mode.antirez2015-11-171-3/+12
|
* Lua debugger: print without args show all local vars.antirez2015-11-171-5/+34
|
* Lua debugger: default behavior of "list" command changed.antirez2015-11-171-4/+14
| | | | | | Now it lists code around the current position by default. Can list any other part using other arguments, but a new "whole" command was added in order to show the whole source code easily.
* Lua debugger: redis-cli error when --ldb is without --eval.antirez2015-11-171-0/+7
| | | | | Otherwise the result is a messed CLI without prompt. Thanks to Itamar Haber for reporting this issue.
* Lua debugger: use sds_malloc() to allocate eval cli array.antirez2015-11-175-1/+35
| | | | | | | | | | | | | 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.
* Lua debugging: fix error message for SCRIPT DEBUG.antirez2015-11-171-1/+1
| | | | | | "async" -> "sync". Thanks to Itamar Haber for reporting.
* Lua debugger: reply +OK to SCRIPT DEBUG no.antirez2015-11-171-0/+1
| | | | Thanks to Itamar Haber for reporting.
* Lua debugger: call wait3() if there are pending forked debugging sessions.antirez2015-11-173-1/+10
|
* Lua debugger: abort implemented.antirez2015-11-171-0/+5
|
* Lua debugger: ldbSendLogs() memory leak fixed.antirez2015-11-171-0/+1
|
* Lua debugger: better support for synchronous mode.antirez2015-11-172-3/+22
|
* Lua debugger: handle forked sessions children during shutdown.antirez2015-11-173-5/+51
|
* Lua debugger: inform user changes are rolled back.antirez2015-11-171-1/+1
| | | | | When redis-cli will support the synchronous mode, this will not be printed.
* Lua debugger: fix help typo, beark -> break.antirez2015-11-171-4/+4
|
* Lua debugger: clear end of session protocol.antirez2015-11-172-9/+23
| | | | | | | When the debugger exits now it produces an <endsession> tag that informs redis-cli (or other debugging clients) that the session terminated. This way the client knows there is yet another reply to read (the one of the EVAL script itself), and can switch to non-debugging mode ASAP.
* Lua debugger: redis.debug() implemented.antirez2015-11-172-15/+44
|
* Lua debugger: redis-cli, mark end of debugging session.antirez2015-11-171-0/+1
|
* Lua debugger: removing breakpoints now works.antirez2015-11-171-1/+1
|
* Lua debugger: redis command implemented.antirez2015-11-171-1/+26
|
* Lua debugger: try to eval as expression first.antirez2015-11-171-4/+13
| | | | | | | | | It's handly to just eval "5+5" without the return and see it printed on the screen as result. However prepending "return" does not always result into valid Lua code. So what we do is to exploit a common Lua community trick of trying to compile with return prepended, and if compilation fails then it's not an expression that can be returned, so we try again without prepending "return". Works great apparently.
* Lua debugger: much better Lua values pretty printer.antirez2015-11-172-17/+70
|
* Lua debugger: print now handles ARGV and KEYS.antirez2015-11-171-2/+10
|
* Lua debugger: added comment about helper functions.antirez2015-11-171-0/+3
|
* Lua debugger: redis.breakpoint() implemented.antirez2015-11-171-2/+27
|
* Lua debugger: output improvements, eval command.antirez2015-11-172-54/+186
|
* Lua debugger: breakpoints.antirez2015-11-172-12/+148
|
* Lua debugger: ability to show local vars content.antirez2015-11-171-7/+85
|
* Lua debugger: log Redis commands. List command.antirez2015-11-172-7/+82
|
* Lua debugger: initial REPL.antirez2015-11-172-20/+164
|
* Lua debugger: foundations implemented.antirez2015-11-175-21/+206
|
* Remove "s" flag for MIGRATE in command table.antirez2015-11-171-1/+1
| | | | | | | Maybe there are legitimate use cases for MIGRATE inside Lua scripts, at least for now. When the command will be executed in an asynchronous fashion (planned) it is possible we'll no longer be able to permit it from within Lua scripts.
* Update redis-cli help and the script to generate it.antirez2015-11-172-9/+183
|
* Fix MIGRATE entry in command table.antirez2015-11-171-1/+1
| | | | | | Thanks to Oran Agra (@oranagra) for reporting. Key extraction would not work otherwise and it does not make sense to take wrong data in the command table.
* AOF: rewriting child killed by SIGUSR1 is not an error.antirez2015-11-131-2/+4
|
* call() deserves a good top-comment.antirez2015-11-101-2/+38
|
* Merge pull request #2848 from badboy/removed-printfSalvatore Sanfilippo2015-11-091-1/+0
|\ | | | | Remove printf
| * Remove printfJan-Erik Rediger2015-11-041-1/+0
| |
* | Best effort flush of slave buffers before SHUTDOWN.antirez2015-11-092-1/+14
| |
* | Use clientHasPendingReplies() in flushSlavesOutputBuffers()antirez2015-11-091-1/+1
| | | | | | | | | | | | | | | | The old version only flushed data to slaves if there were strings pending in the client->reply list. Now also static buffers are flushed. Does not help to free memory (which is the only use we have right now in the fuction), but is more correct conceptually, and may be used in other contexts.
* | Scripting: fix redis.call() error reporting.antirez2015-11-091-5/+18
| | | | | | | | | | | | | | Arguments arity and arguments type error of redis.call() were not reported correctly to Lua, so the command acted in this regard like redis.pcall(), but just for two commands. Redis.call() should always raise errors instead.
* | Fix error reply in subscribed Pub/Sub mode.antirez2015-11-091-1/+1
| | | | | | | | PING is now a valid command to issue in this context.
* | Initialize all Lua scripting related things into scripting.cantirez2015-11-053-12/+33
| |
* | scripting.c source code better organized into sections.antirez2015-11-052-155/+182
| |
* | Fix HINCRBYFLOAT to work with long doubles.antirez2015-11-043-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During the refactoring needed for lazy free, specifically the conversion of t_hash from struct robj to plain SDS strings, HINCRBFLOAT was accidentally moved away from long doubles to doubles for internal processing of increments and formatting. The diminished precision created more obvious artifacts in the way small numbers are formatted once we convert from decimal number in radix 10 to double and back to its string in radix 10. By using more precision, we now have less surprising results at least with small numbers like "1.23", exactly like in the previous versions of Redis. See issue #2846.